]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
Squashed 'dts/upstream/' changes from 258d5b0e2447..0f7b6a4fa8c5
authorTom Rini <trini@konsulko.com>
Mon, 20 Apr 2026 15:28:25 +0000 (09:28 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 20 Apr 2026 15:28:25 +0000 (09:28 -0600)
0f7b6a4fa8c5 Merge tag 'v7.0-dts-raw'
2ee059ad64bc Merge tag 'sound-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
0e5e2595317a Merge tag 'net-7.0-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
3d8eb1e4ab16 Merge tag 'hid-for-linus-2026040801' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
c65c7bc04464 Merge tag 'soc-fixes-7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
89ac80ac458e ASoC: dt-bindings: ti,tas2552: Add sound-dai-cells
886c87e1d20d Merge tag 'v7.0-rc7-dts-raw'
ab2fb67b93ff Merge tag 'usb-7.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
cedc3ce5a407 Merge tag 'at91-fixes-7.0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/fixes
c0bd3803eea5 dt-bindings: net: Fix Tegra234 MGBE PTP clock
6f80847c7834 Merge tag 'gpio-fixes-for-v7.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
7254a1c879c8 Merge tag 'auxdisplay-v7.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-auxdisplay
ae38f964b0e9 Merge tag 'qcom-arm64-fixes-for-7.0-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
4ac746a07cd1 Merge tag 'sunxi-fixes-for-7.0' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/fixes
45d8428a0506 Merge tag 'renesas-fixes-for-v7.0-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/fixes
205268038e36 Merge tag 'hisi-dts-fixes-for-7.0' of https://github.com/hisilicon/linux-hisi into arm/fixes
250c64641844 Merge tag 'reset-fixes-for-v7.0-2' of https://git.pengutronix.de/git/pza/linux into arm/fixes
6f42528db7ff dt-bindings: connector: add pd-disable dependency
95e5d15bf904 Merge tag 'v7.0-rc6-dts-raw'
255618d9c419 arm64: dts: qcom: hamoa: Fix incomplete Root Port property migration
d02507a2f43d dt-bindings: gpio: fix microchip #interrupt-cells
fe62c4380d42 Input: add keycodes for contextual AI usages (HUTRR119)
ecf92feb8ef2 Merge tag 'v7.0-rockchip-dtsfixes1-v2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes
04f90a9fb494 Merge tag 'imx-fixes-7.0' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into arm/fixes
f73f1b9408b8 dt-bindings: display/msm: qcm2290-mdss: Fix missing ranges in example
5ecb37d519a4 ASoC: adau1372: Fix error handling in adau1372_set_power()
9909a4af67ac arm64: dts: renesas: sparrow-hawk: Reserve first 128 MiB of DRAM
230b81813707 ASoC: dt-bindings: stm32: Fix incorrect compatible string in stm32h7-sai match
e26149984a37 arm64: dts: qcom: agatti: Fix IOMMU DT properties
f7978b1d9e30 dt-bindings: media: venus: Fix iommus property
671b5c92b402 dt-bindings: display: msm: qcm2290-mdss: Fix iommus property
449ff6626b43 arm64: dts: allwinner: sun55i: Fix r-spi DMA
b1402f1dc2e2 reset: spacemit: k3: Decouple composite reset lines
b15317e7accc ARM: dts: microchip: sam9x7: fix gpio-lines count for pioB
1c8975c65a4b Merge tag 'v7.0-rc5-dts-raw'
6d87e2bc2c27 arm64: dts: hisilicon: hi3798cv200: Add missing dma-ranges
175b76680d3e arm64: dts: hisilicon: poplar: Correct PCIe reset GPIO polarity
83fb5283a386 Merge tag 'regulator-fix-v7.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
eeb1c67582b8 Merge tag 'mtd/fixes-for-7.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
0d188ae18393 Merge tag 'soc-fixes-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
f984219e1c2a arm64: dts: qcom: monaco: Reserve full Gunyah metadata region
df0a8f8037b9 arm64: dts: imx8mq-librem5: Bump BUCK1 suspend voltage up to 0.85V
20dcc98b93ee Revert "arm64: dts: imx8mq-librem5: Set the DVS voltages lower"
29e5e850cab9 Revert "ARM: dts: imx: move nand related property under nand@0"
f30193c4453e regulator: dt-bindings: fix typos in regulator-uv-* descriptions
c631fcd413bc ASoC: dt-bindings: rockchip: Add compatible for RK3576 SPDIF
6285a7235b0d Merge tag 'v7.0-rc4-dts-raw'
d44f2d912bd2 Merge tag 'i2c-for-7.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
6ce3b78df9af Merge tag 'renesas-fixes-for-v7.0-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/fixes
02045255e368 Merge tag 'drm-fixes-2026-03-14' of https://gitlab.freedesktop.org/drm/kernel
25d9d22d1150 Merge tag 'spi-fix-v7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
714d6872b448 Merge tag 'drm-msm-fixes-2026-03-06' of https://gitlab.freedesktop.org/drm/msm into drm-fixes
ef094460269a Merge tag 'powerpc-7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
eadcbbfb08db dt-bindings: mtd: st,spear600-smi: Fix example
f9d4680ccb75 dt-bindings: mtd: st,spear600-smi: #address/size-cells is mandatory
b08c91776a9f dt-bindings: mtd: st,spear600-smi: Fix description
1e28ec3f1d54 spi: dt-bindings: sun6i: Allow Dual SPI and Quad SPI for newer SoCs
4622b3cb6da6 dt-bindings: i2c: dw: Update maintainer
d43401f40fa6 Merge tag 'v7.0-rc3-dts-raw'
bb60ef867d32 Merge tag 'hwmon-for-v7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
29ca806b0f5e powerpc: dts: mpc83xx: Add unit addresses to /memory
ad5ff447814f powerpc: dts: mpc8315erdb: Add missing #cells properties to SPI bus
bb87ffb59ac7 powerpc: dts: mpc8315erdb: Rename LED nodes to comply with schema
4c8ef8cc4349 powerpc: dts: mpc8315erdb: Use IRQ_TYPE_* macros
7df07ab447d2 powerpc: dts: mpc8313erdb: Use IRQ_TYPE_* macros
18d294f660a5 dt-bindings: powerpc: Add Freescale/NXP MPC83xx SoCs
5a3981e886f4 Merge tag 'sound-7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
5d4c6f999c79 arm64: dts: renesas: r8a78000: Fix out-of-range SPI interrupt numbers
fd633fa28212 arm64: dts: renesas: rzg3s-smarc-som: Set bypass for Versa3 PLL2
7b10299bc62f arm64: dts: renesas: r9a09g087: Fix CPG register region sizes
3367a3da5512 arm64: dts: renesas: r9a09g077: Fix CPG register region sizes
a0216b8c62e7 arm64: dts: renesas: r9a09g057: Remove wdt{0,2,3} nodes
0ea8548222a4 arm64: dts: renesas: rzv2-evk-cn15-sd: Add ramp delay for SD0 regulator
bfbd4713207b arm64: dts: renesas: rzt2h-n2h-evk: Add ramp delay for SD0 card regulator
8f7f462e855b dt-bindings: display/msm: qcom,sm8750-mdss: Fix model typo
b0105bf2ff13 dt-bindings: display: msm: Fix reg ranges and clocks on Glymur
bb1688d262d5 Merge tag 'net-7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
5ea472f3bf7c Merge tag 'riscv-soc-fixes-for-v7.0-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into arm/fixes
0b25fad21c5f arm64: dts: qcom: monaco: Fix UART10 pinconf
ebd44a7a8f1e ASoC: dt-bindings: renesas,rz-ssi: Document RZ/G3L SoC
43a6310e0b23 powerpc: dts: fsl: Drop unused .dtsi files
9a329fe2d894 dt-bindings: auxdisplay: ht16k33: Use unevaluatedProperties to fix common property warning
1d251b587dea dt-bindings: hwmon: sl28cpld: Drop sa67mcu compatible
8fc9fac8b677 ASoC: dt-bindings: tegra: Add compatible for Tegra238 sound card
f7a31219fbe7 dt-bindings: net: can: nxp,sja1000: add reference to mc-peripheral-props.yaml
a394424f72ae Merge tag 'v7.0-rc2-dts-raw'
d08d81384b5e Merge tag 'spi-fix-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
4a0fd4211639 arm64: dts: imx93-tqma9352: improve eMMC pad configuration
9cbc1d4aa426 arm64: dts: imx91-tqma9131: improve eMMC pad configuration
59794ebc677e arm64: dts: imx93-9x9-qsb: change usdhc tuning step for eMMC and SD
fec240ccc5a0 arm64: dts: imx8mq: Set the correct gpu_ahb clock frequency
172138635790 spi: dt-bindings: snps,dw-abp-ssi: Remove unused bindings
2dc6354f4af3 arm64: dts: qcom: qcm6490-idp: Fix WCD9370 reset GPIO polarity
e35289a71311 arm64: dts: qcom: hamoa/x1: fix idle exit latency
81f7574087fe Merge tag 'v7.0-rc1-dts-raw'
eb816f7677f7 regulator: dt-bindings: mt6359: make regulator names unique
4956bc4ca9de Revert "arm64: dts: rockchip: Further describe the WiFi for the Pinebook Pro"
f71d66625968 Merge tag 'rtc-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
ea14902fe993 Merge tag 'i2c-for-7.0-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
30b331d4b38e Merge tag 'sound-fix-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
7f20326eebd0 Merge branch 'i2c/i2c-host-2' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
f058abf5b2ca Merge tag 'asoc-fix-v7.0-merge-window' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
47b192965593 ASoC: dt-bindings: asahi-kasei,ak5558: Fix the supply names
8e3ff6b6e0f1 ASoC: dt-bindings: asahi-kasei,ak4458: Fix the supply names
1bdcb99a73c9 ASoC: dt-bindings: asahi-kasei,ak4458: set unevaluatedProperties:false
2bbbeb0e7579 Merge tag 'dmaengine-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
70a572693eca Merge tag 'phy-for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
80d9b9833242 Merge tag 'soundwire-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire
fc094c09d520 Merge tag 'usb-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
3af47c3138ac Merge tag 'tty-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
323c63de0303 Merge tag 'char-misc-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
2c1f5f24e9ef Merge tag 'linux-watchdog-6.20-rc1' of git://www.linux-watchdog.org/linux-watchdog
c824dfdf99bf Merge tag 'leds-next-6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
d24edeef0cd3 Merge tag 'backlight-next-6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
38ba39a8a02c Merge tag 'mfd-next-6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
7f0f8d32fbbc Merge tag 'pinctrl-v7.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
3ed15538ea59 Merge tag 'mips_7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
87344539d55d Merge tag 'i2c-for-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
2c01127cb7fe Merge tag 'input-for-v7.0-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
ae6287628368 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
68cca576a098 Merge branch 'next' into for-linus
e8ae3c914195 Merge tag 'loongarch-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
4bd56abfed21 Merge tag 'rproc-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
469ab8f87279 Merge tag 'mailbox-v6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
279461aa2ca1 Merge branches 'clk-aspeed' and 'clk-qcom' into clk-next
bb87a0437342 Merge branches 'clk-imx', 'clk-divider', 'clk-rockchip' and 'clk-microchip' into clk-next
a44cbb15f262 Merge branches 'clk-amlogic', 'clk-thead', 'clk-mediatek' and 'clk-samsung' into clk-next
d66f354507f5 Merge branches 'clk-renesas', 'clk-cleanup', 'clk-spacemit' and 'clk-tegra' into clk-next
64f131e35069 Merge tag 'mtd/for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
2ea8429cb6c7 Merge tag 'nand/for-7.0' into mtd/next
c97375b771ff Merge tag 'riscv-for-linus-7.0-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
0bef48a293b0 Merge tag 'for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
2485149cfe0d Merge tag 'ata-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
e937a56c89b0 Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
b837f21c681a Merge tag 'for-linus' of https://github.com/openrisc/linux
9fa7d35f68c2 ASoC: dt-bindings: asahi-kasei,ak5558: Reference common DAI properties
a023f11b1edb Merge tag 'net-next-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
b86161c7e1ec Merge tag 'devicetree-for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
15103153d3f7 Merge tag 'pci-v7.0-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
a35a7827d08e Merge tag 'drm-next-2026-02-11' of https://gitlab.freedesktop.org/drm/kernel
2a8556f9eecc Merge tag 'media/v7.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
b93c5ab0b805 Merge tag 'sound-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
243a1edd6d09 Merge tag 'hwmon-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
507ddba63e3f Merge tag 'gpio-updates-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
2ee644a1dc90 Merge tag 'pwrseq-updates-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
8e02b14f6c91 Merge tag 'pwm/for-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
68edd291177b Merge tag 'spi-v6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
b31400b246c8 Merge tag 'regulator-v6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
81ece41ce8ae dt-bindings: net: dsa: add MaxLinear MxL862xx
8f967c541482 Merge tag 'soc-dt-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
6e7f6ca4e88c Merge tag 'soc-drivers-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
aa32a0ebc3a7 dt-bindings: interrupt-controller: Add compatiblie string fsl,imx(1|25|27|31|35)-avic
4a9ee4ae797f Merge tag 'irq-drivers-2026-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
e3eae9ec4856 ASoC: Merge up release
decaee82cb13 Merge tag 'v7.0-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
29d6648cce9a LoongArch: dts: loongson-2k1000: Add nand controller support
2046ea79bada LoongArch: dts: loongson-2k0500: Add nand controller support
e6e0d1a06767 dt-bindings: net: dsa: lantiq,gswip: reference common PHY properties
495e7f9e2b7d dt-bindings: input: qcom,pm8941-pwrkey: Document PMM8654AU
f2611a8ac07e Merge tag 'thermal-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
4e6206cce433 dt-bindings: soc: imx: add fsl,aips and fsl,emi compatible strings
ed2533566b6f dt-bindings: display: bridge: lt8912b: Drop reset gpio requirement
9777625ba13d Merge tag 'pm-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
f9b1cda42d68 Merge tag 'asoc-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
440b93b165c2 dt-bindings: trivial-devices: Add hitron,hac300s
6c474d901a04 dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
9a9a07c8d8f1 Merge branch 'pci/controller/dwc-qcom-ep'
6d8625fbc93c Merge branch 'pci/controller/dwc-imx6'
148c83cf986b Merge branch 'pci/controller/aspeed'
6a588260a00e riscv: dts: microchip: add can resets to mpfs
df86f7273fc0 ASoC: dt-bindings: fsl,imx-asrc: Add support for i.MX952 platform
8b04664b116a spi: cadence-qspi: Add Renesas RZ/N1 support
15351a537c20 spi: dt-bindings: cdns,qspi-nor: Add Renesas RZ/N1D400 to the list
a65f196bd27f Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
0e8afdb51c12 dt-bindings: usb: renesas,usbhs: Add RZ/G3E SoC support
52032279a84b Merge tag 'wireless-next-2026-02-04' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
0db094276416 dt-bindings: net: renesas,rzv2h-gbeth: Document Renesas RZ/G3L RMII{tx,rx} clocks
44492dbc45e6 dt-bindings: net: nxp,s32-dwmac: Use the GPR syscon
7ce5faa19695 ASoC: ti: davinci-mcasp: Add asynchronous mode
86668f9ec320 Samsung S2MPG10 regulator and S2MPG11 PMIC drivers
f4fd1ca09f1a ASoC: dt-bindings: davinci-mcasp: Add properties for asynchronous mode
83340f50b750 dt-bindings: dma: qcom,gpi: Update max interrupts lines to 16
c356e9e09dc8 dt-bindings: i2c: qcom-cci: Document qcs8300 compatible
9218d5618630 dt-bindings: phy: ti,control-phy-otghs: convert to DT schema
8934b08a621e dt-bindings: phy: ti,phy-usb3: convert to DT schema
cb0b26459316 ASoC: dt-bindings: fsl_rpmsg: Add compatible string for i.MX952
cd392ac6ba7d ASoC: dt-bindings: fsl_rpmsg: Add compatible string for i.MX94
b5f6cd4eae79 regulator: dt-bindings: add s2mpg11-pmic regulators
dd1a48948b7c regulator: dt-bindings: add s2mpg10-pmic regulators
7cb79dceffc0 dt-bindings: firmware: google,gs101-acpm-ipc: convert regulators to lowercase
a707e0922d03 dt-bindings: mfd: da9055: Fix dead link to codec binding
83da84647e2a dt-bindings: input: touchscreen: imagis: allow linux,keycodes for ist3038
c37dc965dde0 dt-bindings: leds: Convert ti,lm3697 to DT schema
93c05dbec2bb dt-bindings: mfd: Add samsung,s2mpg11-pmic
aa62dfb78f24 dt-bindings: mfd: samsung,s2mpg10-pmic: Link to its regulators
dfdbbb234175 dt-bindings: mfd: samsung,s2mps11: Split s2mpg10-pmic into separate file
4699e70cc981 dt-bindings: backlight: qcom-wled: Document ovp values for PMI8950
12098b970450 dt-bindings: backlight: qcom-wled: Document ovp values for PMI8994
a4f601b4b83a dt-bindings: interrupt-controller: sifive,plic: Clarify the riscv,ndev meaning in PLIC
b34cf04f8fff dt-bindings: leds: Add new as3668 support
54c72cac692d dt-bindings: leds: qcom,spmi-flash-led: Add PMH0101 compatible
f573a833305f dt-bindings: leds: leds-qcom-lpg: Add support for PMH0101 PWM
210e33780610 dt-bindings: leds: Allow differently named multicolor LEDs
0a514b51f7e8 dt-bindings: leds: add TI/National Semiconductor LP5812 LED Driver
dcab4d11d3d1 dt-bindings: leds: Add issi,is31fl3293 to leds-is31fl32xx
dc07d15b4ce3 Merge tag 'soc_fsl-6.20-1' of https://git.kernel.org/pub/scm/linux/kernel/git/chleroy/linux into soc/drivers
69547b8ff1ab Merge tag 'socfpga_dts_updates_for_v6.20_v3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt
4da7192337e7 dt-bindings: clock: aspeed: Add VIDEO reset definition
0f8478e9fd54 dt-bindings: firmware: fsl,scu: Mark multi-channel MU layouts as deprecated
7af06f6732db dt-bindings: Fix emails with spaces or missing brackets
912a24228bf6 scripts/dtc: Update to upstream version v1.7.2-62-ga26ef6400bd8
b45398f9313a dt-bindings: crypto: inside-secure,safexcel: Mandate only ring IRQs
de1e0845cd7a dt-bindings: crypto: inside-secure,safexcel: Add SoC compatibles
b9cdb24e70f8 dt-bindings: display/lvds-codec: Document OnSemi FIN3385
83226b0d27c4 dt-bindings: eeprom: at25: Document Microchip 25AA010A
df9ef8a7ea46 dt-bindings: display: bridge: nxp,tda998x: Add missing clocks
9ab7ad07fb14 dt-bindings: omap: ti,prm-inst: Convert to DT schema
1e1d998bf71f dt-bindings: display: mediatek: Fix typo 'hardwares' to 'hardware'
4b0a6a44b1ae dt-bindings: mfd: Add Realtek RTD1xxx system controllers
a2e45807633d dt-bindings: mediatek: Replace Tinghan Shen in maintainers
ab9efcd5b4d8 dt-bindings: Fix I2C bus node names in examples
ea4479bba282 dt-bindings: display: google,goldfish-fb: Convert to DT schema
50fcb2d67f08 dt-bindings: display: bridge: tc358867: mark port 0 and 1 configuration as valid
a2be43cbd73a docs: dt: submitting-patches: Document prefixes for SCSI and UFS
91b31105e870 dt-bindings: display: bridge: ldb: Add check for reg and reg-names
37e7a9a4d189 dt-bindings: Add IEI vendor prefix and IEI WT61P803 PUZZLE driver bindings
b212fd6852bf dt-bindings: trivial-devices: Add some more undocumented devices
27fef65a6743 dt-bindings: interrupt-controller: loongson,pch-pic: Document address-cells
a7865d05a69e dt-bindings: interrupt-controller: loongson,eiointc: Document address-cells
ce188cc0a6b5 dt-bindings: interrupt-controller: loongson,liointc: Document address-cells
94a7b2f99ab9 dt-bindings: power: syscon-poweroff: Allow "reg" property
02fb67f1073a dt-bindings: reset: syscon-reboot: Allow both 'reg' and 'offset'
ee58ad218d78 dt-bindings: mediatek: Drop inactive MandyJH Liu
33ae9e289d97 dt-bindings: arm: Drop obsolete brcm,vulcan-soc binding
c545c28a92fa dt-bindings: net: brcm,amac: Allow "dma-coherent" property
6c2903f6738c dt-bindings: raspberrypi,bcm2835-firmware: Add 'power' and gpio-hog nodes
49bb56c3e9db dt-bindings: firmware: Convert cznic,turris-mox-rwtm to DT schema
a6b60a4d1020 dt-bindings: trivial-devices: Add socionext,uniphier-smpctrl
c105f1786874 dt-bindings: firmware: xilinx: Add conditional pinctrl schema
e9fd71a307d0 dt-bindings: firmware: xilinx: Add xlnx,zynqmp-firmware compatible
2909e69780fb dt-bindings: Remove unused includes
c661f5a650e8 dt-bindings: bus: stm32mp25-rifsc: Allow 2 size cells
530a274b1478 dt-bindings: arm: vexpress-config: Update clock and regulator node names
21658b9cc7b8 dt-bindings: arm,vexpress-juno: Allow interrupt-map properties in bus node
93864a267471 Merge tag 'i2c-host-6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
84dea826479a dt-bindings: mtd: cdns,hp-nfc: Add dma-coherent property
e327cd40e3da dt-bindings: spi: Add binding for Faraday FTSSP010
9382fcae3b33 dt-bindings: net: renesas,rzv2h-gbeth: Document Renesas RZ/G3L SoC
da8c0cc63159 dt-bindings: intel: Add Agilex eMMC support
395dec8b9e96 dt-bindings: ptp: Add amazon,vmclock
a03e77de0210 dt-bindings: clk: rs9: Fix DIF pattern match
deb3391513da dt-bindings: pinctrl: spacemit: fix drive-strength check warning
ab6224bd25a0 Anbernic RG-DS AW87391 Speaker Amps
ba961ac73236 spi: add multi-lane support
716bd68da03b Merge tag 'ath-next-20260202' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath
b47c8ccd309d Merge tag 'iio-for-7.0a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
17926b594c18 ASoC: dt-bindings: aw87390: Add Anbernic RG-DS Amplifier
ccac1121bf5d spi: dt-bindings: adi,axi-spi-engine: add multi-lane support
90e272c43203 spi: dt-bindings: add spi-{tx,rx}-lane-map properties
89b0a2b708ca spi: dt-bindings: change spi-{rx,tx}-bus-width to arrays
cd5ffacefa9c dt-bindings: mailbox: sprd: add compatible for UMS9230
db37cc33492c Merge tag 'linux-can-next-for-6.20-20260131' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
e8ed1e9c377d dt-bindings: hwmon: ti,tmp108: Add P3T1035,P3T2030
365e8a1582ea dt-bindings: hwmon: add STEF48H28
997d978c1b6d dt-bindings: hwmon: Convert aspeed,ast2400-pwm-tacho to DT schema
690c98671a72 dt-bindings: hwmon: Add mps mp5926 driver bindings
564ddb6df33f dt-bindings: hwmon: sparx5: add microchip,lan9691-temp
1d92dd74de54 dt-bindings: crypto: atmel,at91sam9g46-sha: add microchip,lan9691-sha
cd9c2e267512 dt-bindings: crypto: atmel,at91sam9g46-aes: add microchip,lan9691-aes
02798af51a1f dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE
d2455b901b36 dt-bindings: rtc: loongson: Document Loongson-2K0300 compatible
bc6078cc0df8 dt-bindings: rtc: loongson: Correct Loongson-1C interrupts property
9bef11db9e5d dt-bindings: rtc: renesas,rz-rtca3: Add RZ/V2N support
18d100dd8bed Merge tag 'ib-mfd-clk-gpio-power-regulator-rtc-v6.20' into psy-next
7ee840ee2bb4 dt-bindings: power: supply: google,goldfish-battery: Convert to DT schema
b95dfde1e21c Merge tag 'icc-6.20-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
495473158a94 arm64: dts: socfpga: agilex: add emmc support
f2e2a903f7c4 arm64: dts: intel: agilex5: Add simple-bus node on top of dma controller node
3c1d9adbbb4f ARM: dts: socfpga: fix dtbs_check warning for fpga-region
4f486b92adf8 ARM: dts: socfpga: add #address-cells and #size-cells for sram node
c14992693977 dt-bindings: altera: document syscon as fallback for sys-mgr
d61c18c961fd arm64: dts: altera: Use lowercase hex
ffa2813091d4 dt-bindings: arm: altera: combine Intel's SoCFPGA into altera.yaml
7d049975239c arm64: dts: socfpga: agilex5: Add IOMMUS property for ethernet nodes
0c92577cfcce arm64: dts: socfpga: agilex5: add support for modular board
e115510a1af8 dt-bindings: intel: Add Agilex5 SoCFPGA modular board
c13f5487f5c8 arm64: dts: socfpga: agilex5: Add dma-coherent property
65ea42aefdeb dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property
5fb812de23e3 MIPS: Loongson64: dts: fix phy-related definition of LS7A GMAC
a777939415eb Merge tag 'wireless-next-2026-01-29' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
5b25d9c784d6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
17229d6a4193 dt-bindings: mtd: mxic,multi-itfc-v009-nand-controller: convert to DT schema
ddb90395af99 dt-bindings: mtd: st,spear600-smi: convert to DT schema
d1f4e3e6577c dt-bindings: bluetooth: qcom,wcn7850-bt: Deprecate old supplies
40407758b2c0 dt-bindings: bluetooth: qcom,wcn7850-bt: Split to separate schema
a9dd4631cf9f dt-bindings: bluetooth: qcom,wcn6855-bt: Deprecate old supplies
c4f851db3817 dt-bindings: bluetooth: qcom,wcn6855-bt: Split to separate schema
d710994f6078 dt-bindings: bluetooth: qcom,wcn6750-bt: Deprecate old supplies
33043a03d1d0 dt-bindings: bluetooth: qcom,wcn6750-bt: Split to separate schema
640efe2d3365 dt-bindings: bluetooth: qcom,wcn3990-bt: Split to separate schema
bca7304e36f5 dt-bindings: bluetooth: qcom,wcn3950-bt: Split to separate schema
630bedc470e1 dt-bindings: bluetooth: qcom,qca6390-bt: Split to separate schema
184210b27185 dt-bindings: bluetooth: qcom,qca9377-bt: Split to separate schema
8ef4770b2049 dt-bindings: bluetooth: qcom,qca2066-bt: Split to separate schema
f2f34664c2bb dt-bindings: rtc: cpcap: convert to schema
aa5a96523dc7 Merge tag 'ti-k3-dt-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
ad228b618c5c Merge tag 'reset-for-v6.20' of https://git.pengutronix.de/git/pza/linux into soc/drivers
2c4ab1bdec23 Merge tag 'memory-controller-drv-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
8b32c00a7d34 Merge tag 'mtk-soc-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/drivers
2439f10093a3 dt-bindings: gpio: Add Tegra264 support
f0df035c0c45 Merge tag 'riscv-dt-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
1c97c2610a0b arm64: dts: realtek: Add Kent SoC and EVB device trees
1f33f7c43645 dt-bindings: arm: realtek: Add Kent Soc family compatibles
6605244467ae spi: dt-bindings: cdns,qspi-nor: Drop label in example
265917026231 Merge tag 'qcom-arm32-for-6.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
c00f9fa57059 Merge tag 'qcom-arm64-for-6.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
325bb381f318 Merge tag 'v6.20-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
555ee47a2399 Merge tag 'v6.20-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
de2a0ddc7b4b Merge tag 'cix-dt-binding-v6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix into soc/dt
4492b3dafd64 Merge tag 'at91-dt-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
060ef5aec09b Merge tag 'cix-dt-v6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/cix into soc/dt
ac68fadae144 Merge tag 'mvebu-dt64-6.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
845fb01169db Merge tag 'mtk-dts64-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
057d6e3b56bc Merge tag 'omap-for-v6.20/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/dt
1b67d2271cf1 Merge tag 'sunxi-dt-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
08dfcf6a3c7a Merge tag 'amlogic-arm-dt-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
0b0db6acc294 Merge tag 'amlogic-arm64-dt-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
4875ee63a5f6 Merge tag 'spacemit-dt-for-6.20-1' of https://github.com/spacemit-com/linux into soc/dt
5afe3cf7196c Merge tag 'samsung-dt64-6.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
cc40d0637dfb Merge tag 'arm-soc/for-6.20/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt
84a304b3617b Merge tag 'arm-soc/for-6.20/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
5780a44b19e3 Merge tag 'riscv-sophgo-dt-for-v6.20' of https://github.com/sophgo/linux into soc/dt
0b183bbc2f6e Merge tag 'stm32-dt-for-v6.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
ce1a9421c509 Merge tag 'imx-dt64-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
21b1bcafcaca Merge tag 'imx-bindings-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
86816d60ae02 Merge tag 'tegra-for-6.20-dt-bindings-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
ed7af28da2c5 spi: aspeed: Improve handling of shared SPI
a665daba0d97 Merge tag 'drm-msm-next-2026-01-23' of https://gitlab.freedesktop.org/drm/msm into drm-next
16ee8d7989d5 BackMerge tag 'v6.19-rc7' into drm-next
1853af96d104 ASoC: sophgo: add CV1800 I2S controllers support
780880d26b9d ASoC: codec: Remove ak4641/pxa2xx-ac97 and convert to
bff1a05b39e9 ASoC: fsl_audmix: Support the i.MX952 platform
d0ef9cf11b6c Merge tag 'cpufreq-arm-updates-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
a523ea22f5ca ASoC: dt-bindings: sophgo,cv1800b: add ADC/DAC codec
b1d4ce2ec63d ASoC: dt-bindings: sophgo,cv1800b: add I2S/TDM controller
40a6f1af07a1 dt-bindings: net: dsa: lantiq,gswip: add Intel GSW150
f0bd27beed6b dt-bindings: net: dsa: lantiq,gswip: use correct node name
865b8eb5f662 dt-bindings: gpio: aspeed,sgpio: Support ast2700
0baa9004dc14 dt-bindings: pinctrl: pinctrl-microchip-sgpio: add LAN969x
c64e8b8c5daa dt-bindings: pinctrl: ocelot: Add LAN9645x SoC support
3ee75e871f21 dt-bindings: cpufreq: qcom-hw: document Milos CPUFREQ Hardware
a02f9ab1778c ASoC: dt-bindings: fsl,mqs: make gpr optional for SM-based SoCs
42533ee12386 Merge tag 'imx-dt-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
dc8c5878de8a dt-bindings: nvmem: qfprom: Add sm8750 compatible
7d952fdf2bad dt-bindings: interrupt-controller: ti,sci-intr: Per-line interrupt-types
5d44654a0b87 Merge tag 'qcom-arm64-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
2ae181b8dafe Merge tag 'qcom-arm32-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
14de830eba79 Merge tag 'zynqmp-dt-for-6.20' of https://github.com/Xilinx/linux-xlnx into soc/dt
dbc7a3043d1b Merge tag 'tegra-for-6.20-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
86fccd1393e0 Merge tag 'tegra-for-6.20-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
b3bbbd413424 ARM: dts: samsung: Drop s3c6400.dtsi
56ffd66515b6 ARM: dts: nuvoton: Minor whitespace cleanup
2d6d64b741fe Merge tag 'samsung-dt64-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
f7832d977951 Merge tag 'dt64-cleanup-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
0bf8d0a20391 Merge tag 'renesas-dts-for-v6.20-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
41635a78d26e Merge tag 'renesas-dt-bindings-for-v6.20-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
6b08b2fbfdba ASoC: dt-bindings: fsl,sai: Add AUDMIX mode support on i.MX952
0369e048eed5 ASoC: dt-bindings: fsl,audmix: Add support for i.MX952 platform
3bfdd9e93746 Merge tag 'coresight-next-v7.0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-next
78fc6e7674cb Merge 6.19-rc7 into char-misc-next
6c694a1d3492 dt-bindings: riscv: document zicfilp and zicfiss in extensions.yaml
e896bfea195a dt-bindings: net: dsa: fix typos in bindings docs
a717efe4904c dt-bindings: input: touchscreen: tsc2007: document '#io-channel-cells'
8a5cf8346b98 dt-bindings: mailbox: xlnx,zynqmp-ipi-mailbox: Document msg region requirement
e625e7e40aad dt-bindings: soc: spacemit: Add K3 reset support and IDs
bed4a6ca81d3 Merge tag 'at24-updates-for-v7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow
1cc20aca3cb4 scsi: ufs: dt-bindings: Document bindings for SA8255P UFS Host Controller
324a883d1ce7 dt-bindings: spmi: spmi-mtk-pmif: Add compatible for MT8189 SoC
f399c85dbf55 dt-bindings: spmi: add support for glymur-spmi-pmic-arb (arbiter v8)
3d1d144c4506 dt-bindings: spmi: split out common QCOM SPMI PMIC arbiter properties
f7d8363b0843 dt-bindings: spmi: Add MediaTek MT8196 SPMI 2 Arbiter/Controllers
46e850238166 dt-bindings: serial: renesas,scif: Document RZ/G3L SoC
d52ec46dfea8 ASoC: dt-bindings: Convert ti,tas2552 to DT schema
67237f73e2ea arm64: dts: a7k: add COM Express boards
997674eb03ed dt-bindings: connector: Add PCIe M.2 Mechanical Key M connector
fad4d61f0c13 dt-bindings: iio: dac: Add max22007
24b1b9c62f63 ARM: dts: microchip: Drop usb_a9g20-dab-mmx.dtsi
3e03f55262c8 dt-bindings: crypto: Mark zynqmp-aes as Deprecated
2972aa85ad35 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
93faaa70d9fd Merge tag 'drm-misc-next-2026-01-22' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
a06faf23cf0d dt-bindings: clock: mediatek,mt7622-pciesys: Remove syscon compatible
e64d84f2a956 dt-bindings: iio: adc: ad7768-1: add new supported parts
7863431b12b7 arm64: dts: rockchip: Fix rk3588 PCIe range mappings
23e93403e47f arm64: dts: rockchip: Fix rk356x PCIe range mappings
e855bd09b3f1 arm64: dts: rockchip: Add Anbernic RG-DS
edf7453bfcce dt-bindings: input: touchscreen: goodix: Add "panel" property
35bee1b28956 dt-bindings: arm: rockchip: Add Anbernic RG-DS
438f1fe833e0 arm64: dts: rockchip: Explicitly request UFS reset pin on RK3576
e8b033a60c3a arm64: dts: rockchip: Add TPS65185 for PineNote
f4b46b8ffd28 riscv: dts: allwinner: d1: Add CPU thermal sensor and zone
1bb5decc55c6 dt-bindings: mfd: qcom,spmi-pmic: Document PMICs present on Glymur and Kaanapali
e9550eb87e31 dt-bindings: mfd: Document smp-memram subnode for aspeed,ast2x00-scu
949de4abbc1e dt-bindings: mfd: mediatek: mt6397: Add missing MT6331 regulator compat
6fedf06a87f0 dt-bindings: mfd: mediatek,mt8195-scpsys: Add mediatek,mt6795-scpsys
3d469bea90a9 dt-bindings: mfd: atmel,sama5d2-flexcom: Add microchip,lan9691-flexcom
41693d50a7e8 dt-bindings: mfd: syscon: Allow syscon compatible for mediatek,mt7981-topmisc
75d41d817735 dt-bindings: mfd: qnap,ts433-mcu: Add qnap,ts133-mcu compatible
c7b860543f2d dt-bindings: mfd: nxp: Add NXP LPC32xx System Control Block
d165e31e20f7 dt-bindings: mfd: Add Bitmain BM1880 System Controller
bc0ece5d642e dt-bindings: mfd: atmel,hlcdc: Add sama7d65 compatible string
02f34a00c311 dt-bindings: mfd: syscon: Document the GPR syscon for the NXP S32 SoCs
cbb75857f755 Merge branches 'ib-mfd-clk-gpio-power-regulator-rtc-6.20', 'ib-mfd-regulator-6.20' and 'ib-mfd-rtc-6.20' into ibs-for-mfd-merged
4ed80af4e800 dt-bindings: mtd: partitions: Combine simple partition bindings
cd4daa0abfd5 dt-bindings: mtd: partitions: Convert brcm,trx to DT schema
7796aed329eb dt-bindings: mtd: fixed-partitions: Restrict undefined properties
2fee48751e05 dt-bindings: mtd: Ensure partition node properties are documented
cf39a935bc6f dt-bindings: mtd: partitions: Drop partitions.yaml
ab71d51e949d dt-bindings: mtd: partitions: Define "#{address,size}-cells" in specific schemas
35da943e3f8d dt-bindings: mtd: partitions: Allow "nvmem-layout" in generic partition nodes
f3e4abc0c3cc dt-bindings: mtd: partitions: Move "sercomm,scpart-id" to partition.yaml
3f3e27254a33 dt-bindings: mtd: fixed-partitions: Move "compression" to partition node
57f96b737a5a dt-bindings: mtd: brcm,brcmnand: Drop "brcm,brcmnand" compatible for iProc
f88b437888f0 Merge tag 'apple-soc-dt-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux into soc/dt
612c4f9fdb49 Merge tag 'lpc32xx-dt-for-6.20' of https://github.com/vzapolskiy/linux-lpc32xx into soc/dt
dc6ece796b86 Merge tag 'aspeed-6.20-devicetree-1' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt
55e9e95b7d41 Merge tag 'nuvoton-arm64-6.20-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt
ef282680695f arm64: dts: marvell: Add SoC specific compatibles to SafeXcel crypto
708378216fa0 Merge tag 'v6.20-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
9543fe54b8c1 Merge tag 'v6.20-rockchip-dts32-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
fd0c3637dece Merge tag 'juno-updates-7.0' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
9ce8d18f3e3e dt-bindings: net: pcs: mediatek,sgmiisys: deprecate "mediatek,pnswap"
11fb43148bc5 dt-bindings: net: airoha,en8811h: deprecate "airoha,pnswap-rx" and "airoha,pnswap-tx"
6c8d104996f2 dt-bindings: net: airoha: npu: Add firmware-name property
c0e2edfaf4e0 dt-bindings: touchscreen: trivial-touch: Drop 'interrupts' requirement for old Ilitek
0b946423208a dt-bindings: input: i2c-hid: Introduce FocalTech FT8112
ee15a65fc46e ARM: dts: qcom: switch to RPMPD_* indices
c24b5ac17de5 arm64: dts: qcom: sm6115: Add CX_MEM/DBGC GPU regions
f4aa4553a6f4 arm64: dts: qcom: agatti: Add CX_MEM/DBGC GPU regions
02d1cd46bdf2 arm64: dts: qcom: sm8750: add ADSP fastrpc-compute-cb nodes
9d42975778ea arm64: dts: qcom: sm8750: add memory node for adsp fastrpc
230606847d7d arm64: dts: qcom: switch to RPMPD_* indices
a6b35c9c693b dt-bindings: thermal: r9a09g047-tsu: document RZ/T2H and RZ/N2H
0ec54c733653 dt-bindings: thermal: r9a09g047-tsu: Document RZ/V2N TSU
ac680fe53467 arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: enable SDIO interface
04ad85e91e0e Merge tag 'qcom-drivers-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
47cf549e361f Merge tag 'samsung-drivers-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/drivers
eacf9bb0ce61 arm64: dts: qcom: oneplus-enchilada: Specify i2c4 clock frequency
a027ea136749 arm64: dts: qcom: sm6350: Add clocks for aggre1 & aggre2 NoC
ef5b8a86c529 arm64: dts: qcom: agatti: enable FastRPC on the ADSP
719449cdbc04 dt-bindings: pinctrl: document polarfire soc mssio pin controller
da54d367c877 dt-bindings: pinctrl: qcom,glymur-tlmm: Document Mahua TLMM block
286e264e593d media: dt-bindings: add rockchip mipi csi-2 receiver
b1a1cf5123de dt-bindings: display: bridge: simple: document the Algoltek AG6311 DP-to-HDMI bridge
6994a15275b1 dt-bindings: vendor-prefixes: Add AlgolTek
ba3c253fb0d5 dt-bindings: interconnect: qcom-bwmon: Document Glymur BWMONs
6e74c2f165c9 dt-bindings: eeprom: at24: Add compatible for Puya P24C128F
32e5ee28ac99 dt-bindings: phy: renesas,usb2-phy: Document RZ/G3E SoC
c09e9126d56c dt-bindings: phy: renesas,usb2-phy: Document mux-states property
f40c647c0d90 dt-bindings: phy: renesas,usb2-phy: Document USB VBUS regulator
bcb394aa1cc7 media: dt-bindings: media: renesas,fcp: Allow three clocks for RZ/V2N SoC
5b33c502ea7b dt-bindings: net: micrel: Convert micrel-ksz90x1.txt to DT schema
982acc2e14ed dt-bindings: net: micrel: Convert to DT schema
63070365f58b dt-bindings: net: sparx5: do not require phys when RGMII is used
002e8d7735ee riscv: dts: spacemit: Disable ETH PHY sleep mode for OrangePi
4f9b26619be1 dt-bindings: display/msm: qcom, kaanapali-mdss: Add Kaanapali
0d9bc6aa9d8f dt-bindings: display/msm: dsi-controller-main: Add Kaanapali
4b6d795f96c4 dt-bindings: display/msm: dsi-phy-7nm: Add Kaanapali DSI PHY
e6b595f95f13 dt-bindings: display/msm: qcom, kaanapali-dpu: Add Kaanapali
3964d858d90f Merge tag 'v6.19-rc1' into msm-next
38a99a817ad7 dt-bindings: input: google,goldfish-events-keypad: Convert to DT schema
d9192729652c dt-bindings: thermal: mediatek: Add LVTS thermal controller definition for MT7987
9c11b43017f0 dt-bindings: nvmem: mediatek: efuse: Add support for MT8196
de3c5fe53427 dt-bindings: thermal: mediatek: Add LVTS thermal controller support for MT8196
695720024214 dt-bindings: input: touchscreen: edt-ft5x06: Add FocalTech FT3518
aa63f9776715 ASoC: renesas: rz-ssi: Cleanups
7c7e2cdfd3c3 spi: xilinx: make IRQs optional
4da8a7ec04d2 dt-bindings: pwm: nxp,lpc32xx-pwm: Specify clocks property as mandatory
70824cca4e4a dt-bindings: mfd: Add rk801 binding
55e728580ead riscv: dts: spacemit: pinctrl: update register and IO power
d04eca503075 riscv: dts: spacemit: add K3 Pico-ITX board support
21e575fedb50 riscv: dts: spacemit: add initial support for K3 SoC
27ee007b967d dt-bindings: riscv: spacemit: add K3 and Pico-ITX board bindings
61b7fb5df7fb dt-bindings: interrupt-controller: add SpacemiT K3 IMSIC
d33981a1add4 dt-bindings: interrupt-controller: add SpacemiT K3 APLIC
ae5532959fcb dt-bindings: timer: add SpacemiT K3 CLINT
e2d340aa025b dt-bindings: riscv: add SpacemiT X100 CPU compatible
a585497ee055 riscv: dts: spacemit: k1: Add "b" ISA extension
06b93bbd2215 riscv: dts: spacemit: Enable USB3.0 on BananaPi-F3
340cd332be59 riscv: dts: spacemit: Add DWC3 USB 3.0 controller node for K1
a6c9e830b026 riscv: dts: spacemit: Add USB2 PHY node for K1
10935534c858 riscv: dts: spacemit: sdhci: add reset support
943a3e884eb2 riscv: dts: spacemit: add reset property
f8f9dd79d671 spi: dt-bindings: nxp,imx94-xspi: add nxp,imx952-xspi
5227871b94c8 dt-bindings: display: panel: Add compatible for Anbernic RG-DS
b978b018d7e1 ARM: dts: rockchip: rk3036: remove mshc aliases
ec280a19bf3e arm64: dts: rockchip: Do not enable hdmi_sound node on Pinebook Pro
442c21c2fe40 arm64: dts: rockchip: Fix imx258 variant on pinephone pro
6567ba439a82 arm/arm64: dts: st: Drop unused .dtsi
72898ec8d065 arm64: dts: st: Minor whitespace cleanup
5a25c60f7778 arm64: dts: st: Use hyphen in node names
bad0d9112b83 arm64: dts: st: add power-domain of dcmipp in stm32mp231.dtsi
ea9d4b95cbb3 arm64: dts: st: add power-domain of dcmipp in stm32mp251.dtsi
f2d478648a9c dt-bindings: media: st: dcmipp: add 'power-domains' property
e5435ff3b5aa arm64: dts: st: add power-domain of csi in stm32mp231.dtsi
81460acf00c3 arm64: dts: st: add power-domain of csi in stm32mp251.dtsi
dea5c1b19f24 dt-bindings: media: st: csi: add 'power-domains' property
15b8d5b148fb ARM: dts: stm32: add spi1 sleep state pinctrl on stm32mp157c-ev1
23bd1dd935f0 arm64: dts: st: add DDR channel to stm32mp257f-ev1 board
1073f0cfc9cf arm64: dts: st: add LPDDR channel to stm32mp257f-dk board
ec0680b409b7 arm64: dts: st: enable i2c analog-filter in stm32mp231.dtsi
19745354672a arm64: dts: st: enable i2c analog-filter in stm32mp251.dtsi
eb2ffaa4d91d arm64: dts: st: add power-domains in all i2c of stm32mp231.dtsi
b768c686e770 arm64: dts: st: add power-domains in all i2c of stm32mp251.dtsi
10ebfd2c3959 dt-bindings: i2c: st,stm32-i2c: add 'power-domains' property
a09b11b2817f arm64: dts: st: add power-domains in all spi of stm32mp231.dtsi
05b85f24fe27 arm64: dts: st: add power-domains in all spi of stm32mp251.dtsi
30b02e4ca2cb arm64: dts: st: Add boot-led for stm32mp2 ST boards
5e5deb2316bd ARM: dts: stm32: Add boot-led for stm32mp1 ST boards
2bf2ef567959 ARM: dts: stm32: Add boot-led for stm32 MCU ST boards
bd859993cc6d arm64: dts: st: Add green and orange LED for stm32mp2 ST boards
56b9f7fc9fde ARM: dts: stm32: Update LED node for stm32mp15xx-dkx board
0e2cd6d0cf14 ARM: dts: stm32: Add red LED for stm32mp157c-ed1 board
e1c842fb48ff ARM: dts: stm32: Add red LED for stm32mp135f-dk board
b025c0be8d16 ARM: dts: stm32: Add LED support for stm32h743i-eval
4b522a720f19 ARM: dts: stm32: Add LED support for stm32h743i-disco
39a3d28582ab ARM: dts: stm32: Update LED nodes for stm32 MCU boards
d549902a2f8f arm64: dts: amlogic: add the type-c controller on Radxa Zero 2
0e110c9846e6 arm64: dts: amlogic: meson-sm1-odroid: Eliminate Odroid HC4 power glitches during boot.
beaa0522e5f9 arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: enable eMMC storage
6a2f6b9b373a riscv: dts: sophgo: sg2044: Add "b" ISA extension
add5431b0e85 riscv: dts: sophgo: fix the node order of SG2042 peripheral
ac0ba8a30821 riscv: dts: sophgo: Move PLIC and CLINT node into CPU dtsi
7c0e3963484a dt-bindings: pinctrl: spacemit: add syscon property
5596787e9479 spi: dt-bindings: xilinx: make interrupts optional
78046c205134 arm64: qcom: dts: sm8750: add coresight nodes
9f7cc53066ad arm64: dts: qcom: talos: Drop opp-shared from QUP OPP table
ce61799a7f23 arm64: dts: qcom: x1-el2: Enable the APSS watchdog
cd6f4fa8d2eb arm64: dts: qcom: hamoa: Add the APSS watchdog
1e4b8c7e87d9 dt-bindings: watchdog: Document X1E80100 compatible
b3fd7b873f1c ARM: dts: qcom: msm8960: expressatt: Add Accelerometer
9e7e58ab94e1 ARM: dts: qcom: msm8960: expressatt: Add Magnetometer
c2df47ae20b9 ARM: dts: qcom: msm8960: expressatt: Add NFC
35bce974b172 ARM: dts: qcom: msm8960: expressatt: Add Light/Proximity Sensor
2e5966453c77 ARM: dts: qcom: msm8960: Add GSBI2 & GSBI7
fd72dcfface9 arm64: dts: qcom: sdm632-fairphone-fp3: Enable CCI and add EEPROM
a986521752b2 arm64: dts: qcom: sdm632-fairphone-fp3: Add camera fixed regulators
26b9815fb37d arm64: dts: qcom: msm8953: Add CCI nodes
d39c16e042a1 arm64: dts: qcom: msm8953: Re-sort tlmm pinctrl states
dab43170e734 dt-bindings: net: dsa: lantiq,gswip: add MaxLinear R(G)MII slew rate
05ab1b20da91 ARM: dts: qcom: msm8974: Start using rpmpd for power domains
9be5f27bd8a8 ARM: dts: qcom: msm8974: Sort header includes alphabetically
018c6554c99c dt-bindings: regulator: mark regulator-suspend-microvolt as deprecated
9f9686624b29 arm64: dts: mediatek: mt8192: Rename mt8192-afe-pcm to audio-controller
f98ac8fd4a35 dt-bindings: arm: mediatek: audsys: Support mt8192-audsys variant
7a53eaaf914c dt-bindings: arm: qcom: Add Coresight Interconnect TNOC
cbcfbcb9d555 dt-bindings: mtd: st,spi-fsm: convert to DT schema
c954d2f5b479 dt-bindings: mtd: microchip,mchp23k256: convert to DT schema
9c50822512d8 dt-bindings: mtd: nvidia,tegra20-nand: convert to DT schema
e7bb20485fd6 riscv: dts: anlogic: dr1v90: Add "b" ISA extension
7b7fabb5ece3 Merge 6.19-rc6 usb-next
a55b4820bea8 ARM: dts: allwinner: Replace status "failed" with "fail"
9b3f945edd5b Merge tag 'mediatek-drm-next-20260117' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
e2732701ee10 Merge tag 'samsung-pinctrl-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel
318f21421b67 Merge tag 'renesas-pinctrl-for-v6.20-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
5d4b95cb22f8 dt-bindings: mbox: add pic64gx mailbox compatibility to mpfs mailbox
e9535087ef08 dt-bindings: mailbox: qcom: Add CPUCP mailbox controller bindings for Kaanapali
7b834b22a4f3 dt-bindings: mailbox: mediatek,mt8196-vcp-mbox: add mtk vcp-mbox document
4abfb76fac38 dt-bindings: display/msm/gpu: Straighten out reg-names on A619L/610/702
7b9953464554 dt-bindings: watchdog: qcom-wdt: Document Glymur watchdog
f3e32711d1f9 dt-bindings: watchdog: Convert mpc8xxx-wdt to YAML
4e1009c422e4 dt-bindings: watchdog: samsung-wdt: Split if:then: and constrain more
76ef81f60554 dt-bindings: watchdog: samsung-wdt: Drop S3C2410
f21fec63b372 dt-bindings: watchdog: samsung-wdt: Define cluster constraints top-level
947ec2a7a061 arm64: dts: freescale: imx95: Add support for i.MX95 15x15 FRDM board
1e2f6fe09a0a dt-bindings: arm: fsl: Add compatible for i.MX95 15x15 FRDM board
da896e6aeb6e arm64: dts: imx91-11x11-frdm: fix CAN transceiver gpio
9a799b6dcf66 arm64: dts: imx93-11x11-frdm: enable additional devices
c320d1ee2c31 ARM: dts: imx: e60k02: add tps65185
f23d7747e2fc ARM: dts: imx50-kobo-aura: add epd pmic description
a5187a07278f ARM: dts: imx: tolino-shine2: add tps65185
def2bad12ad5 arm64: dts: imx93-11x11-frdm: Add MQS audio support
326f80d72a57 arm64: dts: imx952-evk: Add nxp,ctrl-ids for scmi misc
708a298bdf32 arm64: dts: imx952-evk: Add flexcan support
76ad6957eac5 arm64: dts: imx952-evk: Enable TPM[3,6]
99d8f14ea5bd arm64: dts: imx952-evk: Enable wdog3
53d10193fd4a arm64: dts: imx952-evk: Enable USB[1,2]
d8663a7f9769 arm64: dts: imx952-evk: Enable SPI7
34e233786a5f arm64: dts: imx952-evk: Enable UART5
92bb376249bb arm64: dts: imx952-evk: Enable I2C[2,3,4,6,7] bus
dd58a0f13f18 arm64: dts: imx952-evk: Change the usdhc1_200mhz drive strength to DSE4
f32e871ca957 arm64: dts: imx952: Add idle-states node
4e976b781b68 arm64: dts: imx8mn: Add ifm VHIP4 EvalBoard v1 and v2
501d4b54ac14 arm64: dts: imx8mn: Add SNVS LPGPR
67e6d92ddfdd arm64: dts: imx8mq-librem5: Don't set mic-cfg for wm8962
083f756b87a3 arm64: dts: imx8mq-librem5: Set cap-power-off-card for usdhc2
3dd550990418 arm64: dts: imx8mq-librem5: Limit uSDHC2 frequency to 50MHz
814565e7b271 arm64: dts: imx8mq-librem5: Enable SNVS RTC
6118d1871535 arm64: dts: imx8mq-librem5: Set vibrator's PWM frequency to 20kHz
6c8d0e9696b0 arm64: dts: imx8mq-librem5: Enable I2C recovery
df87f60ac610 dt-bindings: net: pcs: renesas,rzn1-miic: Add phy_link property
a007152b42f7 dt-bindings: mailbox: qcom: Add IPCC support for Kaanapali and Glymur Platforms
f17db6ab33fe arm64: dts: exynos: gs101: add cmu_dpu and sysreg_dpu dt nodes
af824b164001 Merge branch 'for-v6.20/dt-bindings-clk' into next/dt64
7f5d058c91d5 dt-bindings: samsung: exynos-sysreg: add gs101 dpu compatible
03e693827f91 Merge branch 'for-v6.20/dt-bindings-clk' into next/clk
914545f99d20 dt-bindings: clock: google,gs101-clock: Add DPU clock management unit
989b6eeea3ac dt-bindings: clock: google,gs101-clock: fix alphanumeric ordering
c95c9060cf20 dt-bindings: arm: fsl: Document ifm VHIP4 EvalBoard v1 and v2
d11258fd262f dt-bindings: vendor-prefixes: Document ifm electronic gmbh
9af150b1d5ac arm64: dts: imx95: Use GPU_CGC as core clock for GPU
9ca53be594b1 ARM: dts: imx: move nand related property under nand@0
515b1852fc1d ARM: dts: imx6sx: update gpmi #size-cells to 0
bfc8a89eae3d ARM: dts: imx6qdl: add '#address-cells' and '#size-cells' for gpmi-nand
f1f26baa4790 arm64: dts: imx91: Add thermal-sensor and thermal-zone support
ec7bfa4a6cc6 dt-bindings: display: tegra: document Tegra30 VI and VIP
d4fb3d68c52e dt-bindings: display: tegra: document Tegra132 MIPI calibration device
36cd72893c12 ARM: tegra: Adjust DSI nodes for Tegra20/Tegra30
2822dc9ca7f1 arm64: tegra: smaug: Add usb-role-switch support
c8a97be57fe4 arm64: tegra: smaug: Complete and enable tegra-udc node
b48949517e5f arm64: tegra: smaug: Enable DisplayPort via USB-C port
4b86a80e2733 dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195
ba7055ce7670 dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC
2c497b05d60f arm64: tegra: Correct CPU compatibles on Tegra264
3fd0fa38597d arm64: tegra: Drop unneeded status=okay on Tegra264
94fddcbb5edb arm64: tegra: Drop unneeded status=okay on Tegra234
8bc40459d4b1 arm64: tegra: Drop unneeded status=okay on Tegra194
a751ddaf7368 arm64: tegra: Drop unneeded status=okay on Tegra186
7e68f45e9d71 arm64: tegra: Add nodes for CMDQV
2dcabc6b8618 arm64: tegra: Add DBB clock to EMC on Tegra264
9c2cb35536e3 dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195
b99d0eb7564e arm64: dts: broadcom: bcm4906-netgear-r8000p: Drop unnecessary "ranges" in partition node
5e7a803f25cb arm64: dts: broadcom: northstar2: Drop "arm,cci-400-pmu" fallback compatible
495f35c2c98f arm64: dts: broadcom: northstar2: Drop QSPI "clock-names"
7f3ad038566f arm64: dts: broadcom: northstar2: Drop unused and undocumented "brcm,pcie-ob-oarr-size" properties
4db81b905c2b arm64: dts: broadcom: northstar2: Rework clock nodes
01cfa0ec34b9 arm64: dts: broadcom: ns2-svk: Use non-deprecated at25 properties
fcd62ea160ad arm64: dts: broadcom: Use preferred node names
d9fec9189e6b arm64: dts: broadcom: stingray: Move raid nodes out of bus
ab4ed1dc0d04 arm64: dts: broadcom: stingray: Fix 'simple-bus' node names
cc9550ca574b arm64: dts: broadcom: stingray: Rework clock nodes
708a5b2c0fe4 arm64: dts: broadcom: Remove unused and undocumented nodes
862b765f1108 dt-bindings: can: renesas,rcar-canfd: Document RZ/T2H and RZ/N2H SoCs
4ec77a68120b dt-bindings: can: renesas,rcar-canfd: Document RZ/V2H(P) and RZ/V2N SoCs
14ae60e3097d dt-bindings: can: renesas,rcar-canfd: Specify reset-names
e7c67c8a4413 dt-bindings: can: renesas,rcar-canfd: Document renesas,fd-only property
6d45bea6e3af dt-bindings: mailbox: qcom: Add CPUCP mailbox controller bindings for Kaanapali
cecc020569a4 dt-bindings: mtd: nvidia,tegra20-nand: convert to DT schema
be3f0a7db3f8 dt-bindings: dma: Update ADMA bindings for tegra264
7f2243e51e32 openrisc: dts: Add de0 nano multicore config and devicetree
013156b1bde9 openrisc: dts: Split simple smp dts to dts and dtsi
6fe2a6550f5f openrisc: dts: Add de0 nano config and devicetree
67fb31a7cd6b arm64: dts: qcom: lemans: enable static TPDM
ed6dd716b980 arm64: dts: qcom: kodiak: Add memory region for audiopd
c5bfde36ba99 arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
580b3f4a68b5 arm64: dts: qcom: x1e: bus is 40-bits (fix 64GB models)
2ea2ad35b316 arm64: dts: rockchip: Add the Video-Demo overlay for Lion Haikou
c06349a10fff arm64: dts: rockchip: Enable pwm1 on rk3368-lion-haikou
06befd3e2967 arm64: dts: rockchip: Enable HDMI output on RK3368-Lion-Haikou
e47d90e6728a arm64: dts: rockchip: Add HDMI node to RK3368
aeff6a608b6c arm64: dts: rockchip: Use phandle for i2c_lvds_blc on rk3368-lion haikou
a656170a31fc arm64: dts: rockchip: Fix SD card support for RK3576 Nanopi R76s
1de10acec651 arm64: dts: rockchip: Fix SD card support for RK3576 EVB1
d7416ad948d1 dt-bindings: serial: google,goldfish-tty: Convert to DT schema
f84445bb1270 dt-bindings: serial: sh-sci: Fold single-entry compatibles into enum
90acfa9f6742 dt-bindings: serial: renesas,rsci: Document RZ/V2H(P) and RZ/V2N SoCs
630e7963f59d dt-bindings: PCI: qcom: Document the Glymur PCIe Controller
79e31b907d76 dt-bindings: misc: google,android-pipe: Convert to DT schema
b577c2abb1d4 dt-bindings: usb: Add binding for WCH CH334/CH335 hub controller
455fa431ed46 dt-bindings: iommu: Add NVIDIA Tegra CMDQV support
b137b22a98b3 dt-bindings: memory: tegra: Document DBB clock for Tegra264
d8b05403d10c dt-bindings: tegra: pmc: Update aotag as an optional aperture
48296655ff9f arm64: dts: ti: k3-am67a-kontron-sa67-base: Fix SD card regulator
29eaf3445321 arm64: dts: ti: k3-am67a-kontron-sa67-base: Fix CMA node
74379f1a5e5f arm64: dts: ti: k3-am62p-j722s-common-main: Add HSM M4F node
c5512f936aff arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node
974e346cc223 arm64: dts: renesas: rzt2h-rzn2h-evk: Reorder ADC nodes
141816132f7b dt-bindings: clock: mpfs-clkcfg: Add pic64gx compatibility
023006616a86 dt-bindings: clock: mpfs-ccc: Add pic64gx compatibility
2cf21f13e040 dt-bindings: net: airoha: npu: Add BA memory region
4c961b745f1f dt-bindings: net: adi,adin: document LP Termination property
1da46de73792 Merge tag 'phy_common_properties' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
b5b08104dda9 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
74d0ef2610f3 dt-bindings: net: wireless: ath11k: Combine two if:then: clauses
f10bf8779ec6 Merge tag 'drm-misc-next-2026-01-15' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
b73740fc9de1 dt-bindings: display/msm/rgmu: Document A612 RGMU
dca9618a1d32 dt-bindings: display/msm: gpu: Document A612 GPU
0d6547833df6 dt-bindings: display/msm: gpu: Simplify conditional schema logic
81ce5f5864eb arm64: dts: qcom: lemans; Add EL2 overlay
8681a97e8eb3 arm64: dts: qcom: sm8150: add uart13
201bf4da11e6 arm64: dts: qcom: sdm845-db845c: specify power for WiFi CH1
38cc99dc1f1c arm64: dts: qcom: sdm845-db845c: drop CS from SPIO0
c58414174a89 arm64: dts: qcom: qrb4210-rb2: Fix UART3 wakeup IRQ storm
7a952883ade4 ASoC: dt-bindings: mt8192-afe-pcm: Fix clocks and clock-names
4950c913b7d5 dt-bindings: gpio-mmio: Correct opencores GPIO
b682394899eb Merge tag 'ib-mfd-clk-gpio-power-regulator-rtc-v6.20' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
14a86e737e7d arm64: dts: mediatek: mt7988a: Fix PCI-Express T-PHY node address
43c9e46a90ba arm64: dts: meson-s4-s905y4-khadas-vim1s: add initial device tree
047fbc9e905a arm64: dts: meson-s4-aq222: update compatible string with s805x2
562fa59f8326 dt-bindings: arm: amlogic: introduce specific compatibles for S4 family
c2ffdb01e074 arm64: dts: mediatek: mt8186-evb: Add vproc fixed regulator
fdda1b0b1ba0 ARM: dts: r9a06g032: Add support for GPIO interrupts
6c5ab649ab2f ARM: dts: r9a06g032: Add GPIO controllers
8edb33f4827a arm64: dts: renesas: rzg3e-smarc-som: Enable I3C support
4409a3e81288 dt-bindings: soc: renesas: Document RZ/N1 GPIO Interrupt Multiplexer
6880f32f6442 arm64: dts: mediatek: mt7981b-openwrt-one: Add address/size cells to eth
515f976d0ce9 arm64: dts: amlogic: Enable the npu node on Radxa Zero 2
d3108d4cb1dc arm64: dts: amlogic: g12: assign the MMC A signal clock
6c24c785f2f3 arm64: dts: amlogic: g12: assign the MMC B and C signal clocks
d70bd7d65c47 arm64: dts: amlogic: gx: assign the MMC signal clocks
2f5f8f725290 arm64: dts: amlogic: axg: assign the MMC signal clocks
389ec29c282d arm64: dts: amlogic: a1: align the mmc clock setup
5561343a9359 arm64: dts: amlogic: c3: assign the MMC signal clocks
e7927bfb9594 riscv: dts: sophgo: enable hardware clock (RTC) on the Milk-V Pioneer
b1e14936e730 media: dt-bindings: ti,omap3isp: Convert to DT schema
ea20b4c79f4c media: dt-bindings: i2c: toshiba,et8ek8: Convert to DT schema
fc53e67381e3 dt-bindings: media: ov5647: Allow props from video-interface-devices
855f0e943b6a dt-bindings: media: ov5647: Add optional regulators
2995b9b04133 arm64: dts: qcom: sm6125-ginkgo: Fix missing msm-id subtype
2d1968d218f6 sound: codecs: tlv320adcx140: assorted patches
391d32897d0f ASoC: codecs: aw88261: add dvdd-supply property
d27446108ca4 arm64: dts: ti: k3-j784s4-j742s2-main-common.dtsi: Refactor watchdog instances for j784s4
bcf34bb0f9a7 arm64: dts: ti: k3-j784s4-main.dtsi: Move c71_3 node to appropriate order
f9747b110fc4 arm64: dts: ti: k3-am69-aquila-clover: Change main_spi2 CS0 to GPIO mode
da6e384db047 arm64: dts: ti: k3-am69-aquila: Change main_spi0/2 CS to GPIO mode
b327f12239ae dt-bindings: phy: google: Add Google Tensor G5 USB PHY
0bf24893ebdc dt-bindings: pinctrl: spacemit: k3: fix drive-strength doc
d14b8962ef3b dt-bindings: sound: google,goldfish-audio: Convert to DT schema
40732ea3b5cd ASoC: dt-bindings: document dvdd-supply property for awinic,aw88261
2551501b8eb4 ASoC: dt-bindings: add avdd and iovdd supply
8793bb577f2f ASoC: dt-bindings: clarify areg-supply documentation
184e81f0216e Merge tag 'phy_common_properties' into next
ee419f4a90cc dt-bindings: phy-common-props: RX and TX lane polarity inversion
9d0ca379b4d7 dt-bindings: phy-common-props: ensure protocol-names are unique
387a58af46f8 dt-bindings: phy-common-props: create a reusable "protocol-names" definition
ebcd7b8610c6 dt-bindings: phy: rename transmit-amplitude.yaml to phy-common-props.yaml
41ccdde910d4 arm64: dts: amlogic: s4: fix mmc clock assignment
d4460e04fa48 arm64: dts: amlogic: s4: assign mmc b clock to 24MHz
1cfe09dac9a0 arm64: dts: amlogic: drop useless assigned-clock-parents
b270a7272aa7 dt-bindings: ata: sata: Document the graph port
7d3c2e8aaae2 dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: Add QMP UFS PHY compatible
4facd5bf21a3 dt-bindings: phy: qcom,m31-eusb2-phy: Document M31 eUSB2 PHY for Kaanapali
dfc1771a6f91 dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Add Kaanapali QMP PHY
4d783b51113f dt-bindings: phy: Add PHY_TYPE_XAUI definition
fa414004e411 arm64: dts: mediatek: mt8183-kukui: Clean up IT6505 regulator supply
803da859257f dt-bindings: phy: qcom,sc8280xp-qmp-ufs-phy: document the Milos QMP UFS PHY
cefe660cbbf3 arm64: dts: mediatek: mt7986a: Change compatible for SafeXcel crypto
7a3f7afcef9e arm64: dts: mediatek: mt8173-evb: Add interrupts to DA9211 regulator
206b6aecc2e6 arm64: dts: mediatek: mt6795-xperia-m5: Rename PMIC leds node
c36276a3b23d arm64: dts: mediatek: mt6795: Fix issues in SCPSYS node
0f3176276ef7 arm64: dts: mediatek: mt6331: Fix VCAM IO regulator name
48f536cf5421 dt-bindings: i2c: i2c-mt65xx: Add compatible for MT8189 SoC
38f6981ab699 Merge branch '20260105-kvmrprocv10-v10-0-022e96815380@oss.qualcomm.com' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into rproc-next
7b66bb79b113 Merge branch '20260105-kvmrprocv10-v10-0-022e96815380@oss.qualcomm.com' into drivers-for-6.20
6266a22d68f6 dt-bindings: net: dp83822: Deprecate ti,fiber-mode
9e1e99cc0fcc dt-bindings: net: Introduce the ethernet-connector description
d8dbb43cdd3a dt-bindings: riscv: extensions: Drop unnecessary select schema
4b9e5aa4a542 dt-bindings: riscv: Add Sha and its comprised extensions
fe7098988625 dt-bindings: riscv: Add Ssccptr, Sscounterenw, Sstvala, Sstvecd, Ssu64xl
8722a58217dd dt-bindings: riscv: Add descriptions for Za64rs, Ziccamoa, Ziccif, and Zicclsm
b3ec41ca5d55 dt-bindings: riscv: Add B ISA extension description
0957ff98c67a dt-bindings: riscv: update ratified version of h, svinval, svnapot, svpbmt
65d424e95f5a dt-bindings: remoteproc: qcom,pas: Add iommus property
85cfc581b357 arm64: dts: qcom: qcs8300: Add GPU cooling
d9deaa855e4b dt-bindings: remoteproc: fsl,imx-rproc: Add support for i.MX95
d9a30a00d06b riscv: dts: allwinner: d1: Add RGB LEDs to boards
4905d5900f35 riscv: dts: allwinner: d1: Add LED controller node
a12da48d8f20 regulator: dt-bindings: rpi-panel: Mark 7" Raspberry Pi as GPIO controller
85ffea24a11c arm64: dts: allwinner: a100: Add LED controller node
6c8cc1716e52 mtd: spinand: Octal DTR support
49926bd040f4 dt-bindings: gpu: mali-valhall-csf: Add shader-present nvmem cell
8786767941ac arm64: dts: qcom: sa8775p: Add reg and clocks for QoS configuration
d2fe66895e41 dt-bindings: PCI: qcom,sa8255p-pcie-ep: Document firmware managed PCIe endpoint
19b8532647c2 Merge branch 'icc-mtk' into icc-next
1460edbbf157 dt-bindings: interconnect: qcom,qcs615-rpmh: Drop IPA interconnects
59ff855455ce Axiado AX3000 SoC SPI DB controller driver
c6443a18e84c arm64: dts: rockchip: Add Radxa CM3J on RPi CM4 IO Board
0032df604fa6 arm64: dts: rockchip: Add Radxa CM3J
9125f8bb75bc dt-bindings: arm: rockchip: Add Radxa CM3J on RPi CM4 IO Board
1ee79eb39a92 arm64: dts: rockchip: Make eeprom read-only for Radxa ROCK 3C/5A/5C
12369df303aa arm64: dts: rockchip: Add TS133 variant of the QNAP NAS series
0ebe988da929 dt-bindings: arm: rockchip: add TS133 to RK356x-based QNAP NAS devices
f05a74784e3e arm64: dts: rockchip: Move copy-key to TSx33 board files
65cc1beff5b0 arm64: dts: rockchip: Fix the common combophy + SATA on QNAP TSx33 devices
5876ba248e99 arm64: dts: rockchip: Move SoC include to individual QNAP TSx33 boards
5eacb4f2bc3f dt-bindings: PCI: loongson: Document msi-parent property
018ef4ed75bc regulator: dt-bindings: mediatek,mt6331: Add missing ldo-vio28 vreg
8dc33138e8ce dt-bindings: leds: bd72720: Add BD72720
6f2f719011e5 dt-bindings: mfd: ROHM BD72720
e501fa17eb6b dt-bindings: battery: Voltage drop properties
d0729ca80a5a dt-bindings: battery: Add trickle-charge upper limit
1ac445386209 dt-bindings: battery: Clarify trickle-charge
ea07ebf0f94f dt-bindings: regulator: ROHM BD72720
a639de753758 ASoC: Update rtq9128 document and source file
7e5fb31ab397 regulator: Add TPS65185
c03a7bad76e6 dt-bindings: media: Add qcom,sm6150-camss
abbdbd1e88b3 dt-bindings: media: Correct camss supply description
a51c86a499bc dt-bindings: media: qcom,qcs8300-camss: Add missing power supplies
2ff42615a39e dt-bindings: media: ti: vpe: Add support for Video Input Port
063740f57f5b media: dt-bindings: adi,adv7180: add VPP and CSI register maps
3bc58308e013 dt-bindings: display: panel-simple: Allow "data-mapping" for "yes-optoelectronics,ytc700tlag-05-201c"
55197c2320e8 dt-bindings: display: simple: Add Innolux G150XGE-L05 panel
e89cec70ef26 arm64: dts: amlogic: move CPU OPP table and clock assignment to SoC.dtsi
0c2c59fa78c8 Merge patch series "arm64: dts: apple: Add integrated USB Type-C ports"
4bd1c26ba442 arm64: dts: apple: t60xx: Add nodes for integrated USB Type-C ports
a689f58bb9ca arm64: dts: apple: t8112: Add nodes for integrated USB Type-C ports
74042f340f78 arm64: dts: apple: t8103: Add nodes for integrated USB Type-C ports
dc70ad22e366 arm64: dts: apple: t8103: Add ps_pmp dependency to ps_gfx
0d2a0dbe95c5 arm64: dts: apple: t8103: Mark ATC USB AON domains as always-on
774daf7ba17a arm64: dts: apple: t8112-j473: Keep the HDMI port powered on
44f172d1b273 arm64: dts: apple: Add chassis-type property for Apple iMacs
5da589e80ed1 arm64: dts: apple: Add chassis-type property for Mac Pro
82b1e893e129 arm64: dts: apple: Add chassis-type property for Apple desktop devices
cd25b3aae2dc arm64: dts: apple: Add chassis-type property for all Macbooks
f3560e52d9a5 ASoC: dt-bindings: rtq9128: Add rtq9154 backward compatible
891c28cf3f3d arm64: dts: mediatek: mt6795-xperia-m5: Add UHS pins for MMC1 and 2
7ff21e13c458 arm64: dts: mediatek: mt8192-asurada: Remove unused clock-stretch-ns
504f1e61dc1c arm64: dts: mediatek: mt8173-elm: Remove regulators from thermal node
2da6bb860185 arm64: dts: mediatek: mt8173-elm: Fix dsi0 ports warning
134783da2fc5 arm64: dts: mediatek: mt8173-elm: Fix bluetooth node name and reorder
2f5a04231651 arm64: dts: mediatek: mt8183-pumpkin: Fix pinmux node names
d923b4f4f8a8 arm64: dts: mediatek: mt8183-jacuzzi-pico6: Fix typo in pinmux node
ec3f36045cf2 arm64: dts: mediatek: mt7981b-openwrt-one: Remove useless cells from flash@0
4b1cd354d614 arm64: dts: mediatek: mt8183-evb: Fix dtbs_check warnings
999cdbf9bc2a arm64: dts: mediatek: mt8173: Fix pinctrl node names and cleanup
39a89aef4b4f arm64: dts: mediatek: mt8188-geralt: drop firmware-name from first SCP core
cf3c5bf2fb8b regulator: dt-bindings: Document TI TPS65185
358401e15811 regulator: core: allow regulator_register() with
e7e731d90b00 spi: dt-bindings: nxp,lpc3220-spi: Add DMA specific properties
0efd42e88787 ASoC: dt-bindings: Convert realtek,rt5651 to DT schema
21889177c7e9 arm64: dts: renesas: Use lowercase hex
acc2d46ba016 Merge tag 'v6.19-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
cd05027f3228 arm64: dts: renesas: Use hyphens in node names
7add41540117 arm/arm64: dts: renesas: Drop unused .dtsi
005f9e3644ac Merge 6.19-rc5 into char-misc-next
696aea94d3fa dt-bindings: media: i2c: Add os05b10 sensor
fa6b02de574e dt-bindings: media: i2c: Add Samsung S5K3M5 image sensor
1a6970d37718 dt-bindings: media: i2c: Add Samsung S5KJN1 image sensor
396be428d48f arm64: dts: cix: Add OrangePi 6 Plus board support
388222cbc6e4 dt-bindings: arm: cix: add OrangePi 6 Plus board
8a1b971219d9 dt-bindings: iio: adc: Add AD4134
c616ef5fc880 dt-bindings: iio: proximity: Add RF Digital RFD77402 ToF sensor
1b072533efef dt-bindings: pinctrl: samsung: Add exynos9610-wakeup-eint node
d556b2a250a8 dt-bindings: pinctrl: samsung: Add exynos9610-pinctrl compatible
fee6f4f2ebd5 dt-bindings: soc: fsl: qe: Add an interrupt controller for QUICC Engine Ports
315d0a210ccd arm: dts: lpc32xx: add interrupts property to Motor Control PWM
2d4703cc39d8 arm: dts: lpc32xx: add clocks property to Motor Control PWM device tree node
59acbfb08c7a dt-bindings: net: rockchip-dwmac: Allow "dma-coherent"
e7978fa23e73 arm64: dts: rockchip: Add the vdpu383 Video Decoder on rk3576
3d9752b5ffdb arm64: dts: rockchip: Add the vdpu381 Video Decoders on RK3588
713151648ba2 arm64: dts: qcom: hamoa-iot-evk: Enable TPM (ST33) on SPI11
752008e5ef84 arm64: dts: rockchip: Add rk3588s-orangepi-cm5-base device tree
0d591d49d504 dt-bindings: arm: rockchip: Add Orange Pi CM5 Base
823ad7ab4830 arm64: dts: rockchip: Enable second HDMI output on CM3588
9ed66b32c4b9 arm64: dts: rockchip: Add HDMI to Gameforce Ace
afeffdef654c dt-bindings: display: rockchip: Add no-hpd for dw-hdmi-qp controller
374a2610a844 arm64: dts: qcom: talos: Add PMU support
1bb6f872a948 arm64: dts: qcom: talos: switch to interrupt-cells 4 to add PPI partitions
1495b12dd18b arm64: dts: qcom: ipq9574: Complete USB DWC3 wrapper interrupts
60db44f9ab1c arm64: dts: qcom: ipq5018: Correct USB DWC3 wrapper interrupts
3a94f2e147d6 arm64: dts: qcom: monaco: Add CTCU and ETR nodes
61978b63d7cb arm64: dts: qcom: Add PCIe3 and PCIe5 regulators for HAMAO-IOT-EVK board
2f0230be089a arm64: dts: qcom: Add PCIe3 and PCIe5 support for HAMOA-IOT-SOM platform
d7af35972d49 arm64: dts: qcom: hamoa: Move PHY, PERST, and Wake GPIOs to PCIe port nodes and add port Nodes for all PCIe ports
e917dcc44a65 arm64: dts: qcom: sdm630: Add LPASS LPI TLMM
a9576e1975bb arm64: dts: qcom: kodiak: Add missing clock votes for lpass_tlmm
2ce6dac0afda dt-bindings: gpu: img: Add AM62P SoC specific compatible
843442f35eac spi: dt-bindings: axiado,ax3000-spi: Add binding for Axiado SPI DB controller
ce1545686ac4 arm64: dts: renesas: rzt2h-n2h-evk-common: Use GPIO for SD0 write protect
b38c2837a4c1 arm64: dts: renesas: r9a09g057: Add CANFD node
71b05c0fbb1e arm64: dts: renesas: r9a09g056: Add CANFD node
f2826e02dec3 arm64: dts: renesas: r9a09g087m44-rzn2h-evk: Enable CANFD
c3a5ef1971c9 arm64: dts: renesas: r9a09g077m44-rzt2h-evk: Enable CANFD
57507f1ab100 arm64: dts: renesas: r9a09g087: Add CANFD node
2dd586ebf433 arm64: dts: renesas: r9a09g077: Add CANFD node
24a639a75379 Merge tag 'renesas-r9a09g077-dt-binding-defs-tag6' into renesas-dts-for-v6.20
70eb29ba7308 dt-bindings: pinctrl: renesas,r9a09g077-pinctrl: Document GPIO IRQ
7c1e6cdb540c arm64: dts: renesas: r9a09g057: Add RSCI nodes
12bab8609e25 arm64: dts: renesas: r9a09g056: Add RSCI nodes
55d259b32fe2 arm64: dts: renesas: r9a09g087m44-rzn2h-evk: Add GPIO keys
330035930524 arm64: dts: renesas: r9a09g077m44-rzt2h-evk: Add GPIO keys
0274e6aa8e7b arm64: dts: renesas: r9a09g087: Add GPIO IRQ support
cf741d2e8a0e arm64: dts: renesas: r9a09g077: Add GPIO IRQ support
7ec7d3107ad1 arm64: dts: renesas: r9a09g087: Add TSU and thermal zones support
b78ee53481d3 arm64: dts: renesas: r9a09g077: Add TSU and thermal zones support
fb523ea0cebf arm64: dts: renesas: r9a09g087: Add OPP table
ccc606135698 arm64: dts: renesas: r9a09g077: Add OPP table
3d3158f552ec Merge tag 'renesas-r9a09g077-dt-binding-defs-tag6' into renesas-clk-for-v6.20
e61a166730f3 dt-bindings: pinctrl: intel: keembay: fix typo
c52b56ea765a ARM: dts: lpc32xx: Add missing properties to I2S device tree nodes
590f92e52b6e ARM: dts: lpc32xx: Declare the second AHB master support on PL080 DMA controller
0c473c8d6f5d ARM: dts: lpc32xx: Add missing DMA properties
f9aa3eb38496 ARM: dts: lpc32xx: Use syscon for system control block
c379c6892d86 ARM: dts: lpc32xx: describe FLASH_INT of SLC NAND controller
75d9c48a2ba6 ARM: dts: lpc32xx: change NAND controllers node names
d9f691453182 ARM: dts: lpc32xx: Update spi clock properties
3abca592bfe1 ARM: dts: Add support for pcb8385
5f8db3730de7 dt-bindings: arm: at91: add lan966 pcb8385 board
958a9657c7d0 dt-bindings: soc: spacemit: k3: add clock support
a45c091e89a1 dt-bindings: net: dsa: microchip: Make pinctrl 'reset' optional
4e1af11215ee arm64: dts: qcom: qrb2210-rb1: Add overlay for vision mezzanine
e4a1630d3b05 arm64: dts: qcom: qrb2210-rb1: Add PM8008 node
41cb6b05e684 arm64: dts: qcom: qcm2290: Add pin configuration for mclks
f685535f806c arm64: dts: apple: s8001: Add DWI backlight for J98a, J99a
75911f2b072f dt-bindings: display: rockchip,vop: Add compatible for rk3506
7fa529d7f444 dt-bindings: display: rockchip,dw-mipi-dsi: Add compatible for rk3506
6122699e76e7 arm64: dts: broadcom: bcm2712: Add watchdog DT node
914987690831 arm64: dts: broadcom: bcm2712: Enable RNG
0f70c810948d ARM: dts: broadcom: bcm2711: Fix 'simple-bus' node names
726a4988206c ARM: dts: stm32: reorder nodes for stm32429i-eval
85b19a129954 arm64: dts: mediatek: add device tree for Tungsten 700 board
1b97285c0e24 arm64: dts: mediatek: add device tree for Tungsten 510 board
3ed0b28d2918 arm64: dts: mediatek: mt8188: switch mmc nodes to interrupts-extended
59a95bd89011 dt-bindings: arm: mediatek: Add Ezurio Tungsten entries
7e1cf0227843 dt-bindings: vendor-prefixes: Add Ezurio LLC
3e91aecad546 arm64: dts: mediatek: mt8395-genio-common: Add HDMI sound output support
62d02baa6a31 arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output
37eb6fa3a0ad arm64: dts: mediatek: mt8395-radxa-nio-12l: Add HDMI sound output support
0dd940a9c0eb arm64: dts: mediatek: mt8395-radxa-nio-12l: Enable HDMI output
7be855ab6141 arm64: dts: mediatek: mt8390-genio-common: Add HDMI sound output support
684a136b3284 arm64: dts: mediatek: mt8390-genio-common: Enable HDMI output
5ceb3efd9bd7 arm64: dts: mediatek: mt8188: Add DPI1, HDMI, HDMI PHY/DDC nodes
9acd664ae667 arm64: dts: mediatek: mt8195: Add DPI1, HDMI, HDMI PHY/DDC nodes
2f438874517f arm64: dts: mediatek: mt7981b-openwrt-one: Enable wifi
79d0264a56fd arm64: dts: mediatek: mt7981b: Add wifi memory region
813bc92a5a7e arm64: dts: mediatek: mt7981b: Disable wifi by default
b5f804e52428 arm64: dts: mediatek: mt7981b-openwrt-one: Enable Ethernet
4a64fe860e70 arm64: dts: mediatek: mt7981b: Add Ethernet and WiFi offload support
c5b6d809e976 arm64: dts: mediatek: mt7981b-openwrt-one: Enable PCIe and USB
ce656f4eb178 arm64: dts: mediatek: mt7981b: Add PCIe and USB support
c7b4ce20856b arm64: dts: mediatek: mt8183: Add missing endpoint IDs to display graph
9f78fe613d0a dt-bindings: leds: Add LP5860 LED controller
1490903291a0 ARM: dts: aspeed: ibm: Use non-deprecated AT25 properties
666a578e38ce dt-bindings: soc: mediatek: dvfsrc: Document clock
0a000d225d77 riscv: dts: renesas: r9a07g043f: Move interrupt-parent to top node
22bcb33f74c0 dt-bindings: clock: renesas,r9a09g077/87: Add PCLKCAN ID
38d74c781461 dt-bindings: ata: ahci-platform: Drop unnecessary select schema
6c3f2d145bdf ARM: dts: microchip: sama7d65: add missing flexcom nodes
5d84ec142574 ARM: dts: microchip: sama7d65: add fifo-size to usart
78064bb3efab ARM: dts: microchip: sama7d65: add dma properties to usart6
b88e699ac98c arm64: dts: nuvoton: Add missing "device_type" property on memory node
972220e64030 ARM: dts: aspeed: add device tree for ASRock Rack ALTRAD8 BMC
ca9702b1c660 dt-bindings: arm: aspeed: add ASRock Rack ALTRAD8 board
ef7b87ccb63c ARM: dts: aspeed: bletchley: Remove try-power-role from connectors
9534fb1326fa ARM: dts: aspeed: Add Facebook Anacapa platform
e42ed37d5c01 dt-bindings: arm: aspeed: Add compatible for Facebook Anacapa BMC
77be93774ce5 dt-bindings: i2c: atmel,at91sam: add microchip,lan9691-i2c
9a70246b5079 dt-bindings: i2c: spacemit: add optional resets
89715b572f22 Merge tag 'renesas-dts-for-v6.20-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
a49e947cb82d Merge tag 'aspeed-6.20-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt
b0a6b2163d84 Merge tag 'arm-soc/for-6.19/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt
109d342a9d8c arm64: dts: marvell: change regulator-gpio to regulator-fixed
aebc5bb7e5e0 arm64: dts: marvell: cn9131-cf-solidwan: Add missing GPIO properties on "nxp,pca9536"
327f06a60d50 arm64: dts: marvell: Fix stray and typo "pinctrl-names" properties
f5b9b2c9e4b0 arm64: dts: marvell: Add missing "#phy-cells" to "usb-nop-xceiv"
2d48b886ad30 Merge branch '20260107-kaanapali-mmcc-v3-v3-0-8e10adc236a8@oss.qualcomm.com' into clk-for-6.20
a4ecfeacab64 dt-bindings: clock: qcom: document the Kaanapali GPU Clock Controller
d561bab67763 dt-bindings: clock: qcom: Add Kaanapali video clock controller
d5e064fd178d dt-bindings: clock: qcom: Add support for CAMCC for Kaanapali
c7c41265356a dt-bindings: clock: qcom: document Kaanapali DISPCC clock controller
8e073d33637a Merge branch '20251202-sm8750_camcc-v1-2-b3f7ef6723f1@oss.qualcomm.com' into clk-for-6.20
bf41478fce67 dt-bindings: clock: qcom: Add camera clock controller for SM8750 SoC
3c947a7e450a dt-bindings: clock: qcom: Add SDM439 Global Clock Controller
76fb317d3b51 dt-bindings: clock: qcom: Add MSM8940 Global Clock Controller
4ba4ffd81153 dt-bindings: remoteproc: Add HSM M4F core on TI K3 SoCs
7a5c4216a1c0 arm64: dts: qcom: qcs615: Drop IPA interconnects
69fb7ec26313 dt-bindings: usb: Add Socionext Uniphier DWC3 controller
8c743972ba19 dt-bindings: usb: Add Microchip LAN969x support
cdc01d91cdae dt-bindings: pinctrl: sunxi: Allow pinmux sub-pattern with leading numbers
52e36f69f85c dt-bindings: pinctrl: spacemit: add K3 SoC support
e4814cfbf128 dt-bindings: pinctrl: spacemit: convert drive strength to schema format
0e58ef414308 arm64: dts: amlogic: Use lowercase hex
fa33bb953bdc arm64: dts: amlogic: Use hyphen in node names
7da1cd217a9a ARM: dts: meson: drop iio-hwmon in favour of generic-adc-thermal
2951b17ddd23 dt-bindings: PCI: mediatek-gen3: Add MT7981 PCIe compatible
303e6869def2 arm64: dts: airoha: Use hyphen in node names
ef45fa08c122 regulator: dt-bindings: qcom,wcn3990-pmu: describe PMUs on WCN39xx
49ce882257aa ASoC: ES8389: Add some members and update
eb8511c0c383 arm64: dts: rockchip: Enable analog sound on RK3576 EVB1
849e6bb5169a arm64: dts: rockchip: Enable HDMI sound on RK3576 EVB1
144748745031 arm64: dts: rockchip: Enable HDMI sound on Luckfox Core3576
cea146581f75 arm64: dts: rockchip: Enable HDMI sound on FriendlyElec NanoPi M5
f32a74a77a1c arm64: dts: rockchip: Use a readable audio card name on NanoPi M5
7884b9f5136e arm64: dts: rockchip: enable NPU on rk3588-jaguar
6a46cc7da3d5 arm64: dts: rockchip: enable NPU on rk3588-tiger
1186cfe20ff6 dt-bindings: arm: rockchip: fix description for Radxa CM5
e701f00f60df dt-bindings: arm: rockchip: fix description for Radxa CM3I
d1d09800d87e arm64: dts: rockchip: Add missing everest,es8388 supplies to rk3399-roc-pc-plus
a558de474d84 arm64: dts: rockchip: Enable PCIe for ArmSoM Sige1
d7624078afea arm64: dts: rockchip: Enable the NPU on Turing RK1
df697d66f669 arm64: dts: rockchip: Enable the NPU on FriendlyElec CM3588
5682b1ad021c arm64: dts: rockchip: Enable the NPU on NanoPC T6/T6-LTS
d9f2b91a7b6c arm64: dts: rockchip: enable UFS controller on FriendlyElec NanoPi M5
e2debfad11d2 arm64: dts: rockchip: Add light/proximity sensor to Pinephone Pro
a26d68c1f8db arm64: dts: rockchip: Add magnetometer sensor to Pinephone Pro
0454d9dc8e56 ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property
3b4e2f9477be spi: st: use pm_ptr and remove __maybe_unused
8b01839fd7d8 arm64: dts: qcom: qcs615-ride: Enable DisplayPort
357ceb356d84 arm64: dts: qcom: talos: Add DisplayPort and QMP USB3-DP PHY
4e8ac02c90d2 arm64: dts: qcom: sm8750-qrd: Enable Iris codec
33f47143bfd1 arm64: dts: qcom: sm8750-mtp: Enable Iris codec
2aa74e476b84 arm64: dts: qcom: sm8750: Add Iris VPU v3.5
4501ac6fb0c8 dt-bindings: gpio: spacemit: add compatible name for K3 SoC
23cf8652240b arm64: zynqmp: Remove ina260 IIO description
dc06a3f283f1 arm64: dts: xilinx: Drop "label" property on dlg,slg7xl45106
bcfd0d929956 dt-bindings: soc: samsung: exynos-pmu: Drop unnecessary select schema
dd378a30dc54 dt-bindings: display: msm: document DSI controller and phy on QCS8300
3a283e84dbbc dt-bindings: msm: dsi-controller-main: document the QCS8300 DSI CTRL
6a4139dbc9be dt-bindings: display: msm-dsi-phy-7nm: document the QCS8300 DSI PHY
6f23a1829c95 arm64: dts: qcom: Add The Fairphone (Gen. 6)
a7438709761b arm64: dts: qcom: Add initial Milos dtsi
8165839b6501 arm64: dts: qcom: Add PMIV0104 PMIC
ca80589ab27c arm64: dts: qcom: Add PM7550 PMIC
9f874cd47174 arm64: dts: qcom: pm8550vs: Disable different PMIC SIDs by default
5253149fd5ee dt-bindings: arm: qcom: Add Milos and The Fairphone (Gen. 6)
2f681c6aa973 dt-bindings: qcom,pdc: document the Milos Power Domain Controller
7b2b07fc1c7d dt-bindings: crypto: qcom,prng: document Milos
1d4c234a7b5a ARM: dts: omap: dra7: Remove bogus #syscon-cells property
36bf7bcd26ce ARM: dts: ti/omap: omap*: fix watchdog node names
29f8d2affca6 ARM: dts: ti: Drop unused .dtsi
a1cceab259c1 ARM: dts: Drop am335x-base0033 devicetree
615ae4f85f0a ARM: dts: tps65910: Add gpio & interrupt properties
ead7e6e24f53 ARM: dts: omap: enable panic-indicator option
4f8825fbdb65 ARM: dts: ti/omap: omap4-epson-embt2ws: add powerbutton
1dae4dc95b72 arm64: dts: ti: Use lowercase hex
2aaacb2fbb3d arm64: dts: ti: Minor whitespace cleanup
8fbd19905cb1 arm64: dts: qcom: monaco-evk: Enable PCIe0 and PCIe1.
0585c2d3a38e arm64: dts: qcom: qcs8300-ride: enable pcie1 interface
c1c61f7b3cc0 arm64: dts: qcom: qcs8300: enable pcie1
359703ffd6a7 arm64: dts: qcom: qcs8300-ride: enable pcie0 interface
7d4282239989 arm64: dts: qcom: qcs8300: enable pcie0
8964374fadd9 arm64: dts: qcom: x1e80100: add TRNG node
dbffc86d5286 arm64: dts: qcom: sm8750: Fix BAM DMA probing
57591184f103 arm64: dts: qcom: monaco: add QCrypto node
5134a4c0be3d arm64: dts: qcom: lemans: add QCrypto node
9adce3539e71 arm64: dts: qcom: x1e80100-medion-sprchrgd-14-s1: correct firmware paths
4bf4a52efdb2 arm64: dts: qcom: msm8994-octagon: Fix Analog Devices vendor prefix of AD7147
38cc65257d59 arm64: dts: qcom: x1e80100: Add missing TCSR ref clock to the DP PHYs
5e25679a8251 arm64: dts: qcom: sm8750-mtp: Add eusb2 repeater tuning parameters
2176323db071 arm64: dts: qcom: msm8939: Add camss and cci
4c1cd0ce8367 arm64: dts: qcom: qcs6490-rb3gen2: Add TC9563 PCIe switch node
6fa474797f18 dt-bindings: cache: qcom,llcc: Remove duplicate llcc7_base for Glymur
efdc29224d43 media: dt-bindings: nxp,imx8-jpeg: Document optional SRAM support
a335ccfc867a arm64: dts: renesas: r8a779h0: Add WWDT nodes
52dc7f70ec4f arm64: dts: renesas: r8a779g0: Add WWDT nodes
8c5dddeaaeb7 arm64: dts: renesas: r8a779f0: Add WWDT nodes
6d625d11625f arm64: dts: renesas: r8a779a0: Add WWDT nodes
c776bb79ad41 arm64: dts: renesas: r8a77980: Add WWDT nodes
aaa9bd7ed5ca arm64: dts: renesas: r8a77970: Add WWDT nodes
7a90b2901668 arm64: dts: renesas: condor/v3hsk: Mark SWDT as reserved
aba65d6a28dc arm64: dts: renesas: r8a77980: Add SWDT node
dcaa888deaf1 arm64: dts: renesas: r9a09g056: Add TSU nodes
0e50629424cf arm64: dts: renesas: r9a09g087: Add DMAC support
d8a8b28b928c arm64: dts: renesas: r9a09g077: Add DMAC support
9d0b0c6918ad arm64: dts: renesas: r9a09g087: Add ICU support
47563af9e68d arm64: dts: renesas: r9a09g077: Add ICU support
db8c163135cf arm64: dts: renesas: r9a09g047e57-smarc: Enable rsci{2,4,9} nodes
305334f1f6be arm64: dts: renesas: renesas-smarc2: Move aliases to board DTS
a4dad3cab31a arm64: dts: renesas: r9a09g047: Add RSCI nodes
c8bb3fb9de1b ARM: dts: renesas: r9a06g032: Add Ethernet switch interrupts
6f9e11e7930c arm64: dts: renesas: r9a09g056n48-rzv2n-evk: Add NMI wakeup button support
885176dbb7a6 arm64: dts: renesas: r9a09g056: Add RSPI nodes
e3bec0d47373 arm64: dts: renesas: r9a09g056: Add DMAC nodes
a65765461adf arm64: dts: renesas: r9a09g056: Add ICU node
5fcf901b614d arm64: dts: renesas: r9a09g047e57-smarc: Remove duplicate SW_LCD_EN
4d006a67e1c9 arm64: dts: renesas: r9a09g087: Add SPI nodes
70302041c4f0 arm64: dts: renesas: r9a09g077: Add SPI nodes
701acfab3819 arm64: dts: renesas: rzg3s-smarc: Enable PCIe
78bef1b4e046 arm64: dts: renesas: rzg3s-smarc-som: Add PCIe reference clock
2bef06d981fb arm64: dts: renesas: r9a08g045: Add PCIe node
2a9a9a7001bf arm64: dts: renesas: r9a09g056n48-rzv2n-evk: Enable USB3.0 PHY and xHCI controller
aca0b5f6febb arm64: dts: renesas: r9a09g056: Add USB3 PHY/Host nodes
e21281585f19 arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable USB3.0 PHYs and xHCI controllers
0c0335f6219a arm64: dts: renesas: r9a09g057: Add USB3 PHY/Host nodes
3c8761e141e7 arm64: dts: renesas: r9a09g056n48-rzv2n-evk: Enable DU and DSI
2f3cc92c2800 arm64: dts: renesas: r9a09g056: Add DU and DSI nodes
65481a831b2e arm64: dts: renesas: r9a09g056: Add FCPV and VSPD nodes
3d6ad94f4adb arm64: dts: renesas: r9a09g057h48-kakip: Enable SPI NOR Flash
107fa1054cc8 arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable DU and DSI
35318a57a21b arm64: dts: renesas: r9a09g057: Add DU and DSI nodes
7f864a85f515 arm64: dts: renesas: r9a09g057: Add FCPV and VSPD nodes
59b3eee55f4f arm64: dts: renesas: rzt2h-n2h-evk: Add note about SD1 1.8V modes
4f02a02eb8bf spi: dt-bindings: at91: add microchip,lan9691-spi
d9589406774c ASoC: dt-bindings: realtek,rt5575: add support for ALC5575
b6baf8f15f6d ASoC: dt-bindings: ES8389: Add property about power supply
6d6470b98cac dt-bindings: PCI: qcom,pcie-apq8084: Move APQ8084 to dedicated schema
a36eadc896b3 dt-bindings: PCI: qcom,pcie-msm8996: Move MSM8996 to dedicated schema
0a6e47a4e25e dt-bindings: PCI: qcom,pcie-apq8064: Move APQ8064 to dedicated schema
587d0c36a682 dt-bindings: PCI: qcom,pcie-ipq9574: Move IPQ9574 to dedicated schema
3637b5946a3b dt-bindings: PCI: qcom,pcie-ipq4019: Move IPQ4019 to dedicated schema
9e64f603f5e6 dt-bindings: PCI: qcom,pcie-ipq8074: Move IPQ8074 to dedicated schema
148b98a0492b dt-bindings: PCI: qcom,pcie-ipq6018: Move IPQ6018 and IPQ8074 Gen3 to dedicated schema
2ff81d7e9fde dt-bindings: PCI: qcom,pcie-ipq5018: Move IPQ5018 to dedicated schema
27d8931ad218 dt-bindings: PCI: qcom,pcie-qcs404: Move QCS404 to dedicated schema
af4a42c35454 dt-bindings: PCI: qcom,pcie-sdm845: Move SDM845 to dedicated schema
e2592855c941 dt-bindings: PCI: qcom,pcie-sdx55: Move SDX55 to dedicated schema
b3bac4176ed4 dt-bindings: PCI: qcom,pcie-sm8150: Merge SC8180x into SM8150
af0daceaaadd dt-bindings: net: mscc-miim: add microchip,lan9691-miim
76b09e6295e1 arm64: dts: qcom: x1e80100: Fix USB combo PHYs SS1 and SS2 ref clocks
db07dcaaf4e9 arm64: dts: qcom: qcs8300: Add support for camss
b9335058da90 arm64: dts: qcom: sdm630: Add FastRPC nodes to ADSP
d22a889cb06f arm64: dts: qcom: sdm630: Add missing vote clock and GDSC to lpass_smmu
8043fa6a46ed arm64: dts: qcom: sdm630/660: Add CDSP-related nodes
724d10cf16e7 arm64: dts: qcom: hamoa-iot-evk: Add backlight support for eDP panel
272a014d1ac9 arm64: dts: qcom: hamoa-iot-evk: enable PWM RG LEDs
ecb7e38a5372 arm64: dts: qcom: msm8937: add reset for display subsystem
3a7b9a40fa23 arm64: dts: qcom: msm8917: add reset for display subsystem
1f020ad9b23b Merge branch '20251117-mdss-resets-msm8917-msm8937-v2-1-a7e9bbdaac96@mainlining.org' into HEAD
31e5ff1e20df arm64: dts: qcom: sdm845-oneplus: Mark l14a regulator as boot-on
fd5ed3423780 arm64: dts: qcom: sdm845-oneplus: Don't keep panel regulator always on
34a812a5f443 arm64: dts: qcom: sdm845-oneplus: Don't mark ts supply boot-on
73bd09554cba arm64: dts: qcom: sdm630: Add missing MDSS reset
c641ab7ba076 arm64: dts: qcom: ipq5018: Remove tsens v1 fallback compatible
4ac3d77913f9 arm64: dts: qcom: qrb2210: add dts for Arduino unoq
3283b13450f4 arm64: dts: qcom: agatti: add uart2 node
aa5f3c8a2fbf dt-bindings: arm: qcom: Add arduino imola, UnoQ codename
33d0a5dd67ab dt-bindings: vendor-prefixes: Add Arduino name
3daa37ff10a1 arm64: dts: qcom: Add qcs6490-rubikpi3 board dts
fe60d92de48d dt-bindings: arm: qcom: Add Thundercomm RUBIK Pi 3
598c096bc2e7 arm64: dts: qcom: lemans-evk: Add OTG support for primary USB controller
1638c980cb23 arm64: dts: qcom: sm8750-qrd: Add SDC2 node for sm8750 qrd board
a2c70dbeda4b arm64: dts: qcom: sm8750-mtp: Add SDC2 node for sm8750 mtp board
cca4ddfad433 arm64: dts: qcom: sm8750: Add SDC2 nodes for sm8750 soc
2fe969d9aadc arm64: dts: qcom: monaco-evk: Enable AMC6821 fan controller
73f68df4dfa2 arm64: dts: qcom: sdm845-xiaomi-beryllium: Add placeholders and sort
0d455c5e6b6f arm64: dts: qcom: sdm845-xiaomi-beryllium: Adjust firmware paths
4d171519043d arm64: dts: qcom: sdm845-xiaomi-beryllium: Enable SLPI
12ba95e3d7a7 arm64: dts: qcom: sdm845-oneplus: Add framebuffer
898ab8b9df3a arm64: dts: qcom: sdm845-oneplus-enchilada: Sort nodes alphabetically
085b3f85d3ff ARM: dts: qcom: msm8974-hammerhead: Update model property
6b296b50e9a6 arm64: dts: qcom: sdm850-huawei-matebook-e-2019: Correct ipa_fw_mem for the driver to load successfully
b7f781bfd930 arm64: dts: qcom: sdm850-huawei-matebook-e-2019: Remove duplicate reserved-memroy nodes
9ba9390130ff arm64: dts: qcom: hamoa-iot-evk: Add WLAN node for Hamoa IoT EVK board
43da1a95f1e3 arm64: dts: qcom: monaco-evk: Enable TPM (ST33)
dcf9ec139e0f arm64: dts: qcom: lemans-evk: Enable TPM (ST33)
d7a186f5dfa7 arm64: dts: qcom: lemans: Enable cpufreq cooling devices
4e2a153d23fc arm64: dts: qcom: monaco: Enable cpufreq cooling devices
03cb5b83d7a0 arm64: dts: qcom: Add support for Pixel 3 and Pixel 3 XL
e13a8a086724 dt-bindings: arm: qcom: Add Pixel 3 and 3 XL
31b92cd46b99 arm64: dts: qcom: sm8250-hdk: specify ZAP firmware name
d670f3c7f759 arm64: dts: qcom: sm8150-hdk,mtp: specify ZAP firmware name
b76977a01121 arm64: dts: qcom: sdm630: fix gpu_speed_bin size
08b986f449ef arm64: dts: qcom: sdm845-shift-axolotl: Add ath10k calibration variant
a04d37747b02 arm64: dts: qcom: sdm845-xiaomi-beryllium: Add ath10k calibration variant
4a1ff78c123e arm64: dts: qcom: sdm845-oneplus: add ath10k calibration variant
21fefb193e57 arm64: dts: qcom: sm7225-fairphone-fp4: Enable CCI pull-up
1674d6b26d4b arm64: dts: qcom: sm7225-fairphone-fp4: Add camera fixed regulators
8625b9a3127d arm64: dts: qcom: sm7225-fairphone-fp4: Add camera EEPROMs
17db2e966944 arm64: dts: qcom: SM8750: Enable CPUFreq support
2244f56b4c75 dt-bindings: mailbox: qcom: Document SM8750 CPUCP mailbox controller
db27b48bf1d4 arm64: dts: qcom: msm8939-asus-z00t: add hall sensor
512dea79e7b5 arm64: dts: qcom: msm8939-asus-z00t: add battery
21c4b46736a2 arm64: dts: qcom: x1e78100-t14s: Add audio playback over DisplayPort
8fac08b9bd33 arm64: dts: qcom: hamoa: Add sound DAI prefixes for DP
ae9e038fa854 arm64: dts: qcom: x1e80100-vivobook-s15: enable IRIS
fd267437f7c1 arm64: dts: qcom: x1e80100-vivobook-s15: add HDMI port
915a658aed2b arm64: dts: qcom: x1e80100-vivobook-s15: enable ps8830 retimers
68ca50543870 arm64: dts: qcom: sm8550-hdk-rear-camera-card: remove optional property
a7acf61fb13d arm64: dts: qcom: sm8550-hdk-rear-camera-card: rename supply properties
76783dfe7293 arm64: dts: qcom: sm8550-qrd: remove data-lanes property of image sensor
edaa8fefff5a arm64: dts: qcom: sm8550-qrd: rename image sensor supply properties
0606f7440187 arm64: dts: qcom: qcs8300-ride: Enable Display Port
ea42eceb35bc arm64: dts: qcom: qcs8300: add display dt nodes for MDSS, DPU, DisplayPort and eDP PHY
156a79d201cb arm64: dts: qcom: Use lowercase hex
d3047ae03e25 arm64: dts: qcom: Use hyphen in node names
877f6c418809 arm64: dts: qcom: Minor whitespace cleanup
8b7f9308dc11 arm64: dts: qcom: Add support for X1-based Surface Pro 11
549d1069e37d dt-bindings: arm: qcom: Document Microsoft Surface Pro 11
d57f7a29a719 arm64: dts: qcom: hamoa-iot-evk: Add vbus regulator support for Type-A ports
9f9a912174f7 arm64: dts: qcom: sdm845-xiaomi-polaris: Update firmware paths
088719338dda arm64: dts: qcom: sdm845-samsung-starqltechn: Update firmware paths
59721bb424ca arm64: dts: qcom: sdm845-axolotl: Update firmware paths
562f8c32c5eb arm64: dts: qcom: sdm845-oneplus: Update firmware paths
f5da59b7943a dt-bindings: remoteproc: qcom,sm8550-pas: Drop SM8750 ADSP from if-branch
88d1d6f92d38 arm64: dts: qcom: lemans-ride: Enable Adreno 663 GPU
0527619279f9 arm64: dts: qcom: lemans-evk: Enable Adreno 663 GPU
87d58e78dc67 arm64: dts: qcom: lemans: Add GPU cooling
7ee25117a21a arm64: dts: qcom: lemans: Add gpu and gmu nodes
61bd7199186c dt-bindings: remoteproc: qcom,adsp: Allow cx-supply on qcom,sdm845-slpi-pas
5eceae41c6d8 arm64: dts: qcom: sm8650-hdk: Add support for the Rear Camera Card overlay
c0edc9174808 arm64: dts: qcom: sm8650-qrd: Enable CAMSS and Samsung S5KJN1 camera sensor
cf956196ece0 arm64: dts: qcom: sm8650: Add description of MCLK pins
c9ddee7b0511 arm64: dts: qcom: sm8650: Add CAMSS device tree node
fda8e8debc98 arm64: dts: qcom: qcs8300: Enable TSENS support for QCS8300 SoC
77c41ebbdaaa arm64: dts: qcom: x1p42100-lenovo-thinkbook-16: add hdmi bridge with enable pin
09009c00f252 arm64: dts: qcom: x1p42100-lenovo-thinkbook-16: force usb2-only mode on usb_1_ss2_dwc3
f5d0c008df3e arm64: dts: qcom: hamoa: Extend the gcc input clock list
a22ceb6b7a1a Merge branch '20260103-ufs_symbol_clk-v2-1-51828cc76236@oss.qualcomm.com' into arm64-for-6.20
474356f70da3 Merge branch '20260103-ufs_symbol_clk-v2-1-51828cc76236@oss.qualcomm.com' into clk-for-6.20
69b5452282c0 dt-bindings: clock: qcom,x1e80100-gcc: Add missing UFS mux clocks
145e0a5201cb dt-bindings: gpio: add gpio-line-mux controller
c83e70e854f7 arm64: dts: arm: Use hyphen in node names
d209535a2215 dt-bindings: dma: atmel: add microchip,lan9691-dma
0eef03ce74ad dt-bindings: dma: snps,dw-axi-dmac: Add compatible string for Agilex5
72eddc8ea8bf dt-bindings: dma: pl08x: Do not use plural form of a proper noun PrimeCell
d78249fb43f5 dt-bindings: phy: Add DP PHY compatible for Glymur
055a94568c8e dt-bindings: phy: qcom-edp: Add missing clock for X Elite
8646a829f188 dt-bindings: phy: sc8280xp-qmp-pcie: Document Glymur PCIe Gen4 2-lanes PHY
23e55d439590 dt-bindings: phy: spacemit: add K1 USB2 PHY
403485907a74 dt-bindings: iio: adc: Add adi,ad4062
7e6a040da1bd arm64: dts: freescale: Add FRDM-IMX91 basic support
684abbc2df5b dt-bindings: arm: fsl: Add FRDM-IMX91 board
5117ca7e076f arm64: dts: imx8mp: Update Data Modul i.MX8M Plus eDM SBC DT to rev.903
c73456d398d4 dt-bindings: tpm: Add st,st33tphf2ei2c
7886adca522a arm64: dts: imx8mp-evk: add camera ov5640 and related nodes
262c3a71c374 arm64: dts: colibri-imx8x: Add cma memory
3c336bc649ea arm64: dts: colibri-imx8x: Add wi-fi 32kHz clock
e55847bd6e28 arm64: dts: colibri-imx8x: Add backlight
877922c5b151 dt-bindings: PCI: socionext,uniphier-pcie: Fix interrupt controller node name
66f0c0a17712 ARM: dts: imx: imx6sl: fix lcdif compatible
79a7d6846e08 ARM: dts: imx: imx6sll-kobo-clara2e: add regulator for EPD
0f98d63aeddb ARM: dts: imx: imx6sll: fix lcdif compatible
6d6926f24d25 dt-bindings: arm: fsl: Add Apalis iMX8QP
5066e222c45a arm64: dts: freescale: Add Apalis iMX8QP
25e7a5b1860c arm64: dts: freescale: Add NXP i.MX8QP SoC dtsi
5f992de15d2e arm64: dts: imx8qm: Add CPU cluster labels
cfb57cee6955 arm64: dts: freescale: Use lowercase hex
da35f24d5e4c arm64: dts: freescale: Minor whitespace cleanup
f4720b2ac3bc arm64: dts: freescale: Use hyphen in node names
99a5eada4037 arm64: dts: imx94: add mt35xu512aba spi nor support
d4ff990102a0 arm64: dts: imx94: add xspi device node
bf18a0f083bd arm64: dts: freescale: Add i.MX952 EVK basic device tree
3546aa155a84 arm64: dts: freescale: Add initial device tree for i.MX952
d8a61a7faedd dt-bindings: arm: fsl: add i.MX952 EVK board
849d046516eb arm64: dts: imx8mm-phycore-som: Update eth phy impedance
5696083f98bf arm64: dts: freescale: add support for NXP i.MX93 FRDM
065f6fa5617f dt-bindings: arm: fsl: add i.MX93 11x11 FRDM board
1a1ea4cc09ec arm64: dts: mb-smarc-2: Add PCIe support
055375ce9c0a arm64: dts: imx8mn-tqma8mqnl: fix LDO5 power off
8fa9e7b88ea0 arm64: dts: imx8mn-tqma8mqnl: remove virtual 1.8V regulator
39f4744a17ef arm64: dts: imx8mn-tqma8mqnl: remove virtual 3.3V regulator
531f8f3ea7b6 arm64: dts: imx8mm-tqma8mqml: fix LDO5 power off
685d79e7a0a2 arm64: dts: imx8mm-tqma8mqml: remove superfluous line
1c4004034c8b arm64: dts: imx8mm-tqma8mqml: remove virtual 1.8V regulator
28b9c486bbe5 arm64: dts: imx8mm-tqma8mqml: remove virtual 3.3V regulator
e9d1570ab83e arm64: dts: imx8mp-var-som: Add support for TSC2046 touchscreen
f253aed62f06 arm64: dts: imx8mp-var-som: Add support for WM8904 audio codec
730d6ed15b37 arm64: dts: imx8mp-var-som: Add WiFi and Bluetooth support
4827360c2c62 arm64: dts: imx8mp-var-som: Move UART2 description to Symphony carrier
fd9b983b0a5c arm64: dts: imx8mp-var-som: Move PCA9534 GPIO expander to Symphony carrier
98b561dd8a84 arm64: dts: imx8mp-var-som: Move USDHC2 support to Symphony carrier
b8b15223e313 arm64: dts: imx93-11x11-evk: Use phys to replace xceiver-supply
a35f3452022a arm64: dts: imx8mp-evk: Use phys to replace xceiver-supply
c731fb199e0c arm64: dts: imx95-15x15-evk: Use phys to replace xceiver-supply
2aa50e68d77c ARM: dts: imx6qdl: Add default GIC address cells
f749887b005d dt-bindings: power: fsl,imx-gpc: Document address-cells
fc5612e37c5c arm64: dts: imx8m{m,p}-venice-gw71xx: Add Magetometer
dfa8da65b542 arm64: dts: tqma8mpql-mba8mp-ras314: Add HDMI audio output support
fc93ef416a95 arm64: dts: tqma8mpql-mba8mp-ras314: Fix HDMI CEC pad control settings
05a087be0a3b arm64: dts: tqma8mpql-mba8mp-ras314: Fix Ethernet PHY IRQ support
265db33a1dc1 arm64: dts: tqma8mpql-mba8mpxl: Configure IEEE 1588 event out signal
d6330d919482 arm64: dts: tqma8mpql-mba8mpxl: Add HDMI audio output support
bcd6a3e5924c arm64: dts: tqma8mpql-mba8mpxl: Fix HDMI CEC pad control settings
ec64595818bc arm64: dts: tqma8mpql-mba8mpxl: Fix Ethernet PHY IRQ support
c8e421dbe62c arm64: dts: tqma8mpql-mba8mpxl: Adjust copyright text format
4b50dfe18fca arm64: dts: freescale: imx8mp-toradex-smarc: enable hdmi_pai device
ae6866e9e3ce arm64: dts: freescale: imx8mp-verdin: enable hdmi_pai device
00d3bccff648 arm64: dts: freescale: imx8mp-verdin: Remove obsolete TODO comments
dcf72f23ce11 arm64: dts: freescale: imx8-apalis: Add ethernet alias
0f0ad209f6d3 arm64: dts: imx93-var-som-symphony: Enable LPSPI6 controller
7ebd76fb18f3 arm64: dts: imx93-var-som-symphony: Add USB support
f124d4b6be32 arm64: dts: imx93-var-som-symphony: Add support for ft5x06 touch controller
a390238e4c05 arm64: dts: imx93-var-som-symphony: Update gpio aliases
1d6dfe10f3dc arm64: dts: imx8mp-phyboard-pollux: add PEB-WLBT-05 expansion board
e1e04d304210 arm64: dts: imx8mp-phyboard-pollux: Enable i2c3
53a79ec7e9ba arm64: dts: imx8mp-phycore-som: add spi-nor supply vcc
16bd398bad83 arm64: dts: imx8mp-phyboard-pollux: add fan-supply
4839861015c7 arm64: dts: imx91-11x11-evk: Add audio XCVR sound card support
0476fe3182c9 arm64: dts: imx91-11x11-evk: Add PDM microphone sound card support
84984b65264f arm64: dts: imx91-11x11-evk: Add WM8962 sound card support
fd45e8bd8d31 arm64: dts: imx91-11x11-evk: Add bt-sco sound card support
c7331a3e80a7 arm64: dts: imx91-11x11-evk: Refine label and node name of WM8962
d4831b59c96d arm64: dts: imx93-9x9-qsb: add CAN support overlay file
c7db72e1efdb arm64: dts: tqmls1046a: Move BMAN/QMAN buffers to DRAM1 area
e65fd05850b8 arm64: dts: cix: Use lowercase hex
3b0a1a86c1b0 arm64: dts: imx93-14x14-evk: Add audio XCVR sound card
f878699bd535 arm64: dts: imx93-14x14-evk: Add bt-sco sound card support
4ca9daec40bf arm64: dts: imx8ulp: add sim lpav node
8a7d32705460 arm64: dts: imx943-evk: add flexcan support
b8352dd72243 arm64: dts: imx8mm: Add label to thermal-zones
e28f3872d30f arm64: dts: add support for NXP i.MX8MP FRDM board
f4799a46389e arm64: dts: tqma8xxs-mb-smarc-2: replace 0 with IMX_LPCG_CLK_0 for lpcg indices
3a900199eb02 arm64: dts: tqma8xxs: replace 0 with IMX_LPCG_CLK_0 for lpcg indices
1519c352d6e3 arm64: dts: imx8qxp-mek: Add sensors under i2c1 bus
c5b9031ad104 arm64: dts: mba8xx: replace 0 with IMX_LPCG_CLK_0 for lpcg indices
93ef7b95e9bc dt-bindings: arm: fsl: Add i.MX8MP FRDM board
25160b69b379 dt-bindings: misc: qcom,fastrpc: Add compatible for Kaanapali
45a9a8710de2 Merge 6.19-rc3 into tty-next
43a9632e8426 Merge 6.19-rc3 into usb-next
d5e356ff7786 dt-bindings: arm: fsl: add TQ-Systems boards MBLS1028A and MBLS1028A-IND
094056360f84 arm64: dts: ls1028a: Add mbls1028a and mbls1028a-ind devicetrees
5269188d0ca0 arm64: dts: imx8mp libra: add peb-av-10 expansion board overlay
bad56036e188 arm64: dts: imx8mp libra: add and update display overlays
b4142775992e arm64: dts: imx943-evk: add ENETC, EMDIO and PTP Timer support
40fb558610ef arm64: dts: imx94: add basic NETC related nodes
269ec450562e arm64: dts: imx8dxl-ss-ddr: Add DB (system interconnects) pmu support for i.MX8DXL
e627f343ceb1 arm64: dts: imx8qm: add ddr perf device node
07248d41718a arm64: dts: exynos: gs101: add OTP node
81d5997ca8d3 dt-bindings: nvmem: add google,gs101-otp
c694f553fb48 dt-bindings: iio: dac: adding support for Microchip MCP47FEB02
baa9b8795d02 Merge tag 'drm-misc-next-2025-12-19' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
2dddaeb4ed59 ARM: dts: lpc3250-phy3250: replace deprecated at25 properties with new ones
3f6a920fb331 ARM: dts: lpc3250-phy3250: rename nodename at@0 to eeprom@0
8d3a3fc961d4 ARM: dts: lpc3250-ea3250: add key- prefix for gpio-keys
d7397e8437a3 ARM: dts: lpc32xx: remove usb bus and elevate all children nodes
5eb1ee981504 dt-bindings: clock: gcc-msm8917: Add missing MDSS reset
7f914b108e76 dt-bindings: phy: qcom,snps-eusb2-repeater: Add squelch param update
eea24368accb dt-bindings: phy: samsung,usb3-drd-phy: add power-domains
bcad7586c788 dt-bindings: phy: samsung,ufs-phy: add power-domains
597ea40a76ae riscv: dts: sophgo: cv180x: fix USB dwc2 FIFO sizes
82844859906d riscv: dts: spacemit: PCIe and PHY-related updates
4528d80729b6 riscv: dts: spacemit: Add a PCIe regulator
b1f43a24fb20 dt-bindings: phy: qcom,snps-eusb2-repeater: Add SMB2370 compatible
5dcfc273efb3 dt-bindings: phy: qcom-m31-eusb2: Add Glymur compatible
060d5204040d dt-bindings: phy: qcom,qmp-usb: Add Glymur USB UNI PHY compatible
84efb1e46493 dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Add Glymur compatible
811070d10e20 dt-bindings: phy: lynx-28g: permit lane OF PHY providers
e716226b983b dt-bindings: phy: samsung,usb3-drd-phy: add ExynosAutov920 combo ssphy
b07e2e09fd23 dt-bindings: phy: samsung,usb3-drd-phy: add ExynosAutov920 combo hsphy
083f077a2b17 dt-bindings: phy: samsung,usb3-drd-phy: add ExynosAutov920 HS phy compatible
a9d698d40a9c dt-bindings: phy: Add Apple Type-C PHY
faf30921471d dt-bindings: phy: Add QMP USB3+DP PHY for QCS615
1a150e32de4a dt-bindings: phy: ti,tcan104x-can: Document TI TCAN1046
65b515887eae dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Add Kaanapali compatible
f6d21ccdb27e dt-bindings: phy: spacemit: Introduce PCIe PHY
b7bd9e297bcd dt-bindings: phy: spacemit: Add SpacemiT PCIe/combo PHY
640dd142b842 dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195
41ed45d831cc dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC
b7fffd6e649e dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195
5a6e565b06a3 dt-bindings: phy: renesas,rzg3e-usb3-phy: Add RZ/V2H(P) and RZ/V2N support
d568354c566c dt-bindings: PCI: Add ASPEED PCIe RC support
5f02e7e1f2a1 arm64: dts: allwinner: t527: orangepi-4a: Enable SPI-NOR flash
c9e70c9d70e7 arm64: dts: allwinner: sun55i: Add SPI controllers
b12e9e62106b dt-bindings: usb: dwc3: Add Google Tensor G5 DWC3
018c8aea1016 dt-bindings: PCI: pci-imx6: Add external reference clock input
3d35ea1e2ed3 dt-bindings: PCI: dwc: Add external reference clock input
704b4787797c dt-bindings: dma: Update ADMA bindings for tegra264
a528e85719be dt-bindings: dma: qcom,gpi: Document GPI DMA engine for Kaanapali and Glymur SoCs
878e36b07992 dt-bindings: dma: mediatek,uart-dma: Support all SoC generations
f45d6fde6cbd dt-bindings: dma: mediatek,uart-dma: Deprecate mediatek,dma-33bits
8f55e05a74a1 dt-bindings: dma: mediatek,uart-dma: Allow MT6795 single compatible
2eb7fe5323ab dt-bindings: serial: 8250: add SpacemiT K3 UART compatible
4fe4f5ca30b4 dt-bindings: soundwire: qcom: Add SoundWire v2.2.0 compatible
fbc706fb5108 arm64: dts: rockchip: Add support for CM5 IO carrier
062bfe1397e9 arm64: dts: rockchip: Add rk3588 based Radxa CM5
f95977b0c89a dt-bindings: arm: rockchip: Add Radxa CM5 IO board
b800c6b8a524 arm64: dts: rockchip: Fix Bluetooth on the RockPro64 board
351b6d4535a3 arm64: dts: rockchip: Correctly describe the ethernet phy on rk3368-lion
e005a6a6a483 arm64: dts: rockchip: add mdio subnode to gmac on rk3368
fea9c338acb6 arm64: dts: rockchip: add gmac reset property to rk3368
8b02f4f94875 arm64: dts: rockchip: add dma-coherent for pcie and gmac of RK3576
8565a1b32b70 arm64: dts: rockchip: Add EEPROMs for Radxa rk35xx boards
2316ac21f151 arm64: dts: rockchip: Add EEPROMs for Radxa ROCK 4 boards
1a397cae6d40 arm64: dts: rockchip: Add PCIe clkreq stuff for RK3588 EVB1
0580a73b73b5 arm64: dts: rockchip: enable saradc for ArmSoM Sige5
2283d2ef65a2 arm64: dts: rockchip: fix hp-det pin for ArmSoM Sige5
de6ba2504f41 arm64: dts: rockchip: remove rtc regulator for ArmSoM Sige5
14f6e356e5b6 arm64: dts: exynos: gs101: add samsung,sysreg property to CMU nodes
ce643d4bfeb7 dt-bindings: clock: google,gs101-clock: add samsung,sysreg property as required
b4fd7c4c07a9 arm64: dts: apm: Drop "dma" device_type
63e0adf9b981 arm64: dts: apm: Add "reg" to "syscon-reboot" and "syscon-poweroff"
daad4f62b2b8 arm64: dts: apm: Use recommended i2c node names
52f4e21d542a arm64: dts: apm/shadowcat: More clock clean-ups
c8dd6502b734 ARM: dts: vexpress/v2m-rs1: Use documented arm,vexpress,config-bus child node names
b616a8da152b arm64: dts: cavium: Drop thunder2
63d6abf9c58b arm64: dts: cavium: thunder-88xx: Add missing PL011 "uartclk"
56c2fd6d1110 arm64: dts: toshiba: Use recommended node names
9e34a4ebc868 arm64: dts: sprd: Use recommended node names
65c0c408742a arm64: dts: lg: Use recommended simple-bus node name
5bf46036b630 Add Richtek RT8092 support
07fbf0c472b7 dt-bindings: trivial-devices: add MEMSIC 3-axis magnetometer
09798c6c1e79 dt-bindings: iio: adc: Add TI ADS1018/ADS1118
50d0d702a0e7 arm64: dts: exynosautov920: add CMU_MFD clock DT nodes
64be690333c9 dt-bindings: clock: exynosautov920: add MFD clock definitions
26b539517189 dt-bindings: interconnect: mt8183-emi: Add support for MT8196 EMI
87946bb208d2 dt-bindings: iio: pressure: add honeywell,abp2030pa
b0874cc0cb01 dt-bindings: adc: ad9467: add support for ad9211
ae9b78f3b0f6 dt-bindings: iio: adc: Allow interrupts property for AST2600
38d4132cff68 dt-bindings: iio: amplifiers: add adl8113
732bb830616b dt-bindings: iio: frequency: adf4377: add clk provider
0c7fa39fd1d9 dt-bindings: iio: adc: Add the NXP SAR ADC for s32g2/3 platforms
7feadcfcf024 bindings: iio: adc: Add bindings for TI ADS131M0x ADCs
2a35d3e2047c riscv: dts: starfive: Append JH-7110 SoC compatible to VisionFive 2 Lite eMMC board
7d4b65c97dc7 riscv: dts: starfive: Append JH-7110 SoC compatible to VisionFive 2 Lite board
ff4ff1c946da dt-bindings: riscv: starfive: Append JH-7110 SoC compatible to VisionFive 2 Lite board
0f73f72f1047 riscv: dts: microchip: convert clock and reset to use syscon
37c111e32113 riscv: dts: microchip: fix mailbox description
beaed6606d0d riscv: dts: spacemit: Define the P1 PMIC regulators for Milk-V Jupiter
ec6196767c82 riscv: dts: spacemit: Define fixed regulators for Milk-V Jupiter
ee403823f721 riscv: dts: spacemit: Enable i2c8 adapter for Milk-V Jupiter
15c7d2ad67b7 dt-bindings: arm: add CTCU device for monaco
8ffd14a98368 regulator: dt-bindings: rt5739: Add compatible for rt8092
fbe3420b01ce dt-bindings: crypto: qcom,prng: document x1e80100
dd856b778007 dt-bindings: clock: thead,th1520-clk-ap: Add ID for C910 bus clock
4b6c9d1fcf45 dt-bindings: memory: SDRAM channel: standardise node name
88fb21f0ef05 dt-bindings: memory: add DDR4 channel compatible
9c419da2b200 dt-bindings: memory: factorise LPDDR channel binding into SDRAM channel
6df6c46201b7 dt-bindings: memory: introduce DDR4
0382002144ff dt-bindings: memory: factorise LPDDR props into SDRAM props
db9dced71118 arm64: dts: qcom: kaanapali: Add base QRD board
f7ca89348e89 arm64: dts: qcom: kaanapali: Add base MTP board
164f7fd40b0a arm64: dts: qcom: Introduce Kaanapali SoC
60c72b6368ad dt-bindings: gpio-mmio: Add compatible string for opencores,gpio
f41679bfdea2 dt-binding: Update oss email address for Coresight documents
68c9fde54b6f dt-bindings: gpio: gpio-pca95xx: Add tcal6408 and tcal6416
f4011c42cddc spi: atcspi200: Add support for Andes ATCSPI200 SPI
af22e45e02bd Add support for NXP XSPI
334b71418b40 dt-bindings: sram: Document qcom,kaanapali-imem and its child node
93a34c934bcb dt-bindings: interrupt-controller: qcom,pdc: Document Kaanapali Power Domain Controller
9c6317967505 arm64: dts: qcom: glymur: Add header file for IPCC physical client IDs
3dbd10723da9 arm64: dts: qcom: kaanapali: Add header file for IPCC physical client IDs
359dc79529e1 dt-bindings: arm: qcom: Document Kaanapali SoC and its reference boards
1c3b4ebde5d9 dt-bindings: kbuild: Support single binding targets
0bb6369246cd dt-bindings: serial: renesas,rsci: Document RZ/G3E support
cc984eb3ac47 dt-bindings: usb: ehci/ohci: Allow "dma-coherent"
fda6a3af2717 dt-bindings: usb: aspeed,usb-vhub: Add ast2700 support
77288092704a spi: dt-bindings: Add support for ATCSPI200 SPI controller
850fc833f4de spi: dt-bindings: nxp,imx94-xspi: Document imx94 xspi
e428cef4e510 dt-bindings: eeprom: at24: Add compatible for Giantec GT24P64A
939e665c98f4 dt-bindings: eeprom: at24: Add compatible for Belling BL24C04A/BL24C16F
b2ddd1407bd8 arm64: dts: nuvoton: npcm845: Minor whitespace cleanup
369ea92a0ba8 ARM: dts: aspeed: bletchley: Fix ADC vref property names
6c97c266b7e2 ARM: dts: aspeed: bletchley: Remove unused i2c13 property
d5bef6c517be ARM: dts: aspeed: bletchley: Remove unused pca9539 properties
503ba8c17489 ARM: dts: aspeed: bletchley: Fix SPI GPIO property names
b0fc72d0fd4f ARM: dts: aspeed: bletchley: Use generic node names
69f6a0439d1c arm64: dts: qcom: Add dts for Medion SPRCHRGD 14 S1
902f98ec4c7e dt-bindings: arm: qcom: Add Medion SPRCHRGD device
7002cccbca31 dt-bindings: vendor-prefixes: Add Medion AG
5db94f229c4d dt-bindings: arm: qcom: Add TUXEDO Computers device
a4260e9a499e dt-bindings: vendor-prefixes: Add prefix for TUXEDO Computers GmbH
de01f35c5a1c arm64: dts: qcom: x1e80100: Add crypto engine
b446b4ec2c90 dt-bindings: cache: qcom,llcc: Document Glymur LLCC block
742958230ddd dt-bindings: dma: rz-dmac: Document RZ/V2N SoC support
0a67d1f7abec arm64: dts: apple: t8103,t60xx,t8112: Add SMC RTC node
175e8d07552c arm64: dts: ti: am62p-verdin: Fix SD regulator startup delay
b69aee46fbd4 arm64: dts: ti: k3-am69-aquila-clover: Fix USB-C Sink PDO
a06a6c103830 arm64: dts: ti: k3-am69-aquila-dev: Fix USB-C Sink PDO
4c6ed1fbc802 arm64: dts: ti: k3-am62(a)-phycore-som: Add bootphase tag to phy_gmii_sel
3643b0cdb050 arm64: dts: ti: k3-am62a-phycore-som: Add bootphase tag to cpsw_mac_syscon
360af8e29a09 arm64: dts: ti: k3-am62-phycore-som: Add bootphase tag to cpsw_mac_syscon
5cf13d2361a0 dt-bindings: display: simple: Add HannStar HSD156JUW2
9de19890d586 dt-bindings: panel: sw43408: adjust to reflect the DDIC and panel used
3530205b3d2d dt-bindings: display: panel: document Samsung LTL106HL02 MIPI DSI panel
c4eeea27c179 dt-bindings: panel: s6e3fc2x01: Sort and remove unnecessary properties
9545482937e1 dt-bindings: display: bridge: renesas,dsi: Document RZ/V2H(P) and RZ/V2N
acafbf556c58 arm64: dts: exynos: gs101: remove syscon compatible from pmu node
dd8272ff3d82 dt-bindings: soc: samsung: exynos-pmu: remove syscon for google,gs101-pmu
1687936de261 arm64: dts: exynos: gs101: add TRNG node
287bd1d9dc3d dt-bindings: rng: add google,gs101-trng compatible
df87acc301ed arm64: dts: toshiba: tmpv7708: Align node names with DT bindings
3f0637678adc dt-bindings: input: touchscreen: sitronix,st1232: Add Sitronix ST1624
71b378318155 arm64: dts: renesas: r9a09g087: Add ICU support
4d00bb62d078 arm64: dts: renesas: r9a09g077: Add ICU support
e93a0c58d942 dt-bindings: interrupt-controller: Document RZ/{T2H,N2H} ICU
19045e6732f7 dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/V2N SoC
ece61d4846f5 dt-bindings: display: sitronix,st7920: Add DT schema
32d3ab0dc516 Revert "arm64: zynqmp: Add an OP-TEE node to the device tree"
f13b85a2d2b1 dt-bindings: samsung: exynos-pmu: Add compatible for ARTPEC-9 SoC
50cf13d13467 dt-bindings: crypto: Document aspeed,ahbc property for Aspeed ACRY
1f24cf665d53 dt-bindings: bus: aspeed: Require syscon for AST2600 AHB controller
ee4930d07cd8 spi: dt-bindings: st,stm32-spi: add 'power-domains' property
7087598fc395 dt-bindings: display: rockchip: dw-hdmi: Add compatible for RK3368 HDMI
611d4c06a52b dt-bindings: display: sitronix,st7571: add example for SPI
1de14357fd3e arm64: dts: rockchip: Add accelerometer sensor to Pinephone Pro
7a509b4cc03a arm64: dts: rockchip: Enable SPDIF audio on Rock 5 ITX
42cd507a2b60 arm64: dts: rockchip: Add overlay for the PCIe slot on RK3576 EVB1
a1d0aa733c95 ARM: dts: rockchip: Add vdec node for RK3288
8118230e468a Merge tag 'renesas-r9a09g077-dt-binding-defs-tag5' into renesas-clk-for-v6.20
8fca00ce3ded arm64: dts: renesas: r9a09g047e57-smarc: Enable USB3HOST
8417721829a8 arm64: dts: renesas: r9a09g047: Add USB3 PHY/Host nodes
69eed72c5fb4 arm64: dts: morello: Add CMN PMU
7b95e57087a3 dt-bindings: clock: add video clock indices for Amlogic S4 SoC
31830fbb34cd dt-bindings: clock: add Amlogic T7 peripherals clock controller
ef0b78ba80e2 dt-bindings: clock: add Amlogic T7 SCMI clock controller
72e85902bc50 dt-bindings: clock: add Amlogic T7 PLL clock controller
5398a2b25b76 arm64: dts: xilinx: fix zynqmp opp-table-cpu
20e8d5272d35 dt-bindings: watchdog: xlnx,versal-wwdt: Add optional power-domains property
3a2f82d65ea4 arm64: dts: xilinx: add soc-specific spi compatibles for zynqmp/versal-net
85688947778b dt-bindings: remoteproc: Fix dead link to Keystone DSP GPIO binding
ec50d9b41883 spi: dt-bindings: renesas,rzv2h-rspi: document optional support for DMA
0a1bf0f89da3 regulator: dt-bindings: Add MAX77675 regulator
58a97f574841 ARM: dts: aspeed: g6: Drop clocks property from arm,armv7-timer
b58c36147430 ARM: dts: aspeed: ast2600-evb: Tidy up A0 work-around for UART5
a6437be91962 ARM: dts: aspeed: g6: Drop unspecified aspeed,ast2600-udma node
1c058c935dba ARM: dts: aspeed: Drop syscon compatible from EDAC in g6 dtsi
0eba8928dd9b ARM: dts: aspeed: Use specified wp-inverted property for AST2600 EVB
e58b7c23f328 ARM: dts: aspeed: Remove sdhci-drive-type property from AST2600 EVB
d977cfd7e272 ARM: dts: aspeed: Add NVIDIA MSX4 HPM
7af30bbc499b dt-bindings: arm: aspeed: Add NVIDIA MSX4 board
c7ad566648eb ARM: dts: aspeed: clemente: move hdd_led to its own gpio-leds group
1ab4552ceea7 ARM: dts: aspeed: clemente: add gpio line name to io expander
9dd33e615ac1 ARM: dts: aspeed: santabarbara: Enable ipmb device for OCP debug card
0243b6d087e0 ARM: dts: aspeed: santabarbara: Add swb IO expander and gpio line names
5392ed835618 ARM: dts: aspeed: clemente: Add EEPROMs for boot and data drive FRUs
7cae5ebf72c1 ARM: dts: aspeed: harma: add fanboard presence sgpio
e1000bea7203 ARM: dts: aspeed: bletchley: remove WDTRST1 assertion from wdt1
17d42cb3766f Merge tag 'ib-mfd-input-power-regulator-v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into next
7f5b334c61b7 Merge tag 'v6.18' into next
69c26d595c11 dt-bindings: clock: renesas,r9a09g077/87: Add XSPI0/1 IDs
7327e6ab013e arm64: dts: broadcom: bcm2712: Add watchdog DT node
2bdb3ae4c5fb arm64: dts: broadcom: bcm2712: Enable RNG

git-subtree-dir: dts/upstream
git-subtree-split: 0f7b6a4fa8c5f6f5aa14c31aa7918e3f9d70688c

1288 files changed:
Bindings/Makefile
Bindings/arm/altera.yaml
Bindings/arm/amlogic.yaml
Bindings/arm/arm,coresight-dummy-sink.yaml
Bindings/arm/arm,coresight-dummy-source.yaml
Bindings/arm/arm,vexpress-juno.yaml
Bindings/arm/aspeed/aspeed.yaml
Bindings/arm/atmel-at91.yaml
Bindings/arm/bcm/brcm,vulcan-soc.yaml [deleted file]
Bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
Bindings/arm/cix.yaml
Bindings/arm/fsl.yaml
Bindings/arm/intel,socfpga.yaml [deleted file]
Bindings/arm/mediatek.yaml
Bindings/arm/mediatek/mediatek,audsys.yaml
Bindings/arm/omap/prm-inst.txt [deleted file]
Bindings/arm/qcom,coresight-ctcu.yaml
Bindings/arm/qcom,coresight-itnoc.yaml [new file with mode: 0644]
Bindings/arm/qcom,coresight-remote-etm.yaml
Bindings/arm/qcom,coresight-tnoc.yaml
Bindings/arm/qcom,coresight-tpda.yaml
Bindings/arm/qcom,coresight-tpdm.yaml
Bindings/arm/qcom.yaml
Bindings/arm/realtek.yaml
Bindings/arm/rockchip.yaml
Bindings/arm/tegra/nvidia,tegra186-pmc.yaml
Bindings/arm/ti/ti,omap-prm-inst.yaml [new file with mode: 0644]
Bindings/arm/vexpress-config.yaml
Bindings/ata/ahci-platform.yaml
Bindings/ata/sata-common.yaml
Bindings/auxdisplay/holtek,ht16k33.yaml
Bindings/bus/aspeed,ast2600-ahbc.yaml
Bindings/bus/fsl,spba-bus.yaml
Bindings/bus/st,stm32mp25-rifsc.yaml
Bindings/cache/qcom,llcc.yaml
Bindings/clock/amlogic,t7-peripherals-clkc.yaml [new file with mode: 0644]
Bindings/clock/amlogic,t7-pll-clkc.yaml [new file with mode: 0644]
Bindings/clock/google,gs101-clock.yaml
Bindings/clock/mediatek,mt7622-pciesys.yaml
Bindings/clock/microchip,mpfs-ccc.yaml
Bindings/clock/microchip,mpfs-clkcfg.yaml
Bindings/clock/qcom,gcc-msm8953.yaml
Bindings/clock/qcom,kaanapali-gxclkctl.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm8450-camcc.yaml
Bindings/clock/qcom,sm8450-gpucc.yaml
Bindings/clock/qcom,sm8450-videocc.yaml
Bindings/clock/qcom,sm8550-dispcc.yaml
Bindings/clock/qcom,x1e80100-gcc.yaml
Bindings/clock/renesas,9series.yaml
Bindings/clock/samsung,exynosautov920-clock.yaml
Bindings/clock/spacemit,k1-pll.yaml
Bindings/connector/pcie-m2-m-connector.yaml [new file with mode: 0644]
Bindings/connector/usb-connector.yaml
Bindings/cpufreq/cpufreq-qcom-hw.yaml
Bindings/crypto/aspeed,ast2600-acry.yaml
Bindings/crypto/atmel,at91sam9g46-aes.yaml
Bindings/crypto/atmel,at91sam9g46-sha.yaml
Bindings/crypto/inside-secure,safexcel.yaml
Bindings/crypto/qcom,inline-crypto-engine.yaml
Bindings/crypto/qcom,prng.yaml
Bindings/crypto/xlnx,zynqmp-aes.yaml
Bindings/display/bridge/fsl,ldb.yaml
Bindings/display/bridge/lontium,lt8912b.yaml
Bindings/display/bridge/lvds-codec.yaml
Bindings/display/bridge/nxp,tda998x.yaml
Bindings/display/bridge/renesas,dsi.yaml
Bindings/display/bridge/simple-bridge.yaml
Bindings/display/bridge/toshiba,tc358767.yaml
Bindings/display/google,goldfish-fb.txt [deleted file]
Bindings/display/google,goldfish-fb.yaml [new file with mode: 0644]
Bindings/display/msm/dp-controller.yaml
Bindings/display/msm/dsi-controller-main.yaml
Bindings/display/msm/dsi-phy-7nm.yaml
Bindings/display/msm/gpu.yaml
Bindings/display/msm/qcom,adreno-rgmu.yaml [new file with mode: 0644]
Bindings/display/msm/qcom,glymur-mdss.yaml
Bindings/display/msm/qcom,kaanapali-mdss.yaml [new file with mode: 0644]
Bindings/display/msm/qcom,qcm2290-mdss.yaml
Bindings/display/msm/qcom,qcs8300-mdss.yaml
Bindings/display/msm/qcom,sm8650-dpu.yaml
Bindings/display/msm/qcom,sm8750-mdss.yaml
Bindings/display/panel/jadard,jd9365da-h3.yaml
Bindings/display/panel/lg,sw43408.yaml
Bindings/display/panel/panel-simple-dsi.yaml
Bindings/display/panel/panel-simple.yaml
Bindings/display/panel/samsung,s6e3fc2x01.yaml
Bindings/display/panel/sitronix,st7789v.yaml
Bindings/display/rockchip/rockchip,dw-hdmi.yaml
Bindings/display/rockchip/rockchip,dw-mipi-dsi.yaml
Bindings/display/rockchip/rockchip,rk3588-dw-hdmi-qp.yaml
Bindings/display/rockchip/rockchip-vop.yaml
Bindings/display/sitronix,st7571.yaml
Bindings/display/sitronix,st7920.yaml [new file with mode: 0644]
Bindings/display/tegra/nvidia,tegra114-mipi.yaml
Bindings/display/tegra/nvidia,tegra20-vi.yaml
Bindings/display/tegra/nvidia,tegra20-vip.yaml
Bindings/dma/arm-pl08x.yaml
Bindings/dma/atmel,sama5d4-dma.yaml
Bindings/dma/mediatek,uart-dma.yaml
Bindings/dma/nvidia,tegra210-adma.yaml
Bindings/dma/qcom,gpi.yaml
Bindings/dma/renesas,rz-dmac.yaml
Bindings/dma/snps,dw-axi-dmac.yaml
Bindings/dsp/mediatek,mt8186-dsp.yaml
Bindings/eeprom/at24.yaml
Bindings/eeprom/at25.yaml
Bindings/embedded-controller/lenovo,yoga-c630-ec.yaml
Bindings/firmware/cznic,turris-mox-rwtm.txt [deleted file]
Bindings/firmware/cznic,turris-mox-rwtm.yaml [new file with mode: 0644]
Bindings/firmware/fsl,scu.yaml
Bindings/firmware/google,gs101-acpm-ipc.yaml
Bindings/firmware/xilinx/xlnx,zynqmp-firmware.yaml
Bindings/goldfish/audio.txt [deleted file]
Bindings/goldfish/battery.txt [deleted file]
Bindings/goldfish/events.txt [deleted file]
Bindings/goldfish/pipe.txt [deleted file]
Bindings/goldfish/tty.txt [deleted file]
Bindings/gpio/aspeed,sgpio.yaml
Bindings/gpio/gpio-line-mux.yaml [new file with mode: 0644]
Bindings/gpio/gpio-mmio.yaml
Bindings/gpio/gpio-pca95xx.yaml
Bindings/gpio/microchip,mpfs-gpio.yaml
Bindings/gpio/nvidia,tegra186-gpio.yaml
Bindings/gpio/spacemit,k1-gpio.yaml
Bindings/gpu/arm,mali-valhall-csf.yaml
Bindings/gpu/img,powervr-rogue.yaml
Bindings/hwmon/aspeed,ast2400-pwm-tacho.yaml [new file with mode: 0644]
Bindings/hwmon/aspeed-pwm-tacho.txt [deleted file]
Bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml [new file with mode: 0644]
Bindings/hwmon/kontron,sl28cpld-hwmon.yaml
Bindings/hwmon/microchip,sparx5-temp.yaml
Bindings/hwmon/sensirion,shtc1.yaml
Bindings/hwmon/ti,tmp108.yaml
Bindings/i2c/atmel,at91sam-i2c.yaml
Bindings/i2c/i2c-mt65xx.yaml
Bindings/i2c/qcom,i2c-cci.yaml
Bindings/i2c/silabs,cp2112.yaml [new file with mode: 0644]
Bindings/i2c/snps,designware-i2c.yaml
Bindings/i2c/spacemit,k1-i2c.yaml
Bindings/i2c/st,stm32-i2c.yaml
Bindings/iio/adc/adi,ad4030.yaml
Bindings/iio/adc/adi,ad4062.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,ad4134.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,ad4695.yaml
Bindings/iio/adc/adi,ad7768-1.yaml
Bindings/iio/adc/adi,ad9467.yaml
Bindings/iio/adc/aspeed,ast2600-adc.yaml
Bindings/iio/adc/nxp,s32g2-sar-adc.yaml [new file with mode: 0644]
Bindings/iio/adc/ti,ads1018.yaml [new file with mode: 0644]
Bindings/iio/adc/ti,ads131m02.yaml [new file with mode: 0644]
Bindings/iio/amplifiers/adi,adl8113.yaml [new file with mode: 0644]
Bindings/iio/dac/adi,max22007.yaml [new file with mode: 0644]
Bindings/iio/dac/microchip,mcp47feb02.yaml [new file with mode: 0644]
Bindings/iio/frequency/adi,adf4377.yaml
Bindings/iio/pressure/honeywell,abp2030pa.yaml [new file with mode: 0644]
Bindings/iio/proximity/rfdigital,rfd77402.yaml [new file with mode: 0644]
Bindings/input/focaltech,ft8112.yaml [new file with mode: 0644]
Bindings/input/google,goldfish-events-keypad.yaml [new file with mode: 0644]
Bindings/input/qcom,pm8941-pwrkey.yaml
Bindings/input/syna,rmi4.yaml
Bindings/input/touchscreen/edt-ft5x06.yaml
Bindings/input/touchscreen/goodix.yaml
Bindings/input/touchscreen/ilitek,ili210x.yaml [new file with mode: 0644]
Bindings/input/touchscreen/imagis,ist3038c.yaml
Bindings/input/touchscreen/sitronix,st1232.yaml
Bindings/input/touchscreen/ti,tsc2007.yaml
Bindings/input/touchscreen/trivial-touch.yaml
Bindings/interconnect/mediatek,mt8183-emi.yaml
Bindings/interconnect/qcom,msm8998-bwmon.yaml
Bindings/interconnect/qcom,qcs615-rpmh.yaml
Bindings/interrupt-controller/fsl,qe-ports-ic.yaml [new file with mode: 0644]
Bindings/interrupt-controller/fsl,tzic.yaml
Bindings/interrupt-controller/loongson,eiointc.yaml
Bindings/interrupt-controller/loongson,liointc.yaml
Bindings/interrupt-controller/loongson,pch-pic.yaml
Bindings/interrupt-controller/qcom,pdc.yaml
Bindings/interrupt-controller/renesas,r9a09g077-icu.yaml [new file with mode: 0644]
Bindings/interrupt-controller/renesas,rzv2h-icu.yaml
Bindings/interrupt-controller/riscv,aplic.yaml
Bindings/interrupt-controller/riscv,imsics.yaml
Bindings/interrupt-controller/sifive,plic-1.0.0.yaml
Bindings/interrupt-controller/ti,sci-intr.yaml
Bindings/iommu/arm,smmu-v3.yaml
Bindings/iommu/nvidia,tegra264-cmdqv.yaml [new file with mode: 0644]
Bindings/leds/ams,as3668.yaml [new file with mode: 0644]
Bindings/leds/backlight/qcom-wled.yaml
Bindings/leds/iei,wt61p803-puzzle-leds.yaml [new file with mode: 0644]
Bindings/leds/leds-class-multicolor.yaml
Bindings/leds/leds-is31fl32xx.txt
Bindings/leds/leds-lm3697.txt [deleted file]
Bindings/leds/leds-lp5860.yaml [new file with mode: 0644]
Bindings/leds/leds-qcom-lpg.yaml
Bindings/leds/qcom,spmi-flash-led.yaml
Bindings/leds/rohm,bd71828-leds.yaml
Bindings/leds/ti,lm3697.yaml [new file with mode: 0644]
Bindings/leds/ti,lp5812.yaml [new file with mode: 0644]
Bindings/mailbox/mediatek,mt8196-vcp-mbox.yaml [new file with mode: 0644]
Bindings/mailbox/microchip,mpfs-mailbox.yaml
Bindings/mailbox/qcom,cpucp-mbox.yaml
Bindings/mailbox/qcom-ipcc.yaml
Bindings/mailbox/sprd-mailbox.yaml
Bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
Bindings/media/i2c/adi,adv7180.yaml
Bindings/media/i2c/onnn,mt9m114.yaml
Bindings/media/i2c/ovti,os05b10.yaml [new file with mode: 0644]
Bindings/media/i2c/ovti,ov5647.yaml
Bindings/media/i2c/samsung,s5k3m5.yaml [new file with mode: 0644]
Bindings/media/i2c/samsung,s5kjn1.yaml [new file with mode: 0644]
Bindings/media/i2c/toshiba,et8ek8.txt [deleted file]
Bindings/media/i2c/toshiba,et8ek8.yaml [new file with mode: 0644]
Bindings/media/nxp,imx8-jpeg.yaml
Bindings/media/qcom,qcm2290-venus.yaml
Bindings/media/qcom,qcs8300-camss.yaml
Bindings/media/qcom,sa8775p-camss.yaml
Bindings/media/qcom,sc7280-camss.yaml
Bindings/media/qcom,sc8280xp-camss.yaml
Bindings/media/qcom,sdm670-camss.yaml
Bindings/media/qcom,sdm845-camss.yaml
Bindings/media/qcom,sm6150-camss.yaml [new file with mode: 0644]
Bindings/media/qcom,sm8250-camss.yaml
Bindings/media/qcom,sm8550-camss.yaml
Bindings/media/qcom,x1e80100-camss.yaml
Bindings/media/renesas,fcp.yaml
Bindings/media/rockchip,rk3568-mipi-csi2.yaml [new file with mode: 0644]
Bindings/media/samsung,exynos5250-gsc.yaml
Bindings/media/st,stm32-dcmipp.yaml
Bindings/media/st,stm32mp25-csi.yaml
Bindings/media/ti,omap3isp.txt [deleted file]
Bindings/media/ti,omap3isp.yaml [new file with mode: 0644]
Bindings/media/ti,vip.yaml [new file with mode: 0644]
Bindings/memory-controllers/ddr/jedec,ddr4.yaml [new file with mode: 0644]
Bindings/memory-controllers/ddr/jedec,lpddr-props.yaml [deleted file]
Bindings/memory-controllers/ddr/jedec,lpddr2.yaml
Bindings/memory-controllers/ddr/jedec,lpddr3.yaml
Bindings/memory-controllers/ddr/jedec,lpddr4.yaml
Bindings/memory-controllers/ddr/jedec,lpddr5.yaml
Bindings/memory-controllers/ddr/jedec,sdram-channel.yaml [moved from Bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml with 76% similarity]
Bindings/memory-controllers/ddr/jedec,sdram-props.yaml [new file with mode: 0644]
Bindings/memory-controllers/nvidia,tegra186-mc.yaml
Bindings/mfd/aspeed,ast2x00-scu.yaml
Bindings/mfd/atmel,hlcdc.yaml
Bindings/mfd/atmel,sama5d2-flexcom.yaml
Bindings/mfd/bitmain,bm1880-sctrl.yaml [new file with mode: 0644]
Bindings/mfd/da9055.txt
Bindings/mfd/iei,wt61p803-puzzle.yaml [new file with mode: 0644]
Bindings/mfd/mediatek,mt6397.yaml
Bindings/mfd/mediatek,mt8195-scpsys.yaml
Bindings/mfd/nxp,lpc3220-scb.yaml [new file with mode: 0644]
Bindings/mfd/qcom,spmi-pmic.yaml
Bindings/mfd/qnap,ts433-mcu.yaml
Bindings/mfd/realtek,rtd1xxx.yaml [new file with mode: 0644]
Bindings/mfd/rockchip,rk801.yaml [new file with mode: 0644]
Bindings/mfd/rohm,bd72720-pmic.yaml [new file with mode: 0644]
Bindings/mfd/samsung,s2mpg10-pmic.yaml [new file with mode: 0644]
Bindings/mfd/samsung,s2mpg11-pmic.yaml [new file with mode: 0644]
Bindings/mfd/samsung,s2mps11.yaml
Bindings/mfd/syscon.yaml
Bindings/misc/google,android-pipe.yaml [new file with mode: 0644]
Bindings/misc/qcom,fastrpc.yaml
Bindings/mmc/mmc-card.yaml
Bindings/mtd/brcm,brcmnand.yaml
Bindings/mtd/cdns,hp-nfc.yaml
Bindings/mtd/microchip,mchp23k256.txt [deleted file]
Bindings/mtd/microchip,mchp23k256.yaml [new file with mode: 0644]
Bindings/mtd/mtd.yaml
Bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml [new file with mode: 0644]
Bindings/mtd/mxic-nand.txt [deleted file]
Bindings/mtd/nvidia,tegra20-nand.yaml [new file with mode: 0644]
Bindings/mtd/nvidia-tegra20-nand.txt [deleted file]
Bindings/mtd/partitions/arm,arm-firmware-suite.yaml
Bindings/mtd/partitions/binman.yaml [deleted file]
Bindings/mtd/partitions/brcm,bcm4908-partitions.yaml
Bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml
Bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt [deleted file]
Bindings/mtd/partitions/brcm,trx.txt [deleted file]
Bindings/mtd/partitions/brcm,trx.yaml [new file with mode: 0644]
Bindings/mtd/partitions/fixed-partitions.yaml
Bindings/mtd/partitions/linksys,ns-partitions.yaml
Bindings/mtd/partitions/partition.yaml
Bindings/mtd/partitions/partitions.yaml [deleted file]
Bindings/mtd/partitions/redboot-fis.yaml
Bindings/mtd/partitions/seama.yaml [deleted file]
Bindings/mtd/partitions/simple-partition.yaml [new file with mode: 0644]
Bindings/mtd/partitions/tplink,safeloader-partitions.yaml
Bindings/mtd/partitions/u-boot.yaml
Bindings/mtd/spear_smi.txt [deleted file]
Bindings/mtd/st,spear600-smi.yaml [new file with mode: 0644]
Bindings/mtd/st,spi-fsm.yaml [new file with mode: 0644]
Bindings/mtd/st-fsm.txt [deleted file]
Bindings/mtd/ti,davinci-nand.yaml
Bindings/mtd/ti,gpmc-onenand.yaml
Bindings/net/adi,adin.yaml
Bindings/net/airoha,en7581-npu.yaml
Bindings/net/airoha,en8811h.yaml
Bindings/net/bluetooth/qcom,bluetooth-common.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,qca2066-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,qca6390-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,qca9377-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,wcn3950-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,wcn3990-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,wcn6750-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,wcn6855-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qcom,wcn7850-bt.yaml [new file with mode: 0644]
Bindings/net/bluetooth/qualcomm-bluetooth.yaml [deleted file]
Bindings/net/brcm,amac.yaml
Bindings/net/can/nxp,sja1000.yaml
Bindings/net/can/renesas,rcar-canfd.yaml
Bindings/net/dsa/lantiq,gswip.yaml
Bindings/net/dsa/marvell,mv88e6xxx.yaml
Bindings/net/dsa/maxlinear,mxl862xx.yaml [new file with mode: 0644]
Bindings/net/dsa/microchip,ksz.yaml
Bindings/net/ethernet-connector.yaml [new file with mode: 0644]
Bindings/net/ethernet-phy.yaml
Bindings/net/micrel,gigabit.yaml [new file with mode: 0644]
Bindings/net/micrel-ksz90x1.txt [deleted file]
Bindings/net/micrel.txt [deleted file]
Bindings/net/micrel.yaml [new file with mode: 0644]
Bindings/net/microchip,sparx5-switch.yaml
Bindings/net/mscc,miim.yaml
Bindings/net/nvidia,tegra234-mgbe.yaml
Bindings/net/nxp,s32-dwmac.yaml
Bindings/net/pcs/mediatek,sgmiisys.yaml
Bindings/net/pcs/renesas,rzn1-miic.yaml
Bindings/net/renesas,rzv2h-gbeth.yaml
Bindings/net/rockchip-dwmac.yaml
Bindings/net/snps,dwmac.yaml
Bindings/net/ti,dp83822.yaml
Bindings/net/wireless/qcom,ath11k-pci.yaml
Bindings/net/wireless/qcom,ath11k.yaml
Bindings/nvmem/google,gs101-otp.yaml [new file with mode: 0644]
Bindings/nvmem/mediatek,efuse.yaml
Bindings/nvmem/qcom,qfprom.yaml
Bindings/pci/aspeed,ast2600-pcie.yaml [new file with mode: 0644]
Bindings/pci/fsl,imx6q-pcie.yaml
Bindings/pci/loongson.yaml
Bindings/pci/mbvl,gpex40-pcie.yaml
Bindings/pci/mediatek-pcie-gen3.yaml
Bindings/pci/qcom,pcie-apq8064.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-apq8084.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-ipq4019.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-ipq5018.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-ipq6018.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-ipq8074.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-ipq9574.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-msm8996.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-qcs404.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-sc8180x.yaml [deleted file]
Bindings/pci/qcom,pcie-sdm845.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-sdx55.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-sm8150.yaml
Bindings/pci/qcom,pcie-x1e80100.yaml
Bindings/pci/qcom,pcie.yaml [deleted file]
Bindings/pci/qcom,sa8255p-pcie-ep.yaml [new file with mode: 0644]
Bindings/pci/snps,dw-pcie-common.yaml
Bindings/pci/socionext,uniphier-pcie.yaml
Bindings/phy/apple,atcphy.yaml [new file with mode: 0644]
Bindings/phy/fsl,lynx-28g.yaml
Bindings/phy/google,lga-usb-phy.yaml [new file with mode: 0644]
Bindings/phy/mediatek,hdmi-phy.yaml
Bindings/phy/phy-common-props.yaml [new file with mode: 0644]
Bindings/phy/qcom,edp-phy.yaml
Bindings/phy/qcom,m31-eusb2-phy.yaml
Bindings/phy/qcom,qcs615-qmp-usb3dp-phy.yaml [new file with mode: 0644]
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-repeater.yaml
Bindings/phy/renesas,rzg3e-usb3-phy.yaml
Bindings/phy/renesas,usb2-phy.yaml
Bindings/phy/samsung,ufs-phy.yaml
Bindings/phy/samsung,usb3-drd-phy.yaml
Bindings/phy/spacemit,k1-combo-phy.yaml [new file with mode: 0644]
Bindings/phy/spacemit,k1-pcie-phy.yaml [new file with mode: 0644]
Bindings/phy/spacemit,usb2-phy.yaml [new file with mode: 0644]
Bindings/phy/ti,control-phy-otghs.yaml [new file with mode: 0644]
Bindings/phy/ti,phy-usb3.yaml [new file with mode: 0644]
Bindings/phy/ti,tcan104x-can.yaml
Bindings/phy/ti-phy.txt [deleted file]
Bindings/phy/transmit-amplitude.yaml [deleted file]
Bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml
Bindings/pinctrl/intel,pinctrl-keembay.yaml
Bindings/pinctrl/microchip,mpfs-pinctrl-mssio.yaml [new file with mode: 0644]
Bindings/pinctrl/microchip,sparx5-sgpio.yaml
Bindings/pinctrl/mscc,ocelot-pinctrl.yaml
Bindings/pinctrl/qcom,glymur-tlmm.yaml
Bindings/pinctrl/renesas,r9a09g077-pinctrl.yaml
Bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
Bindings/pinctrl/samsung,pinctrl.yaml
Bindings/pinctrl/spacemit,k1-pinctrl.yaml
Bindings/power/fsl,imx-gpc.yaml
Bindings/power/mediatek,power-controller.yaml
Bindings/power/reset/syscon-poweroff.yaml
Bindings/power/reset/syscon-reboot.yaml
Bindings/power/supply/battery.yaml
Bindings/power/supply/google,goldfish-battery.yaml [new file with mode: 0644]
Bindings/powerpc/fsl/fsl,mpc83xx.yaml [new file with mode: 0644]
Bindings/ptp/amazon,vmclock.yaml [new file with mode: 0644]
Bindings/pwm/nxp,lpc3220-pwm.yaml
Bindings/regulator/adi,max77675.yaml [new file with mode: 0644]
Bindings/regulator/mediatek,mt6331-regulator.yaml
Bindings/regulator/mt6359-regulator.yaml
Bindings/regulator/qcom,wcn3990-pmu.yaml [new file with mode: 0644]
Bindings/regulator/raspberrypi,7inch-touchscreen-panel-regulator.yaml
Bindings/regulator/regulator.yaml
Bindings/regulator/richtek,rt5739.yaml
Bindings/regulator/rohm,bd72720-regulator.yaml [new file with mode: 0644]
Bindings/regulator/samsung,s2mpg10-regulator.yaml [new file with mode: 0644]
Bindings/regulator/samsung,s2mpg11-regulator.yaml [new file with mode: 0644]
Bindings/regulator/ti,tps65185.yaml [new file with mode: 0644]
Bindings/remoteproc/fsl,imx-rproc.yaml
Bindings/remoteproc/mtk,scp.yaml
Bindings/remoteproc/qcom,adsp.yaml
Bindings/remoteproc/qcom,pas-common.yaml
Bindings/remoteproc/qcom,sm8550-pas.yaml
Bindings/remoteproc/ti,hsm-m4fss.yaml [new file with mode: 0644]
Bindings/remoteproc/ti,keystone-rproc.txt
Bindings/riscv/cpus.yaml
Bindings/riscv/extensions.yaml
Bindings/riscv/spacemit.yaml
Bindings/riscv/starfive.yaml
Bindings/rng/samsung,exynos5250-trng.yaml
Bindings/rtc/cpcap-rtc.txt [deleted file]
Bindings/rtc/loongson,rtc.yaml
Bindings/rtc/motorola,cpcap-rtc.yaml [new file with mode: 0644]
Bindings/rtc/renesas,rz-rtca3.yaml
Bindings/serial/8250.yaml
Bindings/serial/google,goldfish-tty.yaml [new file with mode: 0644]
Bindings/serial/renesas,rsci.yaml
Bindings/serial/renesas,scif.yaml
Bindings/soc/altera/altr,sys-mgr.yaml
Bindings/soc/mediatek/mediatek,mt8183-dvfsrc.yaml
Bindings/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml
Bindings/soc/renesas/renesas,rzn1-gpioirqmux.yaml [new file with mode: 0644]
Bindings/soc/samsung/exynos-pmu.yaml
Bindings/soc/samsung/samsung,exynos-sysreg.yaml
Bindings/soc/spacemit/spacemit,k1-syscon.yaml
Bindings/sound/asahi-kasei,ak4458.yaml
Bindings/sound/asahi-kasei,ak5558.yaml
Bindings/sound/awinic,aw87390.yaml
Bindings/sound/awinic,aw88395.yaml
Bindings/sound/davinci-mcasp-audio.yaml
Bindings/sound/everest,es8389.yaml
Bindings/sound/fsl,audmix.yaml
Bindings/sound/fsl,imx-asrc.yaml
Bindings/sound/fsl,mqs.yaml
Bindings/sound/fsl,rpmsg.yaml
Bindings/sound/fsl,sai.yaml
Bindings/sound/google,goldfish-audio.yaml [new file with mode: 0644]
Bindings/sound/mt8192-afe-pcm.yaml
Bindings/sound/nvidia,tegra-audio-graph-card.yaml
Bindings/sound/realtek,rt5575.yaml [new file with mode: 0644]
Bindings/sound/realtek,rt5651.yaml [new file with mode: 0644]
Bindings/sound/renesas,rz-ssi.yaml
Bindings/sound/richtek,rtq9128.yaml
Bindings/sound/rockchip-spdif.yaml
Bindings/sound/rt5651.txt [deleted file]
Bindings/sound/sophgo,cv1800b-codecs.yaml [new file with mode: 0644]
Bindings/sound/sophgo,cv1800b-i2s.yaml [new file with mode: 0644]
Bindings/sound/st,stm32-sai.yaml
Bindings/sound/tas2552.txt [deleted file]
Bindings/sound/ti,tas2552.yaml [new file with mode: 0644]
Bindings/sound/ti,tlv320adcx140.yaml
Bindings/soundwire/qcom,soundwire.yaml
Bindings/spi/adi,axi-spi-engine.yaml
Bindings/spi/allwinner,sun4i-a10-spi.yaml
Bindings/spi/allwinner,sun6i-a31-spi.yaml
Bindings/spi/andestech,ae350-spi.yaml [new file with mode: 0644]
Bindings/spi/atmel,at91rm9200-spi.yaml
Bindings/spi/axiado,ax3000-spi.yaml [new file with mode: 0644]
Bindings/spi/cdns,qspi-nor.yaml
Bindings/spi/faraday,ftssp010.yaml [new file with mode: 0644]
Bindings/spi/nvidia,tegra210-quad.yaml
Bindings/spi/nxp,imx94-xspi.yaml [new file with mode: 0644]
Bindings/spi/nxp,lpc3220-spi.yaml
Bindings/spi/renesas,rzv2h-rspi.yaml
Bindings/spi/snps,dw-apb-ssi.yaml
Bindings/spi/spi-peripheral-props.yaml
Bindings/spi/spi-xilinx.yaml
Bindings/spi/st,stm32-spi.yaml
Bindings/spmi/mediatek,mt8196-spmi.yaml [new file with mode: 0644]
Bindings/spmi/mtk,spmi-mtk-pmif.yaml
Bindings/spmi/qcom,glymur-spmi-pmic-arb.yaml [new file with mode: 0644]
Bindings/spmi/qcom,spmi-pmic-arb-common.yaml [new file with mode: 0644]
Bindings/spmi/qcom,spmi-pmic-arb.yaml
Bindings/spmi/qcom,x1e80100-spmi-pmic-arb.yaml
Bindings/sram/sram.yaml
Bindings/submitting-patches.rst
Bindings/thermal/mediatek,lvts-thermal.yaml
Bindings/thermal/renesas,r9a09g047-tsu.yaml
Bindings/timer/sifive,clint.yaml
Bindings/tpm/tcg,tpm-tis-i2c.yaml
Bindings/trivial-devices.yaml
Bindings/ufs/qcom,sa8255p-ufshc.yaml [new file with mode: 0644]
Bindings/usb/aspeed,usb-vhub.yaml
Bindings/usb/generic-ehci.yaml
Bindings/usb/generic-ohci.yaml
Bindings/usb/google,lga-dwc3.yaml [new file with mode: 0644]
Bindings/usb/ite,it5205.yaml
Bindings/usb/microchip,lan9691-dwc3.yaml [new file with mode: 0644]
Bindings/usb/renesas,usbhs.yaml
Bindings/usb/socionext,uniphier-dwc3.yaml [new file with mode: 0644]
Bindings/usb/wch,ch334.yaml [new file with mode: 0644]
Bindings/vendor-prefixes.yaml
Bindings/watchdog/mpc8xxx-wdt.txt [deleted file]
Bindings/watchdog/mpc8xxx-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/qcom-wdt.yaml
Bindings/watchdog/samsung-wdt.yaml
Bindings/watchdog/xlnx,versal-wwdt.yaml
Bindings/writing-schema.rst
include/dt-bindings/clock/amlogic,s4-peripherals-clkc.h
include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h [new file with mode: 0644]
include/dt-bindings/clock/amlogic,t7-pll-clkc.h [new file with mode: 0644]
include/dt-bindings/clock/amlogic,t7-scmi.h [new file with mode: 0644]
include/dt-bindings/clock/aspeed-clock.h
include/dt-bindings/clock/google,gs101.h
include/dt-bindings/clock/oxsemi,ox810se.h [deleted file]
include/dt-bindings/clock/oxsemi,ox820.h [deleted file]
include/dt-bindings/clock/qcom,gcc-msm8917.h
include/dt-bindings/clock/qcom,kaanapali-cambistmclkcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,kaanapali-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,kaanapali-dispcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,kaanapali-gpucc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,kaanapali-videocc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,mss-sc7180.h [deleted file]
include/dt-bindings/clock/qcom,sm8750-cambistmclkcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8750-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,x1e80100-gcc.h
include/dt-bindings/clock/renesas,r9a09g077-cpg-mssr.h
include/dt-bindings/clock/renesas,r9a09g087-cpg-mssr.h
include/dt-bindings/clock/samsung,exynosautov920.h
include/dt-bindings/clock/spacemit,k3-clocks.h [new file with mode: 0644]
include/dt-bindings/clock/thead,th1520-clk-ap.h
include/dt-bindings/clock/xlnx-versal-clk.h [deleted file]
include/dt-bindings/clock/xlnx-zynqmp-clk.h [deleted file]
include/dt-bindings/dma/jz4775-dma.h [deleted file]
include/dt-bindings/dma/x2000-dma.h [deleted file]
include/dt-bindings/gce/mt6779-gce.h [deleted file]
include/dt-bindings/gpio/nvidia,tegra264-gpio.h [new file with mode: 0644]
include/dt-bindings/input/linux-event-codes.h
include/dt-bindings/interconnect/mediatek,mt8196.h [new file with mode: 0644]
include/dt-bindings/memory/mt6779-larb-port.h [deleted file]
include/dt-bindings/mux/ti-serdes.h [deleted file]
include/dt-bindings/phy/phy.h
include/dt-bindings/pinctrl/mt6397-pinfunc.h [deleted file]
include/dt-bindings/regulator/samsung,s2mpg10-regulator.h [new file with mode: 0644]
include/dt-bindings/reset/bcm6318-reset.h [deleted file]
include/dt-bindings/reset/imx8ulp-pcc-reset.h [deleted file]
include/dt-bindings/reset/oxsemi,ox810se.h [deleted file]
include/dt-bindings/reset/oxsemi,ox820.h [deleted file]
include/dt-bindings/reset/spacemit,k3-resets.h [new file with mode: 0644]
include/dt-bindings/sound/audio-jack-events.h [deleted file]
include/dt-bindings/thermal/mediatek,lvts-thermal.h
src/arm/allwinner/sun4i-a10-dserve-dsrv9703c.dts
src/arm/allwinner/sun4i-a10-pov-protab2-ips9.dts
src/arm/allwinner/sun5i-a13-utoo-p66.dts
src/arm/allwinner/sun6i-a31-hummingbird.dts
src/arm/allwinner/sun6i-a31s-primo81.dts
src/arm/allwinner/sun8i-t113s.dtsi
src/arm/amlogic/meson.dtsi
src/arm/arm/vexpress-v2m-rs1.dtsi
src/arm/aspeed/aspeed-ast2600-evb.dts
src/arm/aspeed/aspeed-bmc-asrock-altrad8.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-facebook-anacapa.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-bmc-facebook-bletchley.dts
src/arm/aspeed/aspeed-bmc-facebook-clemente.dts
src/arm/aspeed/aspeed-bmc-facebook-harma.dts
src/arm/aspeed/aspeed-bmc-facebook-santabarbara.dts
src/arm/aspeed/aspeed-bmc-ibm-everest.dts
src/arm/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts [new file with mode: 0644]
src/arm/aspeed/aspeed-g6.dtsi
src/arm/aspeed/ibm-power10-dual.dtsi
src/arm/aspeed/ibm-power10-quad.dtsi
src/arm/broadcom/bcm2711.dtsi
src/arm/intel/socfpga/socfpga.dtsi
src/arm/intel/socfpga/socfpga_arria10.dtsi
src/arm/microchip/lan966x-pcb8385.dts [new file with mode: 0644]
src/arm/microchip/sam9x7.dtsi
src/arm/microchip/sama7d65.dtsi
src/arm/microchip/usb_a9g20-dab-mmx.dtsi [deleted file]
src/arm/nuvoton/nuvoton-common-npcm7xx.dtsi
src/arm/nvidia/tegra20.dtsi
src/arm/nvidia/tegra30.dtsi
src/arm/nxp/imx/e60k02.dtsi
src/arm/nxp/imx/imx50-kobo-aura.dts
src/arm/nxp/imx/imx6qdl.dtsi
src/arm/nxp/imx/imx6sl-tolino-shine2hd.dts
src/arm/nxp/imx/imx6sl-tolino-shine3.dts
src/arm/nxp/imx/imx6sl.dtsi
src/arm/nxp/imx/imx6sll-kobo-clara2e-b.dts
src/arm/nxp/imx/imx6sll-kobo-clarahd.dts
src/arm/nxp/imx/imx6sll.dtsi
src/arm/nxp/imx/imx6sx.dtsi
src/arm/nxp/lpc/lpc3250-ea3250.dts
src/arm/nxp/lpc/lpc3250-phy3250.dts
src/arm/nxp/lpc/lpc32xx.dtsi
src/arm/qcom/qcom-apq8074-dragonboard.dts
src/arm/qcom/qcom-msm8226.dtsi
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-samsung-hlte.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-htc-m8.dts
src/arm/qcom/qcom-msm8974pro-oneplus-bacon.dts
src/arm/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
src/arm/renesas/gr-peach-audiocamerashield.dtsi [deleted file]
src/arm/renesas/r8a77xx-aa121td01-panel.dtsi [deleted file]
src/arm/renesas/r9a06g032.dtsi
src/arm/rockchip/rk3036.dtsi
src/arm/rockchip/rk3288.dtsi
src/arm/samsung/s3c6400.dtsi [deleted file]
src/arm/st/spear320s.dtsi [deleted file]
src/arm/st/stm32429i-eval.dts
src/arm/st/stm32746g-eval.dts
src/arm/st/stm32f429-disco.dts
src/arm/st/stm32f469-disco.dts
src/arm/st/stm32f746-disco.dts
src/arm/st/stm32f769-disco.dts
src/arm/st/stm32h743i-disco.dts
src/arm/st/stm32h743i-eval.dts
src/arm/st/stm32h747i-disco.dts
src/arm/st/stm32mp135f-dk.dts
src/arm/st/stm32mp157c-ed1.dts
src/arm/st/stm32mp157c-ev1.dts
src/arm/st/stm32mp15xx-dkx.dtsi
src/arm/st/stm32mp15xxab-pinctrl.dtsi [deleted file]
src/arm/ti/omap/am335x-baltos-leds.dtsi
src/arm/ti/omap/am335x-base0033.dts [deleted file]
src/arm/ti/omap/am3703.dtsi [deleted file]
src/arm/ti/omap/am3715.dtsi [deleted file]
src/arm/ti/omap/dra7-l4.dtsi
src/arm/ti/omap/omap2430.dtsi
src/arm/ti/omap/omap3.dtsi
src/arm/ti/omap/omap3430es1-clocks.dtsi [deleted file]
src/arm/ti/omap/omap4-epson-embt2ws.dts
src/arm/ti/omap/omap4-l4-abe.dtsi
src/arm/ti/omap/omap4-l4.dtsi
src/arm/ti/omap/omap5-l4.dtsi
src/arm/tps65910.dtsi
src/arm64/airoha/en7581-evb.dts
src/arm64/allwinner/sun50i-a100.dtsi
src/arm64/allwinner/sun55i-a523.dtsi
src/arm64/allwinner/sun55i-t527-orangepi-4a.dts
src/arm64/altera/socfpga_stratix10.dtsi
src/arm64/altera/socfpga_stratix10_socdk.dts
src/arm64/altera/socfpga_stratix10_socdk_nand.dts
src/arm64/amlogic/amlogic-c3.dtsi
src/arm64/amlogic/amlogic-t7-a311d2-an400.dts
src/arm64/amlogic/meson-a1.dtsi
src/arm64/amlogic/meson-axg-s400.dts
src/arm64/amlogic/meson-axg.dtsi
src/arm64/amlogic/meson-g12-common.dtsi
src/arm64/amlogic/meson-g12a-fbx8am.dts
src/arm64/amlogic/meson-g12a-radxa-zero.dts
src/arm64/amlogic/meson-g12a-sei510.dts
src/arm64/amlogic/meson-g12a-u200.dts
src/arm64/amlogic/meson-g12a-x96-max.dts
src/arm64/amlogic/meson-g12a.dtsi
src/arm64/amlogic/meson-g12b-a311d-libretech-cc.dts
src/arm64/amlogic/meson-g12b-a311d.dtsi
src/arm64/amlogic/meson-g12b-bananapi-cm4-cm4io.dts
src/arm64/amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dts
src/arm64/amlogic/meson-g12b-bananapi-cm4.dtsi
src/arm64/amlogic/meson-g12b-bananapi.dtsi
src/arm64/amlogic/meson-g12b-dreambox.dtsi
src/arm64/amlogic/meson-g12b-gsking-x.dts
src/arm64/amlogic/meson-g12b-gtking-pro.dts
src/arm64/amlogic/meson-g12b-gtking.dts
src/arm64/amlogic/meson-g12b-khadas-vim3.dtsi
src/arm64/amlogic/meson-g12b-odroid-go-ultra.dts
src/arm64/amlogic/meson-g12b-odroid-n2.dtsi
src/arm64/amlogic/meson-g12b-odroid-n2l.dts
src/arm64/amlogic/meson-g12b-odroid.dtsi
src/arm64/amlogic/meson-g12b-radxa-zero2.dts
src/arm64/amlogic/meson-g12b-s922x.dtsi
src/arm64/amlogic/meson-g12b-ugoos-am6.dts
src/arm64/amlogic/meson-g12b-w400.dtsi
src/arm64/amlogic/meson-g12b.dtsi
src/arm64/amlogic/meson-gx-libretech-pc.dtsi
src/arm64/amlogic/meson-gx-p23x-q20x.dtsi
src/arm64/amlogic/meson-gxbb-kii-pro.dts
src/arm64/amlogic/meson-gxbb-nanopi-k2.dts
src/arm64/amlogic/meson-gxbb-nexbox-a95x.dts
src/arm64/amlogic/meson-gxbb-odroidc2.dts
src/arm64/amlogic/meson-gxbb-p200.dts
src/arm64/amlogic/meson-gxbb-p201.dts
src/arm64/amlogic/meson-gxbb-vega-s95.dtsi
src/arm64/amlogic/meson-gxbb-wetek-hub.dts
src/arm64/amlogic/meson-gxbb-wetek-play2.dts
src/arm64/amlogic/meson-gxbb.dtsi
src/arm64/amlogic/meson-gxl-s805x-libretech-ac.dts
src/arm64/amlogic/meson-gxl-s805x-p241.dts
src/arm64/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts
src/arm64/amlogic/meson-gxl-s905x-khadas-vim.dts
src/arm64/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
src/arm64/amlogic/meson-gxl-s905x-libretech-cc.dts
src/arm64/amlogic/meson-gxl-s905x-p212.dts
src/arm64/amlogic/meson-gxl-s905x-vero4k.dts
src/arm64/amlogic/meson-gxl.dtsi
src/arm64/amlogic/meson-gxm-khadas-vim2.dts
src/arm64/amlogic/meson-gxm-mecool-kiii-pro.dts
src/arm64/amlogic/meson-gxm-nexbox-a1.dts
src/arm64/amlogic/meson-gxm-rbox-pro.dts
src/arm64/amlogic/meson-khadas-vim3.dtsi
src/arm64/amlogic/meson-libretech-cottonwood.dtsi
src/arm64/amlogic/meson-s4-s805x2-aq222.dts
src/arm64/amlogic/meson-s4-s905y4-khadas-vim1s.dts [new file with mode: 0644]
src/arm64/amlogic/meson-s4.dtsi
src/arm64/amlogic/meson-sm1-a95xf3-air-gbit.dts
src/arm64/amlogic/meson-sm1-a95xf3-air.dts
src/arm64/amlogic/meson-sm1-ac2xx.dtsi
src/arm64/amlogic/meson-sm1-bananapi-m2-pro.dts
src/arm64/amlogic/meson-sm1-bananapi-m5.dts
src/arm64/amlogic/meson-sm1-bananapi.dtsi
src/arm64/amlogic/meson-sm1-h96-max.dts
src/arm64/amlogic/meson-sm1-khadas-vim3l.dts
src/arm64/amlogic/meson-sm1-odroid-hc4.dts
src/arm64/amlogic/meson-sm1-odroid.dtsi
src/arm64/amlogic/meson-sm1-s905d3-libretech-cc.dts
src/arm64/amlogic/meson-sm1-sei610.dts
src/arm64/amlogic/meson-sm1-x96-air-gbit.dts
src/arm64/amlogic/meson-sm1-x96-air.dts
src/arm64/amlogic/meson-sm1.dtsi
src/arm64/apm/apm-merlin.dts
src/arm64/apm/apm-mustang.dts
src/arm64/apm/apm-shadowcat.dtsi
src/arm64/apm/apm-storm.dtsi
src/arm64/apple/s8001-j98a-j99a.dtsi
src/arm64/apple/s8001.dtsi
src/arm64/apple/t6001.dtsi
src/arm64/apple/t6002-j375d.dts
src/arm64/apple/t6002.dtsi
src/arm64/apple/t600x-die0.dtsi
src/arm64/apple/t600x-dieX.dtsi
src/arm64/apple/t600x-j314-j316.dtsi
src/arm64/apple/t600x-j375.dtsi
src/arm64/apple/t6022-j180d.dts
src/arm64/apple/t6022-j475d.dts
src/arm64/apple/t6022-jxxxd.dtsi
src/arm64/apple/t602x-die0.dtsi
src/arm64/apple/t602x-dieX.dtsi
src/arm64/apple/t8103-j274.dts
src/arm64/apple/t8103-j293.dts
src/arm64/apple/t8103-j313.dts
src/arm64/apple/t8103-j456.dts
src/arm64/apple/t8103-j457.dts
src/arm64/apple/t8103-jxxx.dtsi
src/arm64/apple/t8103-pmgr.dtsi
src/arm64/apple/t8103.dtsi
src/arm64/apple/t8112-j413.dts
src/arm64/apple/t8112-j415.dts
src/arm64/apple/t8112-j473.dts
src/arm64/apple/t8112-j493.dts
src/arm64/apple/t8112-jxxx.dtsi
src/arm64/apple/t8112.dtsi
src/arm64/arm/morello-fvp.dts
src/arm64/arm/morello-sdp.dts
src/arm64/broadcom/bcm2712.dtsi
src/arm64/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
src/arm64/broadcom/northstar2/ns2-clock.dtsi [deleted file]
src/arm64/broadcom/northstar2/ns2-svk.dts
src/arm64/broadcom/northstar2/ns2-xmc.dts
src/arm64/broadcom/northstar2/ns2.dtsi
src/arm64/broadcom/stingray/bcm958742-base.dtsi
src/arm64/broadcom/stingray/stingray-clock.dtsi [deleted file]
src/arm64/broadcom/stingray/stingray-fs4.dtsi
src/arm64/broadcom/stingray/stingray-pcie.dtsi
src/arm64/broadcom/stingray/stingray-pinctrl.dtsi
src/arm64/broadcom/stingray/stingray-usb.dtsi
src/arm64/broadcom/stingray/stingray.dtsi
src/arm64/cavium/thunder-88xx.dtsi
src/arm64/cavium/thunder2-99xx.dts [deleted file]
src/arm64/cavium/thunder2-99xx.dtsi [deleted file]
src/arm64/cix/sky1-xcp.dts [new file with mode: 0644]
src/arm64/cix/sky1.dtsi
src/arm64/exynos/exynosautov920.dtsi
src/arm64/exynos/google/gs101.dtsi
src/arm64/freescale/fsl-ls1012a.dtsi
src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a-ind.dts [new file with mode: 0644]
src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a.dts [new file with mode: 0644]
src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a.dtsi [new file with mode: 0644]
src/arm64/freescale/fsl-ls1028a-tqmls1028a.dtsi [new file with mode: 0644]
src/arm64/freescale/fsl-ls1046a-tqmls1046a.dtsi
src/arm64/freescale/fsl-ls1046a.dtsi
src/arm64/freescale/fsl-ls1088a-ten64.dts
src/arm64/freescale/fsl-ls1088a.dtsi
src/arm64/freescale/fsl-ls208xa.dtsi
src/arm64/freescale/fsl-lx2160a.dtsi
src/arm64/freescale/imx8-apalis-v1.1.dtsi
src/arm64/freescale/imx8-ss-ddr.dtsi
src/arm64/freescale/imx8dxl-ss-ddr.dtsi
src/arm64/freescale/imx8dxl.dtsi
src/arm64/freescale/imx8mm-phycore-rpmsg.dtso
src/arm64/freescale/imx8mm-phycore-som.dtsi
src/arm64/freescale/imx8mm-tqma8mqml-mba8mx.dts
src/arm64/freescale/imx8mm-tqma8mqml.dtsi
src/arm64/freescale/imx8mm-venice-gw71xx.dtsi
src/arm64/freescale/imx8mm.dtsi
src/arm64/freescale/imx8mn-tqma8mqnl-mba8mx.dts
src/arm64/freescale/imx8mn-tqma8mqnl.dtsi
src/arm64/freescale/imx8mn-vhip4-evalboard-common.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-ksz8794-common.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-v1-overlay-ksz8794.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-v1-overlay-ksz9031.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-v1.dts [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-v2-overlay-adin1300.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-v2-overlay-ksz8794.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mn-vhip4-evalboard-v2.dts [new file with mode: 0644]
src/arm64/freescale/imx8mn.dtsi
src/arm64/freescale/imx8mp-data-modul-edm-sbc.dts
src/arm64/freescale/imx8mp-edm-g-wb.dts
src/arm64/freescale/imx8mp-evk.dts
src/arm64/freescale/imx8mp-frdm.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-hummingboard-pulse-common.dtsi
src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-etml1010g3dra.dtso
src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-ph128800t006-zhc01.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mp-libra-rdk-fpsc.dts
src/arm64/freescale/imx8mp-phyboard-pollux-peb-wlbt-05.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mp-phyboard-pollux-rdk.dts
src/arm64/freescale/imx8mp-phycore-som.dtsi
src/arm64/freescale/imx8mp-sr-som.dtsi
src/arm64/freescale/imx8mp-toradex-smarc-dev.dts
src/arm64/freescale/imx8mp-toradex-smarc.dtsi
src/arm64/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
src/arm64/freescale/imx8mp-var-som-symphony.dts
src/arm64/freescale/imx8mp-var-som.dtsi
src/arm64/freescale/imx8mp-venice-gw71xx.dtsi
src/arm64/freescale/imx8mp-verdin-dahlia.dtsi
src/arm64/freescale/imx8mp-verdin-dev.dtsi
src/arm64/freescale/imx8mp-verdin-mallow.dtsi
src/arm64/freescale/imx8mp-verdin-yavia.dtsi
src/arm64/freescale/imx8mp-verdin.dtsi
src/arm64/freescale/imx8mq-librem5-devkit.dts
src/arm64/freescale/imx8mq-librem5-r3.dts
src/arm64/freescale/imx8mq-librem5.dtsi
src/arm64/freescale/imx8mq.dtsi
src/arm64/freescale/imx8qm-mek.dts
src/arm64/freescale/imx8qm-ss-ddr.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qm.dtsi
src/arm64/freescale/imx8qp-apalis-v1.1-eval-v1.2.dts [new file with mode: 0644]
src/arm64/freescale/imx8qp-apalis-v1.1-eval.dts [new file with mode: 0644]
src/arm64/freescale/imx8qp-apalis-v1.1-ixora-v1.1.dts [new file with mode: 0644]
src/arm64/freescale/imx8qp-apalis-v1.1-ixora-v1.2.dts [new file with mode: 0644]
src/arm64/freescale/imx8qp-apalis-v1.1.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qp.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qxp-mek.dts
src/arm64/freescale/imx8ulp.dtsi
src/arm64/freescale/imx8x-colibri.dtsi
src/arm64/freescale/imx91-11x11-evk.dts
src/arm64/freescale/imx91-11x11-frdm.dts [new file with mode: 0644]
src/arm64/freescale/imx91-tqma9131.dtsi
src/arm64/freescale/imx91.dtsi
src/arm64/freescale/imx93-11x11-evk.dts
src/arm64/freescale/imx93-11x11-frdm.dts [new file with mode: 0644]
src/arm64/freescale/imx93-14x14-evk.dts
src/arm64/freescale/imx93-9x9-qsb-can1.dtso [new file with mode: 0644]
src/arm64/freescale/imx93-9x9-qsb.dts
src/arm64/freescale/imx93-tqma9352.dtsi
src/arm64/freescale/imx93-var-som-symphony.dts
src/arm64/freescale/imx93-var-som.dtsi
src/arm64/freescale/imx94.dtsi
src/arm64/freescale/imx943-evk.dts
src/arm64/freescale/imx95-15x15-evk.dts
src/arm64/freescale/imx95-15x15-frdm.dts [new file with mode: 0644]
src/arm64/freescale/imx95-clock.h
src/arm64/freescale/imx95-toradex-smarc.dtsi
src/arm64/freescale/imx95-tqma9596sa.dtsi
src/arm64/freescale/imx95.dtsi
src/arm64/freescale/imx952-clock.h [new file with mode: 0644]
src/arm64/freescale/imx952-evk.dts [new file with mode: 0644]
src/arm64/freescale/imx952-pinfunc.h [new file with mode: 0644]
src/arm64/freescale/imx952-power.h [new file with mode: 0644]
src/arm64/freescale/imx952.dtsi [new file with mode: 0644]
src/arm64/freescale/mba8xx.dtsi
src/arm64/freescale/s32g3.dtsi
src/arm64/freescale/s32gxxxa-evb.dtsi
src/arm64/freescale/s32gxxxa-rdb.dtsi
src/arm64/freescale/tqma8xxs-mb-smarc-2.dtsi
src/arm64/freescale/tqma8xxs.dtsi
src/arm64/hisilicon/hi3798cv200-poplar.dts
src/arm64/hisilicon/hi3798cv200.dtsi
src/arm64/intel/socfpga_agilex5.dtsi
src/arm64/intel/socfpga_agilex5_socdk_modular.dts [new file with mode: 0644]
src/arm64/intel/socfpga_agilex_socdk.dts
src/arm64/intel/socfpga_agilex_socdk_emmc.dts [new file with mode: 0644]
src/arm64/intel/socfpga_n5x_socdk.dts
src/arm64/lg/lg131x.dtsi
src/arm64/marvell/armada-3720-db.dts
src/arm64/marvell/armada-3720-espressobin-ultra.dts
src/arm64/marvell/armada-3720-gl-mv1000.dts
src/arm64/marvell/armada-37xx.dtsi
src/arm64/marvell/armada-7020-comexpress.dtsi [new file with mode: 0644]
src/arm64/marvell/armada-70x0.dtsi
src/arm64/marvell/armada-8040-db.dts
src/arm64/marvell/armada-ap806-dual.dtsi
src/arm64/marvell/armada-cp11x.dtsi
src/arm64/marvell/cn9130-cf-base.dts
src/arm64/marvell/cn9130-crb.dtsi
src/arm64/marvell/cn9130-db.dtsi
src/arm64/marvell/cn9131-cf-solidwan.dts
src/arm64/marvell/cn9131-db-comexpress.dtsi
src/arm64/marvell/cn9131-db.dtsi
src/arm64/marvell/cn9132-db.dtsi
src/arm64/marvell/db-falcon-carrier-a7k.dts [new file with mode: 0644]
src/arm64/marvell/db-falcon-carrier.dtsi [new file with mode: 0644]
src/arm64/mediatek/mt6331.dtsi
src/arm64/mediatek/mt6795-sony-xperia-m5.dts
src/arm64/mediatek/mt6795.dtsi
src/arm64/mediatek/mt7981b-openwrt-one.dts
src/arm64/mediatek/mt7981b.dtsi
src/arm64/mediatek/mt7986a.dtsi
src/arm64/mediatek/mt7988a.dtsi
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-jacuzzi-pico6.dts
src/arm64/mediatek/mt8183-kukui.dtsi
src/arm64/mediatek/mt8183-pumpkin.dts
src/arm64/mediatek/mt8183.dtsi
src/arm64/mediatek/mt8186-evb.dts
src/arm64/mediatek/mt8188-geralt.dtsi
src/arm64/mediatek/mt8188.dtsi
src/arm64/mediatek/mt8192-asurada.dtsi
src/arm64/mediatek/mt8192.dtsi
src/arm64/mediatek/mt8195.dtsi
src/arm64/mediatek/mt8370-tungsten-smarc.dts [new file with mode: 0644]
src/arm64/mediatek/mt8390-genio-common.dtsi
src/arm64/mediatek/mt8390-tungsten-smarc.dts [new file with mode: 0644]
src/arm64/mediatek/mt8390-tungsten-smarc.dtsi [new file with mode: 0644]
src/arm64/mediatek/mt8395-genio-common.dtsi
src/arm64/mediatek/mt8395-radxa-nio-12l.dts
src/arm64/nuvoton/nuvoton-npcm845-evb.dts
src/arm64/nuvoton/nuvoton-npcm845.dtsi
src/arm64/nvidia/tegra186.dtsi
src/arm64/nvidia/tegra194.dtsi
src/arm64/nvidia/tegra210-smaug.dts
src/arm64/nvidia/tegra234.dtsi
src/arm64/nvidia/tegra264-p3834.dtsi
src/arm64/nvidia/tegra264.dtsi
src/arm64/qcom/agatti.dtsi
src/arm64/qcom/glymur-ipcc.h [new file with mode: 0644]
src/arm64/qcom/hamoa-iot-evk.dts
src/arm64/qcom/hamoa-iot-som.dtsi
src/arm64/qcom/hamoa.dtsi
src/arm64/qcom/ipq5018.dtsi
src/arm64/qcom/ipq9574.dtsi
src/arm64/qcom/kaanapali-ipcc.h [new file with mode: 0644]
src/arm64/qcom/kaanapali-mtp.dts [new file with mode: 0644]
src/arm64/qcom/kaanapali-qrd.dts [new file with mode: 0644]
src/arm64/qcom/kaanapali.dtsi [new file with mode: 0644]
src/arm64/qcom/kodiak.dtsi
src/arm64/qcom/lemans-el2.dtso [new file with mode: 0644]
src/arm64/qcom/lemans-evk.dts
src/arm64/qcom/lemans-ride-common.dtsi
src/arm64/qcom/lemans.dtsi
src/arm64/qcom/milos-fairphone-fp6.dts [new file with mode: 0644]
src/arm64/qcom/milos.dtsi [new file with mode: 0644]
src/arm64/qcom/monaco-evk.dts
src/arm64/qcom/monaco.dtsi
src/arm64/qcom/msm8916.dtsi
src/arm64/qcom/msm8917.dtsi
src/arm64/qcom/msm8937.dtsi
src/arm64/qcom/msm8939-asus-z00t.dts
src/arm64/qcom/msm8939-pm8916.dtsi
src/arm64/qcom/msm8939.dtsi
src/arm64/qcom/msm8953.dtsi
src/arm64/qcom/msm8976.dtsi
src/arm64/qcom/msm8992-lg-bullhead.dtsi
src/arm64/qcom/msm8994-huawei-angler-rev-101.dts
src/arm64/qcom/msm8994-msft-lumia-octagon.dtsi
src/arm64/qcom/msm8998.dtsi
src/arm64/qcom/pm7550.dtsi [new file with mode: 0644]
src/arm64/qcom/pm8550vs.dtsi
src/arm64/qcom/pmiv0104.dtsi [new file with mode: 0644]
src/arm64/qcom/qcm6490-idp.dts
src/arm64/qcom/qcs615-ride.dts
src/arm64/qcom/qcs6490-rb3gen2.dts
src/arm64/qcom/qcs6490-thundercomm-rubikpi3.dts [new file with mode: 0644]
src/arm64/qcom/qcs8300-ride.dts
src/arm64/qcom/qcs8550-aim300.dtsi
src/arm64/qcom/qdu1000.dtsi
src/arm64/qcom/qrb2210-arduino-imola.dts [new file with mode: 0644]
src/arm64/qcom/qrb2210-rb1-vision-mezzanine.dtso [new file with mode: 0644]
src/arm64/qcom/qrb2210-rb1.dts
src/arm64/qcom/qrb4210-rb2.dts
src/arm64/qcom/sc7280-chrome-common.dtsi
src/arm64/qcom/sc8280xp.dtsi
src/arm64/qcom/sdm630.dtsi
src/arm64/qcom/sdm632-fairphone-fp3.dts
src/arm64/qcom/sdm636.dtsi
src/arm64/qcom/sdm660.dtsi
src/arm64/qcom/sdm670.dtsi
src/arm64/qcom/sdm845-db845c.dts
src/arm64/qcom/sdm845-google-blueline.dts [new file with mode: 0644]
src/arm64/qcom/sdm845-google-common.dtsi [new file with mode: 0644]
src/arm64/qcom/sdm845-google-crosshatch.dts [new file with mode: 0644]
src/arm64/qcom/sdm845-oneplus-common.dtsi
src/arm64/qcom/sdm845-oneplus-enchilada.dts
src/arm64/qcom/sdm845-oneplus-fajita.dts
src/arm64/qcom/sdm845-samsung-starqltechn.dts
src/arm64/qcom/sdm845-shift-axolotl.dts
src/arm64/qcom/sdm845-xiaomi-beryllium-common.dtsi
src/arm64/qcom/sdm845-xiaomi-polaris.dts
src/arm64/qcom/sdm850-huawei-matebook-e-2019.dts
src/arm64/qcom/sm6115.dtsi
src/arm64/qcom/sm6125-xiaomi-ginkgo.dts
src/arm64/qcom/sm6125.dtsi
src/arm64/qcom/sm6350-sony-xperia-lena-pdx213.dts
src/arm64/qcom/sm6350.dtsi
src/arm64/qcom/sm7225-fairphone-fp4.dts
src/arm64/qcom/sm8150-hdk.dts
src/arm64/qcom/sm8150-mtp.dts
src/arm64/qcom/sm8150.dtsi
src/arm64/qcom/sm8250-hdk.dts
src/arm64/qcom/sm8550-hdk-rear-camera-card.dtso
src/arm64/qcom/sm8550-hdk.dts
src/arm64/qcom/sm8550-mtp.dts
src/arm64/qcom/sm8550-qrd.dts
src/arm64/qcom/sm8550-samsung-q5q.dts
src/arm64/qcom/sm8550-sony-xperia-yodo-pdx234.dts
src/arm64/qcom/sm8650-hdk-rear-camera-card.dtso [new file with mode: 0644]
src/arm64/qcom/sm8650-hdk.dts
src/arm64/qcom/sm8650-mtp.dts
src/arm64/qcom/sm8650-qrd.dts
src/arm64/qcom/sm8650.dtsi
src/arm64/qcom/sm8750-mtp.dts
src/arm64/qcom/sm8750-qrd.dts
src/arm64/qcom/sm8750.dtsi
src/arm64/qcom/talos.dtsi
src/arm64/qcom/x1-asus-zenbook-a14.dtsi
src/arm64/qcom/x1-crd.dtsi
src/arm64/qcom/x1-dell-thena.dtsi
src/arm64/qcom/x1-el2.dtso
src/arm64/qcom/x1-hp-omnibook-x14.dtsi
src/arm64/qcom/x1-microsoft-denali.dtsi [new file with mode: 0644]
src/arm64/qcom/x1e001de-devkit.dts
src/arm64/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
src/arm64/qcom/x1e80100-asus-vivobook-s15.dts
src/arm64/qcom/x1e80100-asus-zenbook-a14.dts
src/arm64/qcom/x1e80100-dell-xps13-9345.dts
src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts
src/arm64/qcom/x1e80100-medion-sprchrgd-14-s1.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-microsoft-denali-oled.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-microsoft-romulus.dtsi
src/arm64/qcom/x1e80100-qcp.dts
src/arm64/qcom/x1p42100-lenovo-thinkbook-16.dts
src/arm64/qcom/x1p64100-microsoft-denali.dts [new file with mode: 0644]
src/arm64/realtek/kent.dtsi [new file with mode: 0644]
src/arm64/realtek/rtd1501.dtsi [new file with mode: 0644]
src/arm64/realtek/rtd1501s-phantom-8gb.dts [new file with mode: 0644]
src/arm64/realtek/rtd1501s-phantom.dtsi [new file with mode: 0644]
src/arm64/realtek/rtd1861.dtsi [new file with mode: 0644]
src/arm64/realtek/rtd1861b-krypton-8gb.dts [new file with mode: 0644]
src/arm64/realtek/rtd1861b-krypton.dtsi [new file with mode: 0644]
src/arm64/realtek/rtd1920.dtsi [new file with mode: 0644]
src/arm64/realtek/rtd1920s-smallville-4gb.dts [new file with mode: 0644]
src/arm64/realtek/rtd1920s-smallville.dtsi [new file with mode: 0644]
src/arm64/renesas/beacon-renesom-som.dtsi
src/arm64/renesas/condor-common.dtsi
src/arm64/renesas/draak.dtsi
src/arm64/renesas/ebisu.dtsi
src/arm64/renesas/gmsl-cameras.dtsi [deleted file]
src/arm64/renesas/hihope-rev4.dtsi
src/arm64/renesas/r8a774a1.dtsi
src/arm64/renesas/r8a774b1.dtsi
src/arm64/renesas/r8a774e1.dtsi
src/arm64/renesas/r8a77951.dtsi
src/arm64/renesas/r8a77960.dtsi
src/arm64/renesas/r8a77961.dtsi
src/arm64/renesas/r8a77965.dtsi
src/arm64/renesas/r8a77970-eagle.dts
src/arm64/renesas/r8a77970-v3msk.dts
src/arm64/renesas/r8a77970.dtsi
src/arm64/renesas/r8a77980-v3hsk.dts
src/arm64/renesas/r8a77980.dtsi
src/arm64/renesas/r8a779a0.dtsi
src/arm64/renesas/r8a779f0.dtsi
src/arm64/renesas/r8a779g0.dtsi
src/arm64/renesas/r8a779g3-sparrow-hawk.dts
src/arm64/renesas/r8a779h0.dtsi
src/arm64/renesas/r8a779m0.dtsi [deleted file]
src/arm64/renesas/r8a779m2.dtsi [deleted file]
src/arm64/renesas/r8a779m4.dtsi [deleted file]
src/arm64/renesas/r8a779m6.dtsi [deleted file]
src/arm64/renesas/r8a779m7.dtsi [deleted file]
src/arm64/renesas/r8a779m8.dtsi [deleted file]
src/arm64/renesas/r8a779mb.dtsi [deleted file]
src/arm64/renesas/r8a78000.dtsi
src/arm64/renesas/r9a07g044.dtsi
src/arm64/renesas/r9a07g044c1.dtsi [deleted file]
src/arm64/renesas/r9a07g044l1.dtsi [deleted file]
src/arm64/renesas/r9a07g054.dtsi
src/arm64/renesas/r9a07g054l1.dtsi [deleted file]
src/arm64/renesas/r9a08g045.dtsi
src/arm64/renesas/r9a09g047.dtsi
src/arm64/renesas/r9a09g047e37.dtsi [deleted file]
src/arm64/renesas/r9a09g047e57-smarc.dts
src/arm64/renesas/r9a09g056.dtsi
src/arm64/renesas/r9a09g056n48-rzv2n-evk.dts
src/arm64/renesas/r9a09g057.dtsi
src/arm64/renesas/r9a09g057h44-rzv2h-evk.dts
src/arm64/renesas/r9a09g057h48-kakip.dts
src/arm64/renesas/r9a09g077.dtsi
src/arm64/renesas/r9a09g077m44-rzt2h-evk.dts
src/arm64/renesas/r9a09g087.dtsi
src/arm64/renesas/r9a09g087m44-rzn2h-evk.dts
src/arm64/renesas/renesas-smarc2.dtsi
src/arm64/renesas/rzg3e-smarc-som.dtsi
src/arm64/renesas/rzg3s-smarc-som.dtsi
src/arm64/renesas/rzg3s-smarc.dtsi
src/arm64/renesas/rzt2h-n2h-evk-common.dtsi
src/arm64/renesas/rzv2-evk-cn15-sd.dtso
src/arm64/renesas/salvator-common.dtsi
src/arm64/renesas/ulcb.dtsi
src/arm64/rockchip/rk3368-lion-haikou-video-demo.dtso [new file with mode: 0644]
src/arm64/rockchip/rk3368-lion-haikou.dts
src/arm64/rockchip/rk3368-lion.dtsi
src/arm64/rockchip/rk3368.dtsi
src/arm64/rockchip/rk3399-pinebook-pro.dts
src/arm64/rockchip/rk3399-pinephone-pro.dts
src/arm64/rockchip/rk3399-roc-pc-plus.dts
src/arm64/rockchip/rk3399-roc-pc.dtsi
src/arm64/rockchip/rk3399-rock-4c-plus.dts
src/arm64/rockchip/rk3399-rock-4se.dts
src/arm64/rockchip/rk3399-rock-pi-4.dtsi
src/arm64/rockchip/rk3399-rockpro64-v2.dts
src/arm64/rockchip/rk3399-rockpro64.dts
src/arm64/rockchip/rk3528-armsom-sige1.dts
src/arm64/rockchip/rk3566-pinenote.dtsi
src/arm64/rockchip/rk3566-qnap-ts133.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-rock-3c.dts
src/arm64/rockchip/rk3568-anbernic-rg-ds.dts [new file with mode: 0644]
src/arm64/rockchip/rk3568-qnap-ts233.dts
src/arm64/rockchip/rk3568-qnap-ts433.dts
src/arm64/rockchip/rk3568-qnap-tsx33.dtsi
src/arm64/rockchip/rk3568-radxa-cm3i.dtsi
src/arm64/rockchip/rk3568-radxa-cm3j-rpi-cm4.dts [new file with mode: 0644]
src/arm64/rockchip/rk3568-radxa-cm3j.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3568-rock-3a.dts
src/arm64/rockchip/rk3568-rock-3b.dts
src/arm64/rockchip/rk3568.dtsi
src/arm64/rockchip/rk356x-base.dtsi
src/arm64/rockchip/rk3576-armsom-sige5.dts
src/arm64/rockchip/rk3576-evb1-v10-pcie1.dtso [new file with mode: 0644]
src/arm64/rockchip/rk3576-evb1-v10.dts
src/arm64/rockchip/rk3576-luckfox-core3576.dtsi
src/arm64/rockchip/rk3576-nanopi-m5.dts
src/arm64/rockchip/rk3576-nanopi-r76s.dts
src/arm64/rockchip/rk3576-pinctrl.dtsi
src/arm64/rockchip/rk3576-rock-4d.dts
src/arm64/rockchip/rk3576.dtsi
src/arm64/rockchip/rk3588-base.dtsi
src/arm64/rockchip/rk3588-evb1-v10.dts
src/arm64/rockchip/rk3588-extra.dtsi
src/arm64/rockchip/rk3588-friendlyelec-cm3588-nas.dts
src/arm64/rockchip/rk3588-friendlyelec-cm3588.dtsi
src/arm64/rockchip/rk3588-jaguar.dts
src/arm64/rockchip/rk3588-nanopc-t6.dtsi
src/arm64/rockchip/rk3588-rock-5-itx.dts
src/arm64/rockchip/rk3588-rock-5b-plus.dts
src/arm64/rockchip/rk3588-rock-5t.dts
src/arm64/rockchip/rk3588-tiger.dtsi
src/arm64/rockchip/rk3588-turing-rk1.dtsi
src/arm64/rockchip/rk3588s-gameforce-ace.dts
src/arm64/rockchip/rk3588s-orangepi-cm5-base.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588s-orangepi-cm5.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588s-radxa-cm5-io.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588s-radxa-cm5.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588s-rock-5a.dts
src/arm64/rockchip/rk3588s-rock-5c.dts
src/arm64/sprd/sc9860.dtsi
src/arm64/sprd/sc9863a.dtsi
src/arm64/sprd/sharkl64.dtsi
src/arm64/sprd/whale2.dtsi
src/arm64/st/stm32mp21xc.dtsi [deleted file]
src/arm64/st/stm32mp231.dtsi
src/arm64/st/stm32mp235f-dk.dts
src/arm64/st/stm32mp23xc.dtsi [deleted file]
src/arm64/st/stm32mp251.dtsi
src/arm64/st/stm32mp257f-dk.dts
src/arm64/st/stm32mp257f-ev1.dts
src/arm64/st/stm32mp25xc.dtsi [deleted file]
src/arm64/st/stm32mp25xxal-pinctrl.dtsi [deleted file]
src/arm64/ti/k3-am62-phycore-som.dtsi
src/arm64/ti/k3-am62a-phycore-som.dtsi
src/arm64/ti/k3-am62d2-evm.dts
src/arm64/ti/k3-am62p-j722s-common-main.dtsi
src/arm64/ti/k3-am62p-verdin.dtsi
src/arm64/ti/k3-am62p.dtsi
src/arm64/ti/k3-am62p5-sk.dts
src/arm64/ti/k3-am62p5-var-som-symphony.dts
src/arm64/ti/k3-am64-main.dtsi
src/arm64/ti/k3-am642-phyboard-electra-rdk.dts
src/arm64/ti/k3-am642-phyboard-electra-x27-gpio1-spi1-uart3.dtso
src/arm64/ti/k3-am65-iot2050-arduino-connector.dtsi
src/arm64/ti/k3-am65-iot2050-common.dtsi
src/arm64/ti/k3-am65-main.dtsi
src/arm64/ti/k3-am654-base-board.dts
src/arm64/ti/k3-am67a-kontron-sa67-base.dts
src/arm64/ti/k3-am68-sk-base-board.dts
src/arm64/ti/k3-am69-aquila-clover.dts
src/arm64/ti/k3-am69-aquila-dev.dts
src/arm64/ti/k3-am69-aquila.dtsi
src/arm64/ti/k3-am69-sk.dts
src/arm64/ti/k3-j7200-mcu-wakeup.dtsi
src/arm64/ti/k3-j721e-sk.dts
src/arm64/ti/k3-j721e.dtsi
src/arm64/ti/k3-j721s2-mcu-wakeup.dtsi
src/arm64/ti/k3-j722s-evm.dts
src/arm64/ti/k3-j722s-main.dtsi
src/arm64/ti/k3-j722s.dtsi
src/arm64/ti/k3-j742s2-mcu-wakeup.dtsi
src/arm64/ti/k3-j784s4-j742s2-evm-common.dtsi
src/arm64/ti/k3-j784s4-j742s2-main-common.dtsi
src/arm64/ti/k3-j784s4-j742s2-mcu-wakeup-common.dtsi
src/arm64/ti/k3-j784s4-main.dtsi
src/arm64/toshiba/tmpv7708-rm-mbrc.dts
src/arm64/toshiba/tmpv7708-visrobo-vrb.dts
src/arm64/toshiba/tmpv7708-visrobo-vrc.dtsi
src/arm64/toshiba/tmpv7708.dtsi
src/arm64/toshiba/tmpv7708_pins.dtsi
src/arm64/xilinx/versal-net.dtsi
src/arm64/xilinx/zynqmp-clk-ccf.dtsi
src/arm64/xilinx/zynqmp-sck-kd-g-revA.dtso
src/arm64/xilinx/zynqmp-sck-kr-g-revA.dtso
src/arm64/xilinx/zynqmp-sck-kr-g-revB.dtso
src/arm64/xilinx/zynqmp-sck-kv-g-revA.dtso
src/arm64/xilinx/zynqmp-sck-kv-g-revB.dtso
src/arm64/xilinx/zynqmp.dtsi
src/loongarch/loongson-2k0500-ref.dts
src/loongarch/loongson-2k0500.dtsi
src/loongarch/loongson-2k1000-ref.dts
src/loongarch/loongson-2k1000.dtsi
src/mips/loongson/ls7a-pch.dtsi
src/openrisc/de0-nano-common.dtsi [new file with mode: 0644]
src/openrisc/de0-nano-multicore.dts [new file with mode: 0644]
src/openrisc/de0-nano.dts [new file with mode: 0644]
src/openrisc/simple-smp.dts [new file with mode: 0644]
src/openrisc/simple-smp.dtsi [moved from src/openrisc/simple_smp.dts with 90% similarity]
src/powerpc/asp834x-redboot.dts
src/powerpc/fsl/interlaken-lac-portals.dtsi [deleted file]
src/powerpc/fsl/interlaken-lac.dtsi [deleted file]
src/powerpc/fsl/pq3-mpic-message-B.dtsi [deleted file]
src/powerpc/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi [deleted file]
src/powerpc/mpc8308_p1m.dts
src/powerpc/mpc8308rdb.dts
src/powerpc/mpc8313erdb.dts
src/powerpc/mpc8315erdb.dts
src/powerpc/mpc832x_rdb.dts
src/powerpc/mpc8349emitx.dts
src/powerpc/mpc8349emitxgp.dts
src/powerpc/mpc8377_rdb.dts
src/powerpc/mpc8377_wlan.dts
src/powerpc/mpc8378_rdb.dts
src/powerpc/mpc8379_rdb.dts
src/riscv/allwinner/sun20i-d1-lichee-rv-dock.dts
src/riscv/allwinner/sun20i-d1-nezha.dts
src/riscv/allwinner/sun20i-d1.dtsi
src/riscv/allwinner/sun20i-d1s.dtsi
src/riscv/allwinner/sunxi-d1s-t113.dtsi
src/riscv/anlogic/dr1v90.dtsi
src/riscv/microchip/mpfs.dtsi
src/riscv/renesas/r9a07g043f.dtsi
src/riscv/sophgo/cv180x.dtsi
src/riscv/sophgo/sg2042-cpus.dtsi
src/riscv/sophgo/sg2042-milkv-pioneer.dts
src/riscv/sophgo/sg2042.dtsi
src/riscv/sophgo/sg2044-cpus.dtsi
src/riscv/spacemit/k1-bananapi-f3.dts
src/riscv/spacemit/k1-milkv-jupiter.dts
src/riscv/spacemit/k1-orangepi-r2s.dts
src/riscv/spacemit/k1-orangepi-rv2.dts
src/riscv/spacemit/k1-pinctrl.dtsi
src/riscv/spacemit/k1.dtsi
src/riscv/spacemit/k3-pico-itx.dts [new file with mode: 0644]
src/riscv/spacemit/k3.dtsi [new file with mode: 0644]
src/riscv/starfive/jh7110-starfive-visionfive-2-lite-emmc.dts
src/riscv/starfive/jh7110-starfive-visionfive-2-lite.dts

index 8d6f85f4455da2a82a216772db715fc57eb545db..7b668f7fd4007f03bb61d942926fe493339d1f6e 100644 (file)
@@ -56,7 +56,6 @@ DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_all_cmd)))
 
 override DTC_FLAGS := \
        -Wno-avoid_unnecessary_addr_size \
-       -Wno-graph_child_address \
        -Wno-unique_unit_address \
        -Wunique_unit_address_if_enabled
 
@@ -82,5 +81,8 @@ clean-files = $(shell find $(obj) \( -name '*.example.dts' -o \
 dt_compatible_check: $(obj)/processed-schema.json
        $(Q)$(srctree)/scripts/dtc/dt-extract-compatibles $(srctree) | xargs dt-check-compatible -v -s $<
 
+PHONY += dt_binding_check_one
+dt_binding_check_one: $(obj)/.dt-binding.checked $(obj)/.yamllint.checked
+
 PHONY += dt_binding_check
-dt_binding_check: $(obj)/.dt-binding.checked $(obj)/.yamllint.checked $(CHK_DT_EXAMPLES)
+dt_binding_check: dt_binding_check_one $(CHK_DT_EXAMPLES)
index db61537b71157aa04c2ff15c69d8daf974401201..13a3a969682142c6e590f694edf818a0904c3dec 100644 (file)
@@ -9,6 +9,9 @@ title: Altera's SoCFPGA platform
 maintainers:
   - Dinh Nguyen <dinguyen@kernel.org>
 
+description:
+  Altera/Intel boards with ARM 32/64 bits cores
+
 properties:
   $nodename:
     const: "/"
@@ -81,6 +84,30 @@ properties:
               - altr,socfpga-stratix10-swvp
           - const: altr,socfpga-stratix10
 
+      - description: AgileX boards
+        items:
+          - enum:
+              - intel,n5x-socdk
+              - intel,socfpga-agilex-n6000
+              - intel,socfpga-agilex-socdk
+              - intel,socfpga-agilex-socdk-emmc
+          - const: intel,socfpga-agilex
+
+      - description: Agilex3 boards
+        items:
+          - enum:
+              - intel,socfpga-agilex3-socdk
+          - const: intel,socfpga-agilex3
+          - const: intel,socfpga-agilex5
+
+      - description: Agilex5 boards
+        items:
+          - enum:
+              - intel,socfpga-agilex5-socdk
+              - intel,socfpga-agilex5-socdk-013b
+              - intel,socfpga-agilex5-socdk-nand
+          - const: intel,socfpga-agilex5
+
       - description: SoCFPGA VT
         items:
           - const: altr,socfpga-vt
index 08d9963fe92598ec122a3613f0a67289e49277ac..a885278bc4e2e4c344d4a5c4efddc251de5e2f4e 100644 (file)
@@ -245,6 +245,14 @@ properties:
         items:
           - enum:
               - amlogic,aq222
+          - const: amlogic,s805x2
+          - const: amlogic,s4
+
+      - description: Boards with the Amlogic Meson S4 S905Y4 SoC
+        items:
+          - enum:
+              - khadas,vim1s
+          - const: amlogic,s905y4
           - const: amlogic,s4
 
       - description: Boards with the Amlogic S6 S905X5 SoC
index ed091dc0c10a949140e9cbe01ac85d01fac843ae..206681ccaa4c06f0c32274e1a36f9da1468d3735 100644 (file)
@@ -31,7 +31,7 @@ maintainers:
   - Mike Leach <mike.leach@linaro.org>
   - Suzuki K Poulose <suzuki.poulose@arm.com>
   - James Clark <james.clark@linaro.org>
-  - Mao Jinlong <quic_jinlmao@quicinc.com>
+  - Mao Jinlong <jinlong.mao@oss.qualcomm.com>
   - Hao Zhang <quic_hazha@quicinc.com>
 
 properties:
index 78337be42b55f689bc9936e3c94136ef61dbe4a4..0b1e12ae95c332b294d0884c8a2ae5e8e2114f0e 100644 (file)
@@ -30,7 +30,7 @@ maintainers:
   - Mike Leach <mike.leach@linaro.org>
   - Suzuki K Poulose <suzuki.poulose@arm.com>
   - James Clark <james.clark@linaro.org>
-  - Mao Jinlong <quic_jinlmao@quicinc.com>
+  - Mao Jinlong <jinlong.mao@oss.qualcomm.com>
   - Hao Zhang <quic_hazha@quicinc.com>
 
 properties:
index 6430218ba1ceacde755f4122550dea231a40425a..ba04576f0ad63762c450fdb6273239b618978f6a 100644 (file)
@@ -157,6 +157,12 @@ patternProperties:
               - const: simple-bus
           - const: simple-bus
 
+      "#interrupt-cells":
+        const: 1
+
+      interrupt-map: true
+      interrupt-map-mask: true
+
     patternProperties:
       '^motherboard-bus@':
         type: object
index 9298c1a75dd13b447e5ddbc64c5e169dcd08fb15..f9925a14680eaa64587e982b90231c0e45fc30dd 100644 (file)
@@ -34,6 +34,7 @@ properties:
               - amd,ethanolx-bmc
               - ampere,mtjade-bmc
               - aspeed,ast2500-evb
+              - asrock,altrad8-bmc
               - asrock,e3c246d4i-bmc
               - asrock,e3c256d4i-bmc
               - asrock,romed8hm3-bmc
@@ -80,6 +81,7 @@ properties:
               - aspeed,ast2600-evb
               - aspeed,ast2600-evb-a1
               - asus,x4tf-bmc
+              - facebook,anacapa-bmc
               - facebook,bletchley-bmc
               - facebook,catalina-bmc
               - facebook,clemente-bmc
@@ -107,6 +109,7 @@ properties:
               - inventec,transformer-bmc
               - jabil,rbp-bmc
               - nvidia,gb200nvl-bmc
+              - nvidia,msx4-bmc
               - qcom,dc-scm-v1-bmc
               - quanta,s6q-bmc
               - ufispace,ncplite-bmc
index 3a34b7a2e8d4ea9f0760fd0441d415f12c2987d7..68d306d17c2a14713efce2707feeb05154ba1f97 100644 (file)
@@ -235,9 +235,11 @@ properties:
           - const: microchip,lan9662
           - const: microchip,lan966
 
-      - description: Microchip LAN9668 PCB8290 Evaluation Board.
+      - description: Microchip LAN9668 Evaluation Board.
         items:
-          - const: microchip,lan9668-pcb8290
+          - enum:
+              - microchip,lan9668-pcb8290
+              - microchip,lan9668-pcb8385
           - const: microchip,lan9668
           - const: microchip,lan966
 
diff --git a/Bindings/arm/bcm/brcm,vulcan-soc.yaml b/Bindings/arm/bcm/brcm,vulcan-soc.yaml
deleted file mode 100644 (file)
index 3f44135..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/arm/bcm/brcm,vulcan-soc.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Broadcom Vulcan
-
-maintainers:
-  - Robert Richter <rrichter@marvell.com>
-
-properties:
-  $nodename:
-    const: '/'
-  compatible:
-    items:
-      - enum:
-          - brcm,vulcan-eval
-          - cavium,thunderx2-cn9900
-      - const: brcm,vulcan-soc
-
-additionalProperties: true
-
-...
index 8349c0a854d9606b26fed8d39c337be86110601a..983ea80eaec97e36cacea784944d6cd4bcaee462 100644 (file)
@@ -65,6 +65,11 @@ properties:
       gpio-line-names:
         minItems: 8
 
+    patternProperties:
+      '-hog$':
+        required:
+          - gpio-hog
+
     required:
       - compatible
       - gpio-controller
@@ -87,6 +92,9 @@ properties:
       - compatible
       - "#reset-cells"
 
+  power:
+    $ref: /schemas/power/raspberrypi,bcm2835-power.yaml#
+
   pwm:
     type: object
     additionalProperties: false
index 114dab4bc4d26a644b0c61d0527e6f414c76064f..21e66df7f696f7563b3486e5ff682c8d7642929a 100644 (file)
@@ -16,9 +16,11 @@ properties:
   compatible:
     oneOf:
 
-      - description: Radxa Orion O6
+      - description: Sky1 based boards
         items:
-          - const: radxa,orion-o6
+          - enum:
+              - radxa,orion-o6 # Radxa Orion O6 board
+              - xunlong,orangepi-6-plus # Xunlong orangepi 6 plus board
           - const: cix,sky1
 
 additionalProperties: true
index 336669e16d7ab7ef38c856123adfba21b0e0f2fe..5716d701292cf64fd73cd35b745287addd747053 100644 (file)
@@ -1071,6 +1071,15 @@ properties:
               - gw,imx8mn-gw7902          # i.MX8MM Gateworks Board
           - const: fsl,imx8mn
 
+      - description: ifm i.MX8MN VHIP4 based boards
+        items:
+          - enum:
+              - ifm,imx8mn-vhip4-evalboard-v1
+              - ifm,imx8mn-vhip4-evalboard-v2
+          - const: ifm,imx8mn-vhip4-evalboard
+          - const: ifm,imx8mn-vhip4
+          - const: fsl,imx8mn
+
       - description: Variscite VAR-SOM-MX8MN based boards
         items:
           - enum:
@@ -1099,6 +1108,7 @@ properties:
               - emcraft,imx8mp-navqp      # i.MX8MP Emcraft Systems NavQ+ Kit
               - fsl,imx8mp-evk            # i.MX8MP EVK Board
               - fsl,imx8mp-evk-revb4      # i.MX8MP EVK Rev B4 Board
+              - fsl,imx8mp-frdm           # i.MX8MP Freedom Board
               - gateworks,imx8mp-gw71xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw72xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw73xx-2x # i.MX8MP Gateworks Board
@@ -1340,7 +1350,7 @@ properties:
           - const: toradex,apalis-imx8
           - const: fsl,imx8qm
 
-      - description: i.MX8QM Boards with Toradex Apalis iMX8 V1.1 Modules
+      - description: i.MX8QM/i.MX8QP Boards with Toradex Apalis iMX8 V1.1 Modules
         items:
           - enum:
               - toradex,apalis-imx8-v1.1-eval       # Apalis iMX8 V1.1 Module on Apalis Eval. V1.0/V1.1 Board
@@ -1348,7 +1358,9 @@ properties:
               - toradex,apalis-imx8-v1.1-ixora-v1.1 # Apalis iMX8 V1.1 Module on Ixora V1.1 C. Board
               - toradex,apalis-imx8-v1.1-ixora-v1.2 # Apalis iMX8 V1.1 Module on Ixora V1.2 C. Board
           - const: toradex,apalis-imx8-v1.1
-          - const: fsl,imx8qm
+          - enum:
+              - fsl,imx8qm
+              - fsl,imx8qp
 
       - description: i.MX8QXP based Boards
         items:
@@ -1419,6 +1431,7 @@ properties:
         items:
           - enum:
               - fsl,imx91-11x11-evk       # i.MX91 11x11 EVK Board
+              - fsl,imx91-11x11-frdm      # FRDM i.MX91 Development Board
           - const: fsl,imx91
 
       - description: i.MX93 based Boards
@@ -1426,6 +1439,7 @@ properties:
           - enum:
               - fsl,imx93-9x9-qsb         # i.MX93 9x9 QSB Board
               - fsl,imx93-11x11-evk       # i.MX93 11x11 EVK Board
+              - fsl,imx93-11x11-frdm      # i.MX93 11x11 FRDM Board
               - fsl,imx93-14x14-evk       # i.MX93 14x14 EVK Board
           - const: fsl,imx93
 
@@ -1439,10 +1453,17 @@ properties:
         items:
           - enum:
               - fsl,imx95-15x15-evk       # i.MX95 15x15 EVK Board
+              - fsl,imx95-15x15-frdm      # i.MX95 15x15 FRDM Board
               - fsl,imx95-19x19-evk       # i.MX95 19x19 EVK Board
               - toradex,verdin-imx95-19x19-evk  # i.MX95 Verdin Evaluation Kit (EVK)
           - const: fsl,imx95
 
+      - description: i.MX952 based Boards
+        items:
+          - enum:
+              - fsl,imx952-evk            # i.MX952 EVK Board
+          - const: fsl,imx952
+
       - description: PHYTEC i.MX 95 FPSC based Boards
         items:
           - enum:
@@ -1679,6 +1700,15 @@ properties:
           - const: kontron,sl28
           - const: fsl,ls1028a
 
+      - description:
+          TQ-Systems TQMLS1028A SoM on MBLS1028A/MBLS1028A-IND board
+        items:
+          - enum:
+              - tq,ls1028a-tqmls1028a-mbls1028a
+              - tq,ls1028a-tqmls1028a-mbls1028a-ind
+          - const: tq,ls1028a-tqmls1028a
+          - const: fsl,ls1028a
+
       - description: LS1043A based Boards
         items:
           - enum:
diff --git a/Bindings/arm/intel,socfpga.yaml b/Bindings/arm/intel,socfpga.yaml
deleted file mode 100644 (file)
index c918837..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/arm/intel,socfpga.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Intel SoCFPGA platform
-
-maintainers:
-  - Dinh Nguyen <dinguyen@kernel.org>
-
-properties:
-  $nodename:
-    const: "/"
-  compatible:
-    oneOf:
-      - description: AgileX boards
-        items:
-          - enum:
-              - intel,n5x-socdk
-              - intel,socfpga-agilex-n6000
-              - intel,socfpga-agilex-socdk
-          - const: intel,socfpga-agilex
-      - description: Agilex3 boards
-        items:
-          - enum:
-              - intel,socfpga-agilex3-socdk
-          - const: intel,socfpga-agilex3
-          - const: intel,socfpga-agilex5
-      - description: Agilex5 boards
-        items:
-          - enum:
-              - intel,socfpga-agilex5-socdk
-              - intel,socfpga-agilex5-socdk-013b
-              - intel,socfpga-agilex5-socdk-nand
-          - const: intel,socfpga-agilex5
-
-additionalProperties: true
-
-...
index 718d732174b9e3974b1a1bf827f48a347dae741f..382d0eb4d0af6d22e15d15397c47b57f822b84a9 100644 (file)
@@ -438,12 +438,14 @@ properties:
           - const: mediatek,mt8365
       - items:
           - enum:
+              - ezurio,mt8370-tungsten-smarc
               - grinn,genio-510-sbc
               - mediatek,mt8370-evk
           - const: mediatek,mt8370
           - const: mediatek,mt8188
       - items:
           - enum:
+              - ezurio,mt8390-tungsten-smarc
               - grinn,genio-700-sbc
               - mediatek,mt8390-evk
           - const: mediatek,mt8390
index f3a761cbd0fd44e2f7ff35c274dd170bbb177e96..09a6c16e7e8299c5a271df24f18f7a585046a7c9 100644 (file)
@@ -48,19 +48,39 @@ required:
   - compatible
   - '#clock-cells'
 
-if:
-  properties:
-    compatible:
-      contains:
-        const: mediatek,mt8183-audiosys
-then:
-  properties:
-    audio-controller:
-      $ref: /schemas/sound/mediatek,mt8183-audio.yaml#
-else:
-  properties:
-    audio-controller:
-      $ref: /schemas/sound/mediatek,mt2701-audio.yaml#
+allOf:
+ - if:
+     properties:
+       compatible:
+         contains:
+           enum:
+             - mediatek,mt2701-audsys
+             - mediatek,mt7622-audsys
+   then:
+     properties:
+       audio-controller:
+         $ref: /schemas/sound/mediatek,mt2701-audio.yaml#
+
+ - if:
+     properties:
+       compatible:
+         contains:
+           const: mediatek,mt8183-audiosys
+   then:
+     properties:
+       audio-controller:
+         $ref: /schemas/sound/mediatek,mt8183-audio.yaml#
+
+ - if:
+     properties:
+       compatible:
+         contains:
+           const: mediatek,mt8192-audsys
+   then:
+     properties:
+       audio-controller:
+         $ref: /schemas/sound/mt8192-afe-pcm.yaml#
+
 
 additionalProperties: false
 
diff --git a/Bindings/arm/omap/prm-inst.txt b/Bindings/arm/omap/prm-inst.txt
deleted file mode 100644 (file)
index 42db138..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-OMAP PRM instance bindings
-
-Power and Reset Manager is an IP block on OMAP family of devices which
-handle the power domains and their current state, and provide reset
-handling for the domains and/or separate IP blocks under the power domain
-hierarchy.
-
-Required properties:
-- compatible:  Must contain one of the following:
-               "ti,am3-prm-inst"
-               "ti,am4-prm-inst"
-               "ti,omap4-prm-inst"
-               "ti,omap5-prm-inst"
-               "ti,dra7-prm-inst"
-               and additionally must contain:
-               "ti,omap-prm-inst"
-- reg:         Contains PRM instance register address range
-               (base address and length)
-
-Optional properties:
-- #power-domain-cells: Should be 0 if the instance is a power domain provider.
-- #reset-cells:        Should be 1 if the PRM instance in question supports resets.
-
-Example:
-
-prm_dsp2: prm@1b00 {
-       compatible = "ti,dra7-prm-inst", "ti,omap-prm-inst";
-       reg = <0x1b00 0x40>;
-       #power-domain-cells = <0>;
-       #reset-cells = <1>;
-};
index c969c16c21ef77900a00123fb1a96d3933c784e1..e002f87361ad360117149ac6684ebc540414f8a1 100644 (file)
@@ -7,9 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: CoreSight TMC Control Unit
 
 maintainers:
-  - Yuanfang Zhang <quic_yuanfang@quicinc.com>
-  - Mao Jinlong <quic_jinlmao@quicinc.com>
-  - Jie Gan <quic_jiegan@quicinc.com>
+  - Yuanfang Zhang <yuanfang.zhang@oss.qualcomm.com>
+  - Mao Jinlong <jinlong.mao@oss.qualcomm.com>
+  - Jie Gan <jie.gan@oss.qualcomm.com>
 
 description: |
   The Trace Memory Controller(TMC) is used for Embedded Trace Buffer(ETB),
@@ -26,8 +26,13 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - qcom,sa8775p-ctcu
+    oneOf:
+      - items:
+          - enum:
+              - qcom,qcs8300-ctcu
+          - const: qcom,sa8775p-ctcu
+      - enum:
+          - qcom,sa8775p-ctcu
 
   reg:
     maxItems: 1
diff --git a/Bindings/arm/qcom,coresight-itnoc.yaml b/Bindings/arm/qcom,coresight-itnoc.yaml
new file mode 100644 (file)
index 0000000..8936bb7
--- /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/arm/qcom,coresight-itnoc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Interconnect Trace Network On Chip - ITNOC
+
+maintainers:
+  - Yuanfang Zhang <yuanfang.zhang@oss.qualcomm.com>
+
+description:
+  The Interconnect TNOC is a CoreSight graph link that forwards trace data
+  from a subsystem to the Aggregator TNOC. Compared to Aggregator TNOC, it
+  does not have aggregation and ATID functionality.
+
+properties:
+  $nodename:
+    pattern: "^itnoc(@[0-9a-f]+)?$"
+
+  compatible:
+    const: qcom,coresight-itnoc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: apb
+
+  in-ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    patternProperties:
+      '^port(@[0-9a-f]{1,2})?$':
+        description: Input connections from CoreSight Trace Bus
+        $ref: /schemas/graph.yaml#/properties/port
+
+  out-ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    additionalProperties: false
+
+    properties:
+      port:
+        description: out connections to aggregator TNOC
+        $ref: /schemas/graph.yaml#/properties/port
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - in-ports
+  - out-ports
+
+additionalProperties: false
+
+examples:
+  - |
+    itnoc@109ac000 {
+        compatible = "qcom,coresight-itnoc";
+        reg = <0x109ac000 0x1000>;
+
+        clocks = <&aoss_qmp>;
+        clock-names = "apb";
+
+        in-ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+            port@0 {
+                reg = <0>;
+                tn_ic_in_tpdm_dcc: endpoint {
+                    remote-endpoint = <&tpdm_dcc_out_tn_ic>;
+                };
+            };
+        };
+
+        out-ports {
+            port {
+                tn_ic_out_tnoc_aggr: endpoint {
+                    /* to Aggregator TNOC input */
+                    remote-endpoint = <&tn_ag_in_tn_ic>;
+                };
+            };
+        };
+    };
+...
index ffe613efeabe84b6a68f929074e36f2d6b53cc81..e3a32f30551c89ea5d194bd35b7673c337b150e5 100644 (file)
@@ -7,8 +7,8 @@ $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>
+  - Jinlong Mao <jinlong.mao@oss.qualcomm.com>
+  - Tao Zhang <tao.zhang@oss.qualcomm.com>
 
 description:
   Support for ETM trace collection on remote processor using coresight
index 9d1c93a9ade3ff14ede4a8d1481782776cf47be9..ef648a15b80656c23ca4a317ed563cfb7cd9687a 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Trace Network On Chip - TNOC
 
 maintainers:
-  - Yuanfang Zhang <quic_yuanfang@quicinc.com>
+  - Yuanfang Zhang <yuanfang.zhang@oss.qualcomm.com>
 
 description: >
   The Trace Network On Chip (TNOC) is an integration hierarchy hardware
index a48c9ac3eaa9242d6ac239a045a7c1be345aa3b1..70d297b054c3f1ffe01ece28ab839d60b5e76f90 100644 (file)
@@ -33,8 +33,8 @@ description: |
   to sink.
 
 maintainers:
-  - Mao Jinlong <quic_jinlmao@quicinc.com>
-  - Tao Zhang <quic_taozha@quicinc.com>
+  - Mao Jinlong <jinlong.mao@oss.qualcomm.com>
+  - Tao Zhang <tao.zhang@oss.qualcomm.com>
 
 # Need a custom select here or 'arm,primecell' will match on lots of nodes
 select:
index c349306f0d520eb19116876143338cd00cc6a81f..152403f548c3727b5e45e5b665e293b53f177f43 100644 (file)
@@ -19,8 +19,8 @@ description: |
   sources and send it to a TPDA for packetization, timestamping, and funneling.
 
 maintainers:
-  - Mao Jinlong <quic_jinlmao@quicinc.com>
-  - Tao Zhang <quic_taozha@quicinc.com>
+  - Mao Jinlong <jinlong.mao@oss.qualcomm.com>
+  - Tao Zhang <tao.zhang@oss.qualcomm.com>
 
 # Need a custom select here or 'arm,primecell' will match on lots of nodes
 select:
index d84bd3bca2010508a8225b9549d8c634efa06531..d48c625d3fc42f1a90f76a020753ae4daec8c5ea 100644 (file)
@@ -61,6 +61,11 @@ properties:
               - qcom,apq8084-sbc
           - const: qcom,apq8084
 
+      - items:
+          - enum:
+              - fairphone,fp6
+          - const: qcom,milos
+
       - items:
           - enum:
               - microsoft,dempsey
@@ -327,6 +332,12 @@ properties:
               - qcom,ipq9574-ap-al02-c9
           - const: qcom,ipq9574
 
+      - items:
+          - enum:
+              - qcom,kaanapali-mtp
+              - qcom,kaanapali-qrd
+          - const: qcom,kaanapali
+
       - description: Sierra Wireless MangOH Green with WP8548 Module
         items:
           - const: swir,mangoh-green-wp8548
@@ -336,6 +347,7 @@ properties:
       - description: Qualcomm Technologies, Inc. Robotics RB1
         items:
           - enum:
+              - arduino,imola
               - qcom,qrb2210-rb1
           - const: qcom,qrb2210
           - const: qcom,qcm2290
@@ -348,6 +360,7 @@ properties:
               - qcom,qcs6490-rb3gen2
               - radxa,dragon-q6a
               - shift,otter
+              - thundercomm,rubikpi3
           - const: qcom,qcm6490
 
       - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
@@ -900,6 +913,8 @@ properties:
 
       - items:
           - enum:
+              - google,blueline
+              - google,crosshatch
               - huawei,planck
               - lenovo,yoga-c630
               - lg,judyln
@@ -1067,6 +1082,19 @@ properties:
           - const: qcom,x1e78100
           - const: qcom,x1e80100
 
+      - items:
+          - enum:
+              - medion,sprchrgd14s1
+              - tuxedo,elite14gen1
+          - const: qcom,x1e78100
+          - const: qcom,x1e80100
+
+      - items:
+          - const: microsoft,denali-lcd
+          - const: microsoft,denali
+          - const: qcom,x1p64100
+          - const: qcom,x1e80100
+
       - items:
           - enum:
               - asus,vivobook-s15
@@ -1089,6 +1117,11 @@ properties:
           - const: qcom,hamoa-iot-som
           - const: qcom,x1e80100
 
+      - items:
+          - const: microsoft,denali-oled
+          - const: microsoft,denali
+          - const: qcom,x1e80100
+
       - items:
           - enum:
               - asus,zenbook-a14-ux3407qa-lcd
index ddd9a85099e91c899fe207b3a792d3242ca3c276..be529490640c0d43f9daceb6b1c6940751614984 100644 (file)
@@ -14,21 +14,21 @@ properties:
     const: '/'
   compatible:
     oneOf:
-      # RTD1195 SoC based boards
-      - items:
+      - description: RTD1195 SoC based boards
+        items:
           - enum:
               - mele,x1000 # MeLE X1000
               - realtek,horseradish # Realtek Horseradish EVB
           - const: realtek,rtd1195
 
-      # RTD1293 SoC based boards
-      - items:
+      - description: RTD1293 SoC based boards
+        items:
           - enum:
               - synology,ds418j # Synology DiskStation DS418j
           - const: realtek,rtd1293
 
-      # RTD1295 SoC based boards
-      - items:
+      - description: RTD1295 SoC based boards
+        items:
           - enum:
               - mele,v9 # MeLE V9
               - probox2,ava # ProBox2 AVA
@@ -36,25 +36,43 @@ properties:
               - zidoo,x9s # Zidoo X9S
           - const: realtek,rtd1295
 
-      # RTD1296 SoC based boards
-      - items:
+      - description: RTD1296 SoC based boards
+        items:
           - enum:
               - synology,ds418 # Synology DiskStation DS418
           - const: realtek,rtd1296
 
-      # RTD1395 SoC based boards
-      - items:
+      - description: RTD1395 SoC based boards
+        items:
           - enum:
               - bananapi,bpi-m4 # Banana Pi BPI-M4
               - realtek,lion-skin # Realtek Lion Skin EVB
           - const: realtek,rtd1395
 
-      # RTD1619 SoC based boards
-      - items:
+      - description: RTD1501s SoC based boards
+        items:
+          - enum:
+              - realtek,phantom # Realtek Phantom EVB (8GB)
+          - const: realtek,rtd1501s
+
+      - description: RTD1619 SoC based boards
+        items:
           - enum:
               - realtek,mjolnir # Realtek Mjolnir EVB
           - const: realtek,rtd1619
 
+      - description: RTD1861b SoC based boards
+        items:
+          - enum:
+              - realtek,krypton # Realtek Krypton EVB (8GB)
+          - const: realtek,rtd1861b
+
+      - description: RTD1920s SoC based boards
+        items:
+          - enum:
+              - realtek,smallville # Realtek Smallville EVB (4GB)
+          - const: realtek,rtd1920s
+
 additionalProperties: true
 
 ...
index d496421dbd87e5b0af5337778b7d8bc6b39eeca7..ae77ded9fe47a54afde1492d6286e312b78d2991 100644 (file)
@@ -60,6 +60,12 @@ properties:
               - anbernic,rg-arc-s
           - const: rockchip,rk3566
 
+      - description: Anbernic RK3568 Handheld Gaming Console
+        items:
+          - enum:
+              - anbernic,rg-ds
+          - const: rockchip,rk3568
+
       - description: Ariaboard Photonicat
         items:
           - const: ariaboard,photonicat
@@ -894,11 +900,15 @@ properties:
           - const: rockchip,rk3568
 
       - description: QNAP TS-x33 NAS devices
-        items:
-          - enum:
-              - qnap,ts233
-              - qnap,ts433
-          - const: rockchip,rk3568
+        oneOf:
+          - items:
+              - const: qnap,ts133
+              - const: rockchip,rk3566
+          - items:
+              - enum:
+                  - qnap,ts233
+                  - qnap,ts433
+              - const: rockchip,rk3568
 
       - description: Radxa Compute Module 3 (CM3)
         items:
@@ -907,13 +917,27 @@ properties:
           - const: radxa,cm3
           - const: rockchip,rk3566
 
-      - description: Radxa CM3 Industrial
+      - description: Radxa CM3I
         items:
           - enum:
               - radxa,e25
           - const: radxa,cm3i
           - const: rockchip,rk3568
 
+      - description: Radxa CM3J
+        items:
+          - enum:
+              - radxa,cm3j-rpi-cm4
+          - const: radxa,cm3j
+          - const: rockchip,rk3568
+
+      - description: Radxa CM5
+        items:
+          - enum:
+              - radxa,cm5-io
+          - const: radxa,cm5
+          - const: rockchip,rk3588s
+
       - description: Radxa E20C
         items:
           - const: radxa,e20c
@@ -1299,6 +1323,12 @@ properties:
               - xunlong,orangepi-5b
           - const: rockchip,rk3588s
 
+      - description: Xunlong Orange Pi CM5
+        items:
+          - const: xunlong,orangepi-cm5-base
+          - const: xunlong,orangepi-cm5
+          - const: rockchip,rk3588s
+
       - description: Zkmagic A95X Z2
         items:
           - const: zkmagic,a95x-z2
index be70819020c5af0d291e4aa93d11449ca816d3fe..dcd1c53765077f484c260ab996c4a0fce483412b 100644 (file)
@@ -19,15 +19,15 @@ properties:
       - nvidia,tegra264-pmc
 
   reg:
-    minItems: 4
+    minItems: 3
     maxItems: 5
 
   reg-names:
-    minItems: 4
+    minItems: 3
     items:
       - const: pmc
       - const: wake
-      - const: aotag
+      - enum: [ aotag, scratch, misc ]
       - enum: [ scratch, misc ]
       - const: misc
 
@@ -51,6 +51,7 @@ allOf:
     then:
       properties:
         reg:
+          minItems: 4
           maxItems: 4
         reg-names:
           maxItems: 4
@@ -73,7 +74,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: nvidia,tegra234-pmc
+            enum:
+              - nvidia,tegra234-pmc
+              - nvidia,tegra264-pmc
     then:
       properties:
         reg-names:
diff --git a/Bindings/arm/ti/ti,omap-prm-inst.yaml b/Bindings/arm/ti/ti,omap-prm-inst.yaml
new file mode 100644 (file)
index 0000000..2cce083
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/ti/ti,omap-prm-inst.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OMAP PRM instances
+
+maintainers:
+  - Aaro Koskinen <aaro.koskinen@iki.fi>
+  - Andreas Kemnade <andreas@kemnade.info>
+  - Kevin Hilman <khilman@baylibre.com>
+  - Roger Quadros <rogerq@kernel.org>
+  - Tony Lindgren <tony@atomide.com>
+
+description:
+  Power and Reset Manager is an IP block on OMAP family of devices which
+  handle the power domains and their current state, and provide reset
+  handling for the domains and/or separate IP blocks under the power domain
+  hierarchy.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - ti,am3-prm-inst
+          - ti,am4-prm-inst
+          - ti,omap4-prm-inst
+          - ti,omap5-prm-inst
+          - ti,dra7-prm-inst
+      - const: ti,omap-prm-inst
+
+  reg:
+    maxItems: 1
+
+  "#power-domain-cells":
+    const: 0
+
+  "#reset-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    reset-controller@1b00 {
+        compatible = "ti,dra7-prm-inst", "ti,omap-prm-inst";
+        reg = <0x1b00 0x40>;
+        #power-domain-cells = <0>;
+        #reset-cells = <1>;
+    };
index b74380da3198b2363197a36a147e13256878d7ea..41c53e3acc12cfc4d482937d43ed9e62d089b158 100644 (file)
@@ -103,7 +103,7 @@ required:
   - arm,vexpress,config-bridge
 
 patternProperties:
-  'clk[0-9]*$':
+  '^clock-controller.*$':
     type: object
     description:
       clocks
@@ -137,7 +137,7 @@ patternProperties:
       - arm,vexpress-sysreg,func
       - "#clock-cells"
 
-  "^volt-.+$":
+  "^regulator-.+$":
     $ref: /schemas/regulator/regulator.yaml#
     properties:
       compatible:
@@ -272,7 +272,7 @@ examples:
         compatible = "arm,vexpress,config-bus";
         arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-        clk0 {
+        clock-controller {
             compatible = "arm,vexpress-osc";
             arm,vexpress-sysreg,func = <1 0>;
             #clock-cells = <0>;
index cc35cdc02840f5315269c39ca49a75ab547b903b..cd67926aae4154026174448d5758dc78761aa502 100644 (file)
@@ -18,26 +18,6 @@ maintainers:
   - Hans de Goede <hdegoede@redhat.com>
   - Jens Axboe <axboe@kernel.dk>
 
-select:
-  properties:
-    compatible:
-      contains:
-        enum:
-          - brcm,iproc-ahci
-          - cavium,octeon-7130-ahci
-          - hisilicon,hisi-ahci
-          - ibm,476gtr-ahci
-          - marvell,armada-3700-ahci
-          - marvell,armada-8k-ahci
-          - marvell,berlin2q-ahci
-          - qcom,apq8064-ahci
-          - qcom,ipq806x-ahci
-          - socionext,uniphier-pro4-ahci
-          - socionext,uniphier-pxs2-ahci
-          - socionext,uniphier-pxs3-ahci
-  required:
-    - compatible
-
 properties:
   compatible:
     oneOf:
index 667f48c331959732e7877aa49ebd0026df7ea08c..bfafacfb317f1217a602f1f258ee7872a2051891 100644 (file)
@@ -54,4 +54,7 @@ $defs:
           each port can have a Port Multiplier attached thus allowing to
           access more than one drive by means of a single SATA port.
 
+      port:
+        $ref: /schemas/graph.yaml#/properties/port
+
 ...
index b90eec2077b4bdf838eec33408954d70becafdad..fe1272e86467ebde0f24abff1e6ceaefa3b07b64 100644 (file)
@@ -66,7 +66,7 @@ then:
   required:
     - refresh-rate-hz
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 2894256c976dbe9f3ff4f53a48cff190724b7fb5..77e60b32d52e693e2b8237dae8574acd13253308 100644 (file)
@@ -17,8 +17,10 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - aspeed,ast2600-ahbc
+    items:
+      - enum:
+          - aspeed,ast2600-ahbc
+      - const: syscon
 
   reg:
     maxItems: 1
@@ -32,6 +34,6 @@ additionalProperties: false
 examples:
   - |
     ahbc@1e600000 {
-        compatible = "aspeed,ast2600-ahbc";
+        compatible = "aspeed,ast2600-ahbc", "syscon";
         reg = <0x1e600000 0x100>;
     };
index d42dbb0bbc2ead5b3b76dd2b6536885ad7edbe25..00bbde203f598affb38b30298b63a7b12b31a102 100644 (file)
@@ -19,21 +19,29 @@ description: |
   the SDMA can access.  There are no special clocks for the bus, because
   the SDMA controller itself has its interrupt and clock assignments.
 
+  EMI (External Memory Interface) for legacy i.MX35.
+
 select:
   properties:
     compatible:
       contains:
-        const: fsl,spba-bus
+        enum:
+          - fsl,aips
+          - fsl,emi
+          - fsl,spba-bus
   required:
     - compatible
 
 properties:
   $nodename:
-    pattern: "^spba-bus(@[0-9a-f]+)?$"
+    pattern: "^((spba|emi)-bus|bus)(@[0-9a-f]+)?$"
 
   compatible:
     items:
-      - const: fsl,spba-bus
+      - enum:
+          - fsl,aips
+          - fsl,emi
+          - fsl,spba-bus
       - const: simple-bus
 
   '#address-cells':
index 4d19917ad2c305714ac4d09292f3fe92b37f55fd..c6280c8c54a3c2ce226c1d1386fa430b6419a3db 100644 (file)
@@ -54,7 +54,7 @@ properties:
     const: 1
 
   "#size-cells":
-    const: 1
+    enum: [ 1, 2 ]
 
   ranges: true
 
index a620a2ff5c5689aceb168055e4eeeabecff522cb..6671e461e34ab49043bd1f22b910d25546d2d24e 100644 (file)
@@ -20,6 +20,7 @@ description: |
 properties:
   compatible:
     enum:
+      - qcom,glymur-llcc
       - qcom,ipq5424-llcc
       - qcom,kaanapali-llcc
       - qcom,qcs615-llcc
@@ -46,11 +47,11 @@ properties:
 
   reg:
     minItems: 1
-    maxItems: 10
+    maxItems: 14
 
   reg-names:
     minItems: 1
-    maxItems: 10
+    maxItems: 14
 
   interrupts:
     maxItems: 1
@@ -84,6 +85,47 @@ allOf:
           items:
             - const: llcc0_base
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,glymur-llcc
+    then:
+      properties:
+        reg:
+          items:
+            - description: LLCC0 base register region
+            - description: LLCC1 base register region
+            - description: LLCC2 base register region
+            - description: LLCC3 base register region
+            - description: LLCC4 base register region
+            - description: LLCC5 base register region
+            - description: LLCC6 base register region
+            - description: LLCC7 base register region
+            - description: LLCC8 base register region
+            - description: LLCC9 base register region
+            - description: LLCC10 base register region
+            - description: LLCC11 base register region
+            - description: LLCC broadcast base register region
+            - description: LLCC broadcast AND register region
+        reg-names:
+          items:
+            - const: llcc0_base
+            - const: llcc1_base
+            - const: llcc2_base
+            - const: llcc3_base
+            - const: llcc4_base
+            - const: llcc5_base
+            - const: llcc6_base
+            - const: llcc7_base
+            - const: llcc8_base
+            - const: llcc9_base
+            - const: llcc10_base
+            - const: llcc11_base
+            - const: llcc_broadcast_base
+            - const: llcc_broadcast_and_base
+
   - if:
       properties:
         compatible:
diff --git a/Bindings/clock/amlogic,t7-peripherals-clkc.yaml b/Bindings/clock/amlogic,t7-peripherals-clkc.yaml
new file mode 100644 (file)
index 0000000..55bb737
--- /dev/null
@@ -0,0 +1,116 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,t7-peripherals-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic T7 Peripherals Clock Controller
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+  - Jerome Brunet <jbrunet@baylibre.com>
+  - Xianwei Zhao <xianwei.zhao@amlogic.com>
+  - Jian Hu <jian.hu@amlogic.com>
+
+properties:
+  compatible:
+    const: amlogic,t7-peripherals-clkc
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  clocks:
+    minItems: 14
+    items:
+      - description: input oscillator
+      - description: input sys clk
+      - description: input fixed pll
+      - description: input fclk div 2
+      - description: input fclk div 2p5
+      - description: input fclk div 3
+      - description: input fclk div 4
+      - description: input fclk div 5
+      - description: input fclk div 7
+      - description: input hifi pll
+      - description: input gp0 pll
+      - description: input gp1 pll
+      - description: input mpll1
+      - description: input mpll2
+      - description: external input rmii oscillator (optional)
+      - description: input video pll0 (optional)
+      - description: external pad input for rtc (optional)
+
+  clock-names:
+    minItems: 14
+    items:
+      - const: xtal
+      - const: sys
+      - const: fix
+      - const: fdiv2
+      - const: fdiv2p5
+      - const: fdiv3
+      - const: fdiv4
+      - const: fdiv5
+      - const: fdiv7
+      - const: hifi
+      - const: gp0
+      - const: gp1
+      - const: mpll1
+      - const: mpll2
+      - const: ext_rmii
+      - const: vid_pll0
+      - const: ext_rtc
+
+required:
+  - compatible
+  - '#clock-cells'
+  - reg
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    apb {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clkc_periphs:clock-controller@0 {
+            compatible = "amlogic,t7-peripherals-clkc";
+            reg = <0 0x0 0 0x1c8>;
+            #clock-cells = <1>;
+            clocks = <&xtal>,
+                     <&scmi_clk 13>,
+                     <&scmi_clk 16>,
+                     <&scmi_clk 18>,
+                     <&scmi_clk 20>,
+                     <&scmi_clk 22>,
+                     <&scmi_clk 24>,
+                     <&scmi_clk 26>,
+                     <&scmi_clk 28>,
+                     <&hifi 1>,
+                     <&gp0 1>,
+                     <&gp1 1>,
+                     <&mpll 4>,
+                     <&mpll 6>;
+            clock-names = "xtal",
+                          "sys",
+                          "fix",
+                          "fdiv2",
+                          "fdiv2p5",
+                          "fdiv3",
+                          "fdiv4",
+                          "fdiv5",
+                          "fdiv7",
+                          "hifi",
+                          "gp0",
+                          "gp1",
+                          "mpll1",
+                          "mpll2";
+        };
+    };
diff --git a/Bindings/clock/amlogic,t7-pll-clkc.yaml b/Bindings/clock/amlogic,t7-pll-clkc.yaml
new file mode 100644 (file)
index 0000000..49c61f6
--- /dev/null
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,t7-pll-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic T7 PLL Clock Control Controller
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+  - Jerome Brunet <jbrunet@baylibre.com>
+  - Jian Hu <jian.hu@amlogic.com>
+  - Xianwei Zhao <xianwei.zhao@amlogic.com>
+
+properties:
+  compatible:
+    enum:
+      - amlogic,t7-gp0-pll
+      - amlogic,t7-gp1-pll
+      - amlogic,t7-hifi-pll
+      - amlogic,t7-pcie-pll
+      - amlogic,t7-mpll
+      - amlogic,t7-hdmi-pll
+      - amlogic,t7-mclk-pll
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  clocks:
+    items:
+      - description: mclk pll input oscillator gate
+      - description: oscillator input clock source for mclk_sel_0
+      - description: fixed input clock source for mclk_sel_0
+    minItems: 1
+
+  clock-names:
+    items:
+      - const: in0
+      - const: in1
+      - const: in2
+    minItems: 1
+
+required:
+  - compatible
+  - '#clock-cells'
+  - reg
+  - clocks
+  - clock-names
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: amlogic,t7-mclk-pll
+
+    then:
+      properties:
+        clocks:
+          minItems: 3
+
+        clock-names:
+          minItems: 3
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - amlogic,t7-gp0-pll
+              - amlogic,t7-gp1--pll
+              - amlogic,t7-hifi-pll
+              - amlogic,t7-pcie-pll
+              - amlogic,t7-mpll
+              - amlogic,t7-hdmi-pll
+
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+
+        clock-names:
+          maxItems: 1
+
+additionalProperties: false
+
+examples:
+  - |
+    apb {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@8080 {
+            compatible = "amlogic,t7-gp0-pll";
+            reg = <0 0x8080 0 0x20>;
+            clocks = <&scmi_clk 2>;
+            clock-names = "in0";
+            #clock-cells = <1>;
+        };
+
+        clock-controller@8300 {
+            compatible = "amlogic,t7-mclk-pll";
+            reg = <0 0x8300 0 0x18>;
+            clocks = <&scmi_clk 2>,
+                     <&xtal>,
+                     <&scmi_clk 31>;
+            clock-names = "in0", "in1", "in2";
+            #clock-cells = <1>;
+        };
+    };
index 31e106ef913dead9a038b3b6d8b43b950587f6aa..5122c5827718a3e3defbbecd926ec40e16574529 100644 (file)
@@ -29,9 +29,10 @@ properties:
     enum:
       - google,gs101-cmu-top
       - google,gs101-cmu-apm
-      - google,gs101-cmu-misc
+      - google,gs101-cmu-dpu
       - google,gs101-cmu-hsi0
       - google,gs101-cmu-hsi2
+      - google,gs101-cmu-misc
       - google,gs101-cmu-peric0
       - google,gs101-cmu-peric1
 
@@ -52,6 +53,11 @@ properties:
   reg:
     maxItems: 1
 
+  samsung,sysreg:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to system registers interface.
+
 required:
   - compatible
   - "#clock-cells"
@@ -77,6 +83,24 @@ allOf:
           items:
             - const: oscclk
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-cmu-dpu
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (24.576 MHz)
+            - description: DPU bus clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: bus
+
   - if:
       properties:
         compatible:
@@ -166,6 +190,18 @@ allOf:
             - const: bus
             - const: ip
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-cmu-top
+    then:
+      properties:
+        samsung,sysreg: false
+    else:
+      required:
+        - samsung,sysreg
+
 additionalProperties: false
 
 examples:
@@ -175,7 +211,7 @@ examples:
 
     cmu_top: clock-controller@1e080000 {
         compatible = "google,gs101-cmu-top";
-        reg = <0x1e080000 0x8000>;
+        reg = <0x1e080000 0x10000>;
         #clock-cells = <1>;
         clocks = <&ext_24_5m>;
         clock-names = "oscclk";
index 9c3913f9092cbcc4b18cd14101750fb9f2d683ce..c77111d10f9058c6c09ebb732f36807ad2b9793f 100644 (file)
@@ -14,11 +14,9 @@ maintainers:
 
 properties:
   compatible:
-    oneOf:
-      - items:
-          - const: mediatek,mt7622-pciesys
-          - const: syscon
-      - const: mediatek,mt7629-pciesys
+    enum:
+      - mediatek,mt7622-pciesys
+      - mediatek,mt7629-pciesys
 
   reg:
     maxItems: 1
@@ -40,7 +38,7 @@ additionalProperties: false
 examples:
   - |
     clock-controller@1a100800 {
-        compatible = "mediatek,mt7622-pciesys", "syscon";
+        compatible = "mediatek,mt7622-pciesys";
         reg = <0x1a100800 0x1000>;
         #clock-cells = <1>;
         #reset-cells = <1>;
index f1770360798ffab620aac1c2542cfb9f9ac01444..9a6b50527c428979bdd7e2e8e1bf7c7d73d3afba 100644 (file)
@@ -17,7 +17,11 @@ description: |
 
 properties:
   compatible:
-    const: microchip,mpfs-ccc
+    oneOf:
+      - items:
+          - const: microchip,pic64gx-ccc
+          - const: microchip,mpfs-ccc
+      - const: microchip,mpfs-ccc
 
   reg:
     items:
index ee4f31596d9788cb35f2177b9cc7e53fbb5a4879..a23703c281d16fe65559e289e8fca473843de1f6 100644 (file)
@@ -19,7 +19,11 @@ description: |
 
 properties:
   compatible:
-    const: microchip,mpfs-clkcfg
+    oneOf:
+      - items:
+          - const: microchip,pic64gx-clkcfg
+          - const: microchip,mpfs-clkcfg
+      - const: microchip,mpfs-clkcfg
 
   reg:
     oneOf:
@@ -69,6 +73,16 @@ required:
   - clocks
   - '#clock-cells'
 
+if:
+  properties:
+    compatible:
+      contains:
+        const: microchip,pic64gx-clkcfg
+then:
+  properties:
+    reg:
+      maxItems: 1
+
 additionalProperties: false
 
 examples:
index f2e37f439d28b3ec066f407927955b3b82b5c10a..ced3118c85800e2e45c4538ba5c56bd8cc228f10 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/clock/qcom,gcc-msm8953.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Qualcomm Global Clock & Reset Controller on MSM8953
+title: Qualcomm Global Clock & Reset Controller on MSM8937, MSM8940, MSM8953 and SDM439
 
 maintainers:
   - Adam Skladowski <a_skl39@protonmail.com>
@@ -13,7 +13,7 @@ maintainers:
 
 description: |
   Qualcomm global clock control module provides the clocks, resets and power
-  domains on MSM8937 or MSM8953.
+  domains on MSM8937, MSM8940, MSM8953 or SDM439.
 
   See also::
     include/dt-bindings/clock/qcom,gcc-msm8917.h
@@ -23,7 +23,9 @@ properties:
   compatible:
     enum:
       - qcom,gcc-msm8937
+      - qcom,gcc-msm8940
       - qcom,gcc-msm8953
+      - qcom,gcc-sdm439
 
   clocks:
     items:
diff --git a/Bindings/clock/qcom,kaanapali-gxclkctl.yaml b/Bindings/clock/qcom,kaanapali-gxclkctl.yaml
new file mode 100644 (file)
index 0000000..5490a97
--- /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/clock/qcom,kaanapali-gxclkctl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Graphics power domain Controller on Kaanapali
+
+maintainers:
+  - Taniya Das <taniya.das@oss.qualcomm.com>
+
+description: |
+  Qualcomm GX(graphics) is a clock controller which has PLLs, clocks and
+  Power domains (GDSC). This module provides the power domains control
+  of gxclkctl on Qualcomm SoCs which helps the recovery of Graphics subsystem.
+
+  See also:
+    include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,kaanapali-gxclkctl
+
+  power-domains:
+    description:
+      Power domains required for the clock controller to operate
+    items:
+      - description: GFX power domain
+      - description: GMXC power domain
+      - description: GPUCC(CX) power domain
+
+  '#power-domain-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - power-domains
+  - '#power-domain-cells'
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@3d64000 {
+            compatible = "qcom,kaanapali-gxclkctl";
+            reg = <0x0 0x03d64000 0x0 0x6000>;
+            power-domains = <&rpmhpd RPMHPD_GFX>,
+                            <&rpmhpd RPMHPD_GMXC>,
+                            <&gpucc 0>;
+            #power-domain-cells = <1>;
+        };
+    };
+...
index c1e06f39431e68a3cd2f6c2dba84be2a3c143bb1..8492a7ef73245e4440d6e30c2fd942319126458e 100644 (file)
@@ -9,23 +9,32 @@ title: Qualcomm Camera Clock & Reset Controller on SM8450
 maintainers:
   - Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
   - Jagadeesh Kona <quic_jkona@quicinc.com>
+  - Taniya Das <taniya.das@oss.qualcomm.com>
 
 description: |
   Qualcomm camera clock control module provides the clocks, resets and power
   domains on SM8450.
 
   See also:
+    include/dt-bindings/clock/qcom,kaanapali-camcc.h
+    include/dt-bindings/clock/qcom,kaanapali-cambistmclkcc.h
     include/dt-bindings/clock/qcom,sm8450-camcc.h
     include/dt-bindings/clock/qcom,sm8550-camcc.h
     include/dt-bindings/clock/qcom,sm8650-camcc.h
+    include/dt-bindings/clock/qcom,sm8750-cambistmclkcc.h
+    include/dt-bindings/clock/qcom,sm8750-camcc.h
 
 properties:
   compatible:
     enum:
+      - qcom,kaanapali-cambistmclkcc
+      - qcom,kaanapali-camcc
       - qcom,sm8450-camcc
       - qcom,sm8475-camcc
       - qcom,sm8550-camcc
       - qcom,sm8650-camcc
+      - qcom,sm8750-cambistmclkcc
+      - qcom,sm8750-camcc
 
   clocks:
     items:
@@ -63,6 +72,8 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,kaanapali-cambistmclkcc
+              - qcom,kaanapali-camcc
               - qcom,sc8280xp-camcc
               - qcom,sm8450-camcc
               - qcom,sm8550-camcc
index 44380f6f81368339c2b264bde4d8ad9a23baca72..6feaa32569f9a852c2049fee00ee7a2e2aefb558 100644 (file)
@@ -14,6 +14,7 @@ description: |
   domains on Qualcomm SoCs.
 
   See also::
+    include/dt-bindings/clock/qcom,kaanapali-gpucc.h
     include/dt-bindings/clock/qcom,milos-gpucc.h
     include/dt-bindings/clock/qcom,sar2130p-gpucc.h
     include/dt-bindings/clock/qcom,sm4450-gpucc.h
@@ -26,6 +27,7 @@ description: |
 properties:
   compatible:
     enum:
+      - qcom,kaanapali-gpucc
       - qcom,milos-gpucc
       - qcom,sar2130p-gpucc
       - qcom,sm4450-gpucc
index b31bd833552937fa896f69966cfe5c79d9cfdd21..e6beebd6a36ee1ce213a816f60df8a76fa5c44d6 100644 (file)
@@ -15,6 +15,7 @@ description: |
   domains on SM8450.
 
   See also:
+    include/dt-bindings/clock/qcom,kaanapali-videocc.h
     include/dt-bindings/clock/qcom,sm8450-videocc.h
     include/dt-bindings/clock/qcom,sm8650-videocc.h
     include/dt-bindings/clock/qcom,sm8750-videocc.h
@@ -22,6 +23,7 @@ description: |
 properties:
   compatible:
     enum:
+      - qcom,kaanapali-videocc
       - qcom,sm8450-videocc
       - qcom,sm8475-videocc
       - qcom,sm8550-videocc
@@ -61,6 +63,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,kaanapali-videocc
               - qcom,sm8450-videocc
               - qcom,sm8550-videocc
               - qcom,sm8750-videocc
index 30e4b46315752b93754ab2f946c684e13b06ab93..591ce91b8d54dd6f78a66d029882bcd94b53beda 100644 (file)
@@ -15,6 +15,7 @@ description: |
   domains on SM8550, SM8650, SM8750 and few other platforms.
 
   See also:
+  - include/dt-bindings/clock/qcom,kaanapali-dispcc.h
   - include/dt-bindings/clock/qcom,sm8550-dispcc.h
   - include/dt-bindings/clock/qcom,sm8650-dispcc.h
   - include/dt-bindings/clock/qcom,sm8750-dispcc.h
@@ -23,6 +24,7 @@ description: |
 properties:
   compatible:
     enum:
+      - qcom,kaanapali-dispcc
       - qcom,sar2130p-dispcc
       - qcom,sm8550-dispcc
       - qcom,sm8650-dispcc
index 1b15b507095455c93b1ba39404cafbb6f96be5a9..881a5dd8d06f924a4627db5f8d17ad147a1011dd 100644 (file)
@@ -62,6 +62,9 @@ properties:
       - description: USB4_1 PHY max PIPE clock source
       - description: USB4_2 PHY PCIE PIPE clock source
       - description: USB4_2 PHY max PIPE 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
 
   power-domains:
     description:
@@ -121,7 +124,10 @@ examples:
                <&usb4_1_phy_pcie_pipe_clk>,
                <&usb4_1_phy_max_pipe_clk>,
                <&usb4_2_phy_pcie_pipe_clk>,
-               <&usb4_2_phy_max_pipe_clk>;
+               <&usb4_2_phy_max_pipe_clk>,
+               <&ufs_phy_rx_symbol_0>,
+               <&ufs_phy_rx_symbol_1>,
+               <&ufs_phy_tx_symbol_0>;
       power-domains = <&rpmhpd RPMHPD_CX>;
       #clock-cells = <1>;
       #reset-cells = <1>;
index af6319697b1c04bb7e4fc814a07b1670499f5886..a85f78ce29702c5fa1bdb02ae0e5f7f6b032de88 100644 (file)
@@ -62,7 +62,7 @@ properties:
     description: Output clock down spread in pcm (1/1000 of percent)
 
 patternProperties:
-  "^DIF[0-19]$":
+  "^DIF1?[0-9]$":
     type: object
     description:
       Description of one of the outputs (DIF0..DIF19).
@@ -107,6 +107,15 @@ examples:
             DIF0 {
                 renesas,slew-rate = <3000000>;
             };
+
+            /* Not present on 9FGV0241, used for DT validation only */
+            DIF2 {
+                renesas,slew-rate = <2000000>;
+            };
+
+            DIF19 {
+                renesas,slew-rate = <3000000>;
+            };
         };
     };
 
index 5bf905f88a1ac1306f32b873f57f552b61b64a4d..1318720193b3ddc5e5a0154f10261567bc166b29 100644 (file)
@@ -40,6 +40,7 @@ properties:
       - samsung,exynosautov920-cmu-hsi2
       - samsung,exynosautov920-cmu-m2m
       - samsung,exynosautov920-cmu-mfc
+      - samsung,exynosautov920-cmu-mfd
       - samsung,exynosautov920-cmu-misc
       - samsung,exynosautov920-cmu-peric0
       - samsung,exynosautov920-cmu-peric1
@@ -268,6 +269,24 @@ allOf:
             - const: mfc
             - const: wfd
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov920-cmu-mfd
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (38.4 MHz)
+            - description: CMU_MFD NOC clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: noc
+
 required:
   - compatible
   - "#clock-cells"
index 06bafd68c00a0997fb4546a5e0509327d4d51983..cddf6a56dac03cc6af9eb8e435cc8c1b74f8edb0 100644 (file)
@@ -4,14 +4,16 @@
 $id: http://devicetree.org/schemas/clock/spacemit,k1-pll.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: SpacemiT K1 PLL
+title: SpacemiT K1/K3 PLL
 
 maintainers:
   - Haylen Chu <heylenay@4d2.org>
 
 properties:
   compatible:
-    const: spacemit,k1-pll
+    enum:
+      - spacemit,k1-pll
+      - spacemit,k3-pll
 
   reg:
     maxItems: 1
@@ -28,7 +30,8 @@ properties:
   "#clock-cells":
     const: 1
     description:
-      See <dt-bindings/clock/spacemit,k1-syscon.h> for valid indices.
+      For K1 SoC, check <dt-bindings/clock/spacemit,k1-syscon.h> for valid indices.
+      For K3 SoC, check <dt-bindings/clock/spacemit,k3-clocks.h> for valid indices.
 
 required:
   - compatible
diff --git a/Bindings/connector/pcie-m2-m-connector.yaml b/Bindings/connector/pcie-m2-m-connector.yaml
new file mode 100644 (file)
index 0000000..36a99a3
--- /dev/null
@@ -0,0 +1,145 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/connector/pcie-m2-m-connector.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PCIe M.2 Mechanical Key M Connector
+
+maintainers:
+  - Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
+
+description:
+  A PCIe M.2 M connector node represents a physical PCIe M.2 Mechanical Key M
+  connector. The Mechanical Key M connectors are used to connect SSDs to the
+  host system over PCIe/SATA interfaces. These connectors also offer optional
+  interfaces like USB, SMBus.
+
+properties:
+  compatible:
+    const: pcie-m2-m-connector
+
+  vpcie3v3-supply:
+    description: A phandle to the regulator for 3.3v supply.
+
+  vpcie1v8-supply:
+    description: A phandle to the regulator for VIO 1.8v supply.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    description: OF graph bindings modeling the interfaces exposed on the
+      connector. Since a single connector can have multiple interfaces, every
+      interface has an assigned OF graph port number as described below.
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: PCIe interface
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: SATA interface
+
+      port@2:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: USB 2.0 interface
+
+    anyOf:
+      - required:
+          - port@0
+      - required:
+          - port@1
+
+  i2c-parent:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: I2C interface
+
+  clocks:
+    description: 32.768 KHz Suspend Clock (SUSCLK) input from the host system to
+      the M.2 card. Refer, PCI Express M.2 Specification r4.0, sec 3.1.12.1 for
+      more details.
+    maxItems: 1
+
+  pedet-gpios:
+    description: GPIO input to PEDET signal. This signal is used by the host
+      systems to determine the communication protocol that the M.2 card uses;
+      SATA signaling (low) or PCIe signaling (high). Refer, PCI Express M.2
+      Specification r4.0, sec 3.3.4.2 for more details.
+    maxItems: 1
+
+  viocfg-gpios:
+    description: GPIO input to IO voltage configuration (VIO_CFG) signal. This
+      signal is used by the host systems to determine whether the card supports
+      an independent IO voltage domain for the sideband signals or not. Refer,
+      PCI Express M.2 Specification r4.0, sec 3.1.15.1 for more details.
+    maxItems: 1
+
+  pwrdis-gpios:
+    description: GPIO output to Power Disable (PWRDIS) signal. This signal is
+      used by the host system to disable power on the M.2 card. Refer, PCI
+      Express M.2 Specification r4.0, sec 3.3.5.2 for more details.
+    maxItems: 1
+
+  pln-gpios:
+    description: GPIO output to Power Loss Notification (PLN#) signal. This
+      signal is used by the host system to notify the M.2 card that the power
+      loss event is about to occur. Refer, PCI Express M.2 Specification r4.0,
+      sec 3.2.17.1 for more details.
+    maxItems: 1
+
+  plas3-gpios:
+    description: GPIO input to Power Loss Acknowledge (PLA_S3#) signal. This
+      signal is used by the host system to receive the acknowledgment of the M.2
+      card's preparation for power loss.
+    maxItems: 1
+
+required:
+  - compatible
+  - vpcie3v3-supply
+
+additionalProperties: false
+
+examples:
+  # PCI M.2 Key M connector for SSDs with PCIe interface
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    connector {
+        compatible = "pcie-m2-m-connector";
+        vpcie3v3-supply = <&vreg_nvme>;
+        i2c-parent = <&i2c0>;
+        pedet-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
+        viocfg-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+        pwrdis-gpios = <&tlmm 97 GPIO_ACTIVE_HIGH>;
+        pln-gpios = <&tlmm 98 GPIO_ACTIVE_LOW>;
+        plas3-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            port@0 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                reg = <0>;
+
+                endpoint@0 {
+                    reg = <0>;
+                    remote-endpoint = <&pcie6_port0_ep>;
+                };
+            };
+
+            port@2 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                reg = <2>;
+
+                endpoint@0 {
+                    reg = <0>;
+                    remote-endpoint = <&usb_hs_ep>;
+                };
+            };
+        };
+    };
index 11e40d225b9f3a0d0aeea7bf764f1c00a719d615..d97b29e49bf55b8f9bb560d74908757b2d62e0c3 100644 (file)
@@ -301,6 +301,7 @@ properties:
     maxItems: 4
 
 dependencies:
+  pd-disable: [typec-power-opmode]
   sink-vdos-v1: [ sink-vdos ]
   sink-vdos: [ sink-vdos-v1 ]
 
index 2d42fc3d8ef811368c990977173f41b26535e0c8..22eeaef14f557d615b06ec13e71daf86018fcdc9 100644 (file)
@@ -35,6 +35,7 @@ properties:
       - description: v2 of CPUFREQ HW (EPSS)
         items:
           - enum:
+              - qcom,milos-cpufreq-epss
               - qcom,qcs8300-cpufreq-epss
               - qcom,qdu1000-cpufreq-epss
               - qcom,sa8255p-cpufreq-epss
@@ -169,6 +170,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,milos-cpufreq-epss
               - qcom,qcs8300-cpufreq-epss
               - qcom,sc7280-cpufreq-epss
               - qcom,sm8250-cpufreq-epss
index b18f178aac0634475b34af3501500630d08db734..0dac6ee5043e048cbde3b4a48bebfd7134e40949 100644 (file)
@@ -30,11 +30,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  aspeed,ahbc:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      A phandle to the AHB controller node, which must be a syscon
+
 required:
   - compatible
   - reg
   - clocks
   - interrupts
+  - aspeed,ahbc
 
 additionalProperties: false
 
@@ -46,4 +52,5 @@ examples:
         reg = <0x1e6fa000 0x400>, <0x1e710000 0x1800>;
         interrupts = <160>;
         clocks = <&syscon ASPEED_CLK_GATE_RSACLK>;
+        aspeed,ahbc = <&ahbc>;
     };
index 19010f90198a143de5951e1800db19bde5e36e09..f3b6af6baf159341815a09b9a7b749b4366c0c3c 100644 (file)
@@ -16,6 +16,7 @@ properties:
       - const: atmel,at91sam9g46-aes
       - items:
           - enum:
+              - microchip,lan9691-aes
               - microchip,sam9x7-aes
               - microchip,sama7d65-aes
           - const: atmel,at91sam9g46-aes
index 39e076b275b3942a0885ffbd161ed36794453eea..16704ff0dd7f0743d7c3462ae372d2ffcd1217f4 100644 (file)
@@ -16,6 +16,7 @@ properties:
       - const: atmel,at91sam9g46-sha
       - items:
           - enum:
+              - microchip,lan9691-sha
               - microchip,sam9x7-sha
               - microchip,sama7d65-sha
           - const: atmel,at91sam9g46-sha
index 343e2d04c797d82b6f2d922482ceec471744fb8c..3dc6c5f89d327efa3f0467c23276b1a82d3dcc6e 100644 (file)
@@ -12,6 +12,14 @@ maintainers:
 properties:
   compatible:
     oneOf:
+      - items:
+          - const: marvell,armada-cp110-crypto
+          - const: inside-secure,safexcel-eip197b
+      - items:
+          - enum:
+              - marvell,armada-3700-crypto
+              - mediatek,mt7986-crypto
+          - const: inside-secure,safexcel-eip97ies
       - const: inside-secure,safexcel-eip197b
       - const: inside-secure,safexcel-eip197d
       - const: inside-secure,safexcel-eip97ies
@@ -26,9 +34,11 @@ properties:
     maxItems: 1
 
   interrupts:
+    minItems: 4
     maxItems: 6
 
   interrupt-names:
+    minItems: 4
     items:
       - const: ring0
       - const: ring1
@@ -65,6 +75,18 @@ allOf:
           minItems: 2
       required:
         - clock-names
+  - if:
+      properties:
+        compatible:
+          not:
+            contains:
+              const: mediatek,mt7986-crypto
+    then:
+      properties:
+        interrupts:
+          minItems: 6
+        interrupt-names:
+          minItems: 6
 
 additionalProperties: false
 
index c3408dcf5d2057270a732fe0e6744f4aa6496e06..061ff718b23d6d947f6fdfe5139ef66d4868eef8 100644 (file)
@@ -14,6 +14,7 @@ properties:
     items:
       - enum:
           - qcom,kaanapali-inline-crypto-engine
+          - qcom,milos-inline-crypto-engine
           - qcom,qcs8300-inline-crypto-engine
           - qcom,sa8775p-inline-crypto-engine
           - qcom,sc7180-inline-crypto-engine
index 597441d94cf1eef2fb4ab0b7bd9085bc1d40035c..41402599e9ab812127c4e7d4e5842bd7f91836ef 100644 (file)
@@ -21,6 +21,7 @@ properties:
               - qcom,ipq5424-trng
               - qcom,ipq9574-trng
               - qcom,kaanapali-trng
+              - qcom,milos-trng
               - qcom,qcs615-trng
               - qcom,qcs8300-trng
               - qcom,sa8255p-trng
@@ -30,6 +31,7 @@ properties:
               - qcom,sm8550-trng
               - qcom,sm8650-trng
               - qcom,sm8750-trng
+              - qcom,x1e80100-trng
           - const: qcom,trng
 
   reg:
index 8aead97a585b15ba648a573d1125efde19fd2e10..20134d1d0f491bb7ea2b88f55247787883cab46d 100644 (file)
@@ -14,6 +14,8 @@ description: |
   The ZynqMP AES-GCM hardened cryptographic accelerator is used to
   encrypt or decrypt the data with provided key and initialization vector.
 
+deprecated: true
+
 properties:
   compatible:
     const: xlnx,zynqmp-aes
index 07388bf2b90df60d7059959bd8cfdf6a311bb49f..49664101a3537365c35a1ad76d540cc98cc480f7 100644 (file)
@@ -59,6 +59,7 @@ required:
   - compatible
   - clocks
   - ports
+  - reg
 
 allOf:
   - if:
@@ -73,6 +74,15 @@ allOf:
         ports:
           properties:
             port@2: false
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: fsl,imx6sx-ldb
+    then:
+      required:
+        - reg-names
 
 additionalProperties: false
 
index 2cef25215798598b8249c6fe3c20600c8d7b2aa1..63f000ebc9c5ecf4332f34ad60d2e00747cb5da3 100644 (file)
@@ -79,7 +79,6 @@ properties:
 required:
   - compatible
   - reg
-  - reset-gpios
   - ports
 
 additionalProperties: false
index 4f7d3e9cf0c2291d8b6d4cd35e65357aef862bff..4f52e35d0253738c9cf817f4b355eaa8653eb15c 100644 (file)
@@ -33,6 +33,7 @@ properties:
     oneOf:
       - items:
           - enum:
+              - onnn,fin3385  # OnSemi FIN3385
               - ti,ds90c185   # For the TI DS90C185 FPD-Link Serializer
               - ti,ds90c187   # For the TI DS90C187 FPD-Link Serializer
               - ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
index 3fce9e698ea1d2ddaafe97c36402ded15ea6ff7c..1205c8e9de329bbc5b8e7d382486d2d1e37dd3ae 100644 (file)
@@ -19,6 +19,9 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+
   video-ports:
     $ref: /schemas/types.yaml#/definitions/uint32
     default: 0x230145
index 5a99d9b9635e78e9aec536423a0e8247067fac61..c20625b8425ef1b0765c4beda87acb68f5b74413 100644 (file)
@@ -14,16 +14,21 @@ description: |
   RZ/G2L alike family of SoC's. The encoder can operate in DSI mode, with
   up to four data lanes.
 
-allOf:
-  - $ref: /schemas/display/dsi-controller.yaml#
-
 properties:
   compatible:
-    items:
+    oneOf:
+      - items:
+          - enum:
+              - renesas,r9a07g044-mipi-dsi # RZ/G2{L,LC}
+              - renesas,r9a07g054-mipi-dsi # RZ/V2L
+          - const: renesas,rzg2l-mipi-dsi
+
+      - items:
+          - const: renesas,r9a09g056-mipi-dsi # RZ/V2N
+          - const: renesas,r9a09g057-mipi-dsi
+
       - enum:
-          - renesas,r9a07g044-mipi-dsi # RZ/G2{L,LC}
-          - renesas,r9a07g054-mipi-dsi # RZ/V2L
-      - const: renesas,rzg2l-mipi-dsi
+          - renesas,r9a09g057-mipi-dsi # RZ/V2H(P)
 
   reg:
     maxItems: 1
@@ -49,34 +54,56 @@ properties:
       - const: debug
 
   clocks:
-    items:
-      - description: DSI D-PHY PLL multiplied clock
-      - description: DSI D-PHY system clock
-      - description: DSI AXI bus clock
-      - description: DSI Register access clock
-      - description: DSI Video clock
-      - description: DSI D-PHY Escape mode transmit clock
+    oneOf:
+      - items:
+          - description: DSI D-PHY PLL multiplied clock
+          - description: DSI D-PHY system clock
+          - description: DSI AXI bus clock
+          - description: DSI Register access clock
+          - description: DSI Video clock
+          - description: DSI D-PHY Escape mode transmit clock
+      - items:
+          - description: DSI D-PHY PLL reference clock
+          - description: DSI AXI bus clock
+          - description: DSI Register access clock
+          - description: DSI Video clock
+          - description: DSI D-PHY Escape mode transmit clock
 
   clock-names:
-    items:
-      - const: pllclk
-      - const: sysclk
-      - const: aclk
-      - const: pclk
-      - const: vclk
-      - const: lpclk
+    oneOf:
+      - items:
+          - const: pllclk
+          - const: sysclk
+          - const: aclk
+          - const: pclk
+          - const: vclk
+          - const: lpclk
+      - items:
+          - const: pllrefclk
+          - const: aclk
+          - const: pclk
+          - const: vclk
+          - const: lpclk
 
   resets:
-    items:
-      - description: MIPI_DSI_CMN_RSTB
-      - description: MIPI_DSI_ARESET_N
-      - description: MIPI_DSI_PRESET_N
+    oneOf:
+      - items:
+          - description: MIPI_DSI_CMN_RSTB
+          - description: MIPI_DSI_ARESET_N
+          - description: MIPI_DSI_PRESET_N
+      - items:
+          - description: MIPI_DSI_ARESET_N
+          - description: MIPI_DSI_PRESET_N
 
   reset-names:
-    items:
-      - const: rst
-      - const: arst
-      - const: prst
+    oneOf:
+      - items:
+          - const: rst
+          - const: arst
+          - const: prst
+      - items:
+          - const: arst
+          - const: prst
 
   power-domains:
     maxItems: 1
@@ -130,6 +157,41 @@ required:
 
 unevaluatedProperties: false
 
+allOf:
+  - $ref: ../dsi-controller.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g057-mipi-dsi
+    then:
+      properties:
+        clocks:
+          maxItems: 5
+
+        clock-names:
+          maxItems: 5
+
+        resets:
+          maxItems: 2
+
+        reset-names:
+          maxItems: 2
+    else:
+      properties:
+        clocks:
+          minItems: 6
+
+        clock-names:
+          minItems: 6
+
+        resets:
+          minItems: 3
+
+        reset-names:
+          minItems: 3
+
 examples:
   - |
     #include <dt-bindings/clock/r9a07g044-cpg.h>
index 20c7e0a77802fb9c820a3cf3822b542b243367d6..e6808419f6254577d6e798ffac69b09ac4682475 100644 (file)
@@ -27,6 +27,7 @@ properties:
           - const: adi,adv7123
       - enum:
           - adi,adv7123
+          - algoltek,ag6311
           - asl-tek,cs5263
           - dumb-vga-dac
           - parade,ps185hdm
index 70f229dc4e0c4edbf4e70115fa60a5165d89ff98..75804114f71f7fa772964c375e5db87f2297f374 100644 (file)
@@ -117,7 +117,7 @@ properties:
                     - 1 # 3.5dB pre-emphasis
                     - 2 # 6dB pre-emphasis
 
-    oneOf:
+    anyOf:
       - required:
           - port@0
       - required:
diff --git a/Bindings/display/google,goldfish-fb.txt b/Bindings/display/google,goldfish-fb.txt
deleted file mode 100644 (file)
index 751fa9f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish framebuffer
-
-Android Goldfish framebuffer device used by Android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-fb"
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       display-controller@1f008000 {
-               compatible = "google,goldfish-fb";
-               interrupts = <0x10>;
-               reg = <0x1f008000 0x100>;
-       };
diff --git a/Bindings/display/google,goldfish-fb.yaml b/Bindings/display/google,goldfish-fb.yaml
new file mode 100644 (file)
index 0000000..36ed77c
--- /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/display/google,goldfish-fb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Framebuffer
+
+maintainers:
+  - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+description:
+  Android Goldfish framebuffer device used by Android emulator.
+
+properties:
+  compatible:
+    const: google,goldfish-fb
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    display@1f008000 {
+        compatible = "google,goldfish-fb";
+        reg = <0x1f008000 0x100>;
+        interrupts = <16>;
+    };
index ebda78db87a68bb7ab4b1ec642aeb87ccec7a170..02ddfaab5f56d006a0133c685cac20c128c5af8a 100644 (file)
@@ -253,7 +253,6 @@ allOf:
             enum:
               # these platforms support 2 streams MST on some interfaces,
               # others are SST only
-              - qcom,glymur-dp
               - qcom,sc8280xp-dp
               - qcom,x1e80100-dp
     then:
@@ -310,6 +309,26 @@ allOf:
           minItems: 6
           maxItems: 8
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              # these platforms support 2 streams MST on some interfaces,
+              # others are SST only, but all controllers have 4 ports
+              - qcom,glymur-dp
+    then:
+      properties:
+        reg:
+          minItems: 9
+          maxItems: 9
+        clocks:
+          minItems: 5
+          maxItems: 6
+        clocks-names:
+          minItems: 5
+          maxItems: 6
+
 unevaluatedProperties: false
 
 examples:
index 4400d4cce07227c2f8938f126c77213b2e4bb9a5..eb6d38dabb08e711ec71576c58f153eb9ad76d61 100644 (file)
@@ -15,6 +15,7 @@ properties:
       - items:
           - enum:
               - qcom,apq8064-dsi-ctrl
+              - qcom,kaanapali-dsi-ctrl
               - qcom,msm8226-dsi-ctrl
               - qcom,msm8916-dsi-ctrl
               - qcom,msm8953-dsi-ctrl
@@ -45,6 +46,11 @@ properties:
               - qcom,sm8650-dsi-ctrl
               - qcom,sm8750-dsi-ctrl
           - const: qcom,mdss-dsi-ctrl
+      - items:
+          - enum:
+              - qcom,qcs8300-dsi-ctrl
+          - const: qcom,sa8775p-dsi-ctrl
+          - const: qcom,mdss-dsi-ctrl
       - enum:
           - qcom,dsi-ctrl-6g-qcm2290
           - qcom,mdss-dsi-ctrl # This should always come with an SoC-specific compatible
@@ -369,6 +375,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,kaanapali-dsi-ctrl
               - qcom,sm8750-dsi-ctrl
     then:
       properties:
index 1ca820a500b725233e161f53cbbbd59406326876..9a9a6c4abf43dadc59e3f33266b883fc0b0f9ea9 100644 (file)
@@ -14,18 +14,25 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - qcom,dsi-phy-7nm
-      - qcom,dsi-phy-7nm-8150
-      - qcom,sa8775p-dsi-phy-5nm
-      - qcom,sar2130p-dsi-phy-5nm
-      - qcom,sc7280-dsi-phy-7nm
-      - qcom,sm6375-dsi-phy-7nm
-      - qcom,sm8350-dsi-phy-5nm
-      - qcom,sm8450-dsi-phy-5nm
-      - qcom,sm8550-dsi-phy-4nm
-      - qcom,sm8650-dsi-phy-4nm
-      - qcom,sm8750-dsi-phy-3nm
+    oneOf:
+      - items:
+          - enum:
+              - qcom,dsi-phy-7nm
+              - qcom,dsi-phy-7nm-8150
+              - qcom,kaanapali-dsi-phy-3nm
+              - qcom,sa8775p-dsi-phy-5nm
+              - qcom,sar2130p-dsi-phy-5nm
+              - qcom,sc7280-dsi-phy-7nm
+              - qcom,sm6375-dsi-phy-7nm
+              - qcom,sm8350-dsi-phy-5nm
+              - qcom,sm8450-dsi-phy-5nm
+              - qcom,sm8550-dsi-phy-4nm
+              - qcom,sm8650-dsi-phy-4nm
+              - qcom,sm8750-dsi-phy-3nm
+      - items:
+          - enum:
+              - qcom,qcs8300-dsi-phy-5nm
+          - const: qcom,sa8775p-dsi-phy-5nm
 
   reg:
     items:
index 826aafdcc20be4bbd7eba619f7fe172b6e9a5897..ec84b64d4c00b02d934ece984385d81da08ac545 100644 (file)
@@ -45,11 +45,11 @@ properties:
           - const: amd,imageon
 
   clocks:
-    minItems: 2
+    minItems: 1
     maxItems: 7
 
   clock-names:
-    minItems: 2
+    minItems: 1
     maxItems: 7
 
   reg:
@@ -378,35 +378,74 @@ allOf:
             - const: xo
               description: GPUCC clocksource clock
 
+      required:
+        - clocks
+        - clock-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,adreno-612.0
+    then:
+      properties:
+        clocks:
+          items:
+            - description: GPU Core clock
+
+        clock-names:
+          items:
+            - const: core
+
+        reg:
+          minItems: 3
+          maxItems: 3
+
         reg-names:
-          minItems: 1
           items:
             - const: kgsl_3d0_reg_memory
+            - const: cx_mem
             - const: cx_dbgc
 
       required:
         - clocks
         - clock-names
-    else:
-      if:
-        properties:
-          compatible:
-            contains:
-              oneOf:
-                - pattern: '^qcom,adreno-[67][0-9][0-9]\.[0-9]+$'
-                - pattern: '^qcom,adreno-[0-9a-f]{8}$'
-
-      then: # Starting with A6xx, the clocks are usually defined in the GMU node
-        properties:
-          clocks: false
-          clock-names: false
-
-          reg-names:
-            minItems: 1
-            items:
-              - const: kgsl_3d0_reg_memory
-              - const: cx_mem
-              - const: cx_dbgc
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,adreno-615.0
+              - qcom,adreno-618.0
+              - qcom,adreno-619.0
+              - qcom,adreno-621.0
+              - qcom,adreno-623.0
+              - qcom,adreno-630.2
+              - qcom,adreno-635.0
+              - qcom,adreno-640.1
+              - qcom,adreno-650.2
+              - qcom,adreno-660.1
+              - qcom,adreno-663.0
+              - qcom,adreno-680.1
+              - qcom,adreno-690.0
+              - qcom,adreno-730.1
+              - qcom,adreno-43030c00
+              - qcom,adreno-43050a01
+              - qcom,adreno-43050c01
+              - qcom,adreno-43051401
+
+    then: # Starting with A6xx, the clocks are usually defined in the GMU node
+      properties:
+        clocks: false
+        clock-names: false
+
+        reg-names:
+          minItems: 1
+          items:
+            - const: kgsl_3d0_reg_memory
+            - const: cx_mem
+            - const: cx_dbgc
 
 examples:
   - |
diff --git a/Bindings/display/msm/qcom,adreno-rgmu.yaml b/Bindings/display/msm/qcom,adreno-rgmu.yaml
new file mode 100644 (file)
index 0000000..bacc5b3
--- /dev/null
@@ -0,0 +1,126 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/display/msm/qcom,adreno-rgmu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RGMU attached to certain Adreno GPUs
+
+maintainers:
+  - Rob Clark <robin.clark@oss.qualcomm.com>
+
+description:
+  RGMU (Reduced Graphics Management Unit) IP is present in some GPUs that
+  belong to Adreno A6xx family. It is a small state machine that helps to
+  toggle the GX GDSC (connected to CX rail) to implement IFPC feature and save
+  power.
+
+properties:
+  compatible:
+    items:
+      - const: qcom,adreno-rgmu-612.0
+      - const: qcom,adreno-rgmu
+
+  reg:
+    items:
+      - description: Core RGMU registers
+
+  clocks:
+    items:
+      - description: GMU clock
+      - description: GPU CX clock
+      - description: GPU AXI clock
+      - description: GPU MEMNOC clock
+      - description: GPU SMMU vote clock
+
+  clock-names:
+    items:
+      - const: gmu
+      - const: cxo
+      - const: axi
+      - const: memnoc
+      - const: smmu_vote
+
+  power-domains:
+    items:
+      - description: CX GDSC power domain
+      - description: GX GDSC power domain
+
+  power-domain-names:
+    items:
+      - const: cx
+      - const: gx
+
+  interrupts:
+    items:
+      - description: GMU OOB interrupt
+      - description: GMU interrupt
+
+  interrupt-names:
+    items:
+      - const: oob
+      - const: gmu
+
+  operating-points-v2: true
+  opp-table:
+    type: object
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - power-domains
+  - power-domain-names
+  - interrupts
+  - interrupt-names
+  - operating-points-v2
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,qcs615-gpucc.h>
+    #include <dt-bindings/clock/qcom,qcs615-gcc.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    gmu@506a000 {
+        compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";
+
+        reg = <0x05000000 0x90000>;
+
+        clocks = <&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_HLOS1_VOTE_GPU_SMMU_CLK>;
+        clock-names = "gmu",
+                      "cxo",
+                      "axi",
+                      "memnoc",
+                      "smmu_vote";
+
+        power-domains = <&gpucc CX_GDSC>,
+                        <&gpucc GX_GDSC>;
+        power-domain-names = "cx",
+                             "gx";
+
+        interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "oob",
+                          "gmu";
+
+        operating-points-v2 = <&gmu_opp_table>;
+
+        gmu_opp_table: opp-table {
+            compatible = "operating-points-v2";
+
+            opp-200000000 {
+                opp-hz = /bits/ 64 <200000000>;
+                required-opps = <&rpmhpd_opp_low_svs>;
+            };
+        };
+    };
index 2329ed96e6cb37bf63a686e966aa81e690fc5dcd..64dde43373ac760ff49d2a0956a2af0e433c78de 100644 (file)
@@ -176,13 +176,17 @@ examples:
                 };
             };
 
-            displayport-controller@ae90000 {
+            displayport-controller@af54000 {
                 compatible = "qcom,glymur-dp";
-                reg = <0xae90000 0x200>,
-                      <0xae90200 0x200>,
-                      <0xae90400 0x600>,
-                      <0xae91000 0x400>,
-                      <0xae91400 0x400>;
+                reg = <0xaf54000 0x200>,
+                      <0xaf54200 0x200>,
+                      <0xaf55000 0xc00>,
+                      <0xaf56000 0x400>,
+                      <0xaf57000 0x400>,
+                      <0xaf58000 0x400>,
+                      <0xaf59000 0x400>,
+                      <0xaf5a000 0x600>,
+                      <0xaf5b000 0x600>;
 
                 interrupt-parent = <&mdss>;
                 interrupts = <12>;
diff --git a/Bindings/display/msm/qcom,kaanapali-mdss.yaml b/Bindings/display/msm/qcom,kaanapali-mdss.yaml
new file mode 100644 (file)
index 0000000..9f935de
--- /dev/null
@@ -0,0 +1,297 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/msm/qcom,kaanapali-mdss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Kaanapali Display MDSS
+
+maintainers:
+  - Yongxing Mou <yongxing.mou@oss.qualcomm.com>
+  - Yuanjie Yang <yuanjie.yang@oss.qualcomm.com>
+
+description:
+  Kaanapali 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,kaanapali-mdss
+
+  clocks:
+    items:
+      - description: Display AHB
+      - description: Display hf AXI
+      - description: Display core
+      - description: Display AHB SWI
+
+  iommus:
+    maxItems: 1
+
+  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
+    additionalProperties: true
+    properties:
+      compatible:
+        const: qcom,kaanapali-dpu
+
+  "^dsi@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        contains:
+          const: qcom,kaanapali-dsi-ctrl
+
+  "^phy@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        const: qcom,kaanapali-dsi-phy-3nm
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/interconnect/qcom,icc.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/phy/phy-qcom-qmp.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    display-subsystem@9800000 {
+        compatible = "qcom,kaanapali-mdss";
+        reg = <0x09800000 0x1000>;
+        reg-names = "mdss";
+
+        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+
+        clocks = <&disp_cc_mdss_ahb_clk>,
+                 <&gcc_disp_hf_axi_clk>,
+                 <&disp_cc_mdss_mdp_clk>,
+                 <&disp_cc_mdss_ahb_swi_clk>;
+        resets = <&disp_cc_mdss_core_bcr>;
+
+        power-domains = <&mdss_gdsc>;
+
+        iommus = <&apps_smmu 0x800 0x2>;
+
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+
+        display-controller@9801000 {
+            compatible = "qcom,kaanapali-dpu";
+            reg = <0x09801000 0x1c8000>,
+                  <0x09b16000 0x3000>;
+            reg-names = "mdp",
+                        "vbif";
+
+            interrupts-extended = <&mdss 0>;
+
+            clocks = <&gcc_disp_hf_axi_clk>,
+                     <&disp_cc_mdss_ahb_clk>,
+                     <&disp_cc_mdss_mdp_lut_clk>,
+                     <&disp_cc_mdss_mdp_clk>,
+                     <&disp_cc_mdss_vsync_clk>;
+            clock-names = "nrt_bus",
+                          "iface",
+                          "lut",
+                          "core",
+                          "vsync";
+
+            assigned-clocks = <&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>;
+                    };
+                };
+            };
+
+            mdp_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-156000000 {
+                    opp-hz = /bits/ 64 <156000000>;
+                    required-opps = <&rpmhpd_opp_low_svs_d1>;
+                };
+
+                opp-207000000 {
+                    opp-hz = /bits/ 64 <207000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-337000000 {
+                    opp-hz = /bits/ 64 <337000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-417000000 {
+                    opp-hz = /bits/ 64 <417000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+
+                opp-532000000 {
+                    opp-hz = /bits/ 64 <532000000>;
+                    required-opps = <&rpmhpd_opp_nom>;
+                };
+
+                opp-600000000 {
+                    opp-hz = /bits/ 64 <600000000>;
+                    required-opps = <&rpmhpd_opp_nom_l1>;
+                };
+
+                opp-650000000 {
+                    opp-hz = /bits/ 64 <650000000>;
+                    required-opps = <&rpmhpd_opp_turbo>;
+                };
+            };
+        };
+
+        dsi@9ac0000 {
+            compatible = "qcom,kaanapali-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+            reg = <0x09ac0000 0x1000>;
+            reg-names = "dsi_ctrl";
+
+            interrupts-extended = <&mdss 4>;
+
+            clocks = <&disp_cc_mdss_byte0_clk>,
+                     <&disp_cc_mdss_byte0_intf_clk>,
+                     <&disp_cc_mdss_pclk0_clk>,
+                     <&disp_cc_mdss_esc0_clk>,
+                     <&disp_cc_mdss_ahb_clk>,
+                     <&gcc_disp_hf_axi_clk>,
+                     <&mdss_dsi0_phy 1>,
+                     <&mdss_dsi0_phy 0>,
+                     <&disp_cc_esync0_clk>,
+                     <&disp_cc_osc_clk>,
+                     <&disp_cc_mdss_byte0_clk_src>,
+                     <&disp_cc_mdss_pclk0_clk_src>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus",
+                          "dsi_pll_pixel",
+                          "dsi_pll_byte",
+                          "esync",
+                          "osc",
+                          "byte_src",
+                          "pixel_src";
+
+            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>;
+
+            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 {
+                        remote-endpoint = <&panel0_in>;
+                        data-lanes = <0 1 2 3>;
+                    };
+                };
+            };
+
+            mdss_dsi_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-187500000 {
+                    opp-hz = /bits/ 64 <187500000>;
+                    required-opps = <&rpmhpd_opp_low_svs_d1>;
+                };
+
+                opp-250000000 {
+                    opp-hz = /bits/ 64 <250000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-312500000 {
+                    opp-hz = /bits/ 64 <312500000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-358000000 {
+                    opp-hz = /bits/ 64 <358000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+            };
+        };
+
+        mdss_dsi0_phy: phy@9ac1000 {
+            compatible = "qcom,kaanapali-dsi-phy-3nm";
+            reg = <0x09ac1000 0x1cc>,
+                  <0x09ac1200 0x80>,
+                  <0x09ac1500 0x400>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            clocks = <&disp_cc_mdss_ahb_clk>,
+                     <&rpmhcc RPMH_CXO_CLK>;
+            clock-names = "iface",
+                          "ref";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+        };
+    };
index f0cdb54226885179e38eedc5050298adc5c95bf9..bb09ecd1a5b4ff6aed795762cd761416449367de 100644 (file)
@@ -33,7 +33,7 @@ properties:
       - const: core
 
   iommus:
-    maxItems: 2
+    maxItems: 1
 
   interconnects:
     items:
@@ -107,8 +107,7 @@ examples:
         interconnect-names = "mdp0-mem",
                              "cpu-cfg";
 
-        iommus = <&apps_smmu 0x420 0x2>,
-                 <&apps_smmu 0x421 0x0>;
+        iommus = <&apps_smmu 0x420 0x2>;
         ranges;
 
         display-controller@5e01000 {
index e96baaae9ba9e22df773bacd2ebd8f70cbbd2a28..c41a86203e78a3d139ddcc7ceed243cbf5340bd1 100644 (file)
@@ -53,13 +53,23 @@ patternProperties:
         contains:
           const: qcom,qcs8300-dp
 
+  "^dsi@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        contains:
+          const: qcom,qcs8300-dsi-ctrl
+
   "^phy@[0-9a-f]+$":
     type: object
     additionalProperties: true
     properties:
       compatible:
         contains:
-          const: qcom,qcs8300-edp-phy
+          enum:
+            - qcom,qcs8300-dsi-phy-5nm
+            - qcom,qcs8300-edp-phy
 
 required:
   - compatible
@@ -71,6 +81,7 @@ examples:
     #include <dt-bindings/interconnect/qcom,icc.h>
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     #include <dt-bindings/clock/qcom,qcs8300-gcc.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
     #include <dt-bindings/clock/qcom,sa8775p-dispcc.h>
     #include <dt-bindings/interconnect/qcom,qcs8300-rpmh.h>
     #include <dt-bindings/power/qcom,rpmhpd.h>
@@ -142,6 +153,13 @@ examples:
                          remote-endpoint = <&mdss_dp0_in>;
                     };
                 };
+
+                port@1 {
+                    reg = <1>;
+                    dpu_intf1_out: endpoint {
+                        remote-endpoint = <&mdss_dsi0_in>;
+                    };
+                };
             };
 
             mdp_opp_table: opp-table {
@@ -169,6 +187,88 @@ examples:
             };
         };
 
+        dsi@ae94000 {
+            compatible = "qcom,qcs8300-dsi-ctrl",
+                         "qcom,sa8775p-dsi-ctrl",
+                         "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae94000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <4>;
+
+            clocks = <&dispcc MDSS_DISP_CC_MDSS_BYTE0_CLK>,
+                     <&dispcc MDSS_DISP_CC_MDSS_BYTE0_INTF_CLK>,
+                     <&dispcc MDSS_DISP_CC_MDSS_PCLK0_CLK>,
+                     <&dispcc MDSS_DISP_CC_MDSS_ESC0_CLK>,
+                     <&dispcc MDSS_DISP_CC_MDSS_AHB_CLK>,
+                     <&gcc GCC_DISP_HF_AXI_CLK>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+            assigned-clocks = <&dispcc MDSS_DISP_CC_MDSS_BYTE0_CLK_SRC>,
+                              <&dispcc MDSS_DISP_CC_MDSS_PCLK0_CLK_SRC>;
+            assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
+            phys = <&mdss_dsi0_phy>;
+
+            operating-points-v2 = <&dsi0_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+            vdda-supply = <&vreg_l5a>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    mdss0_dsi0_in: endpoint {
+                        remote-endpoint = <&dpu_intf1_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    mdss0_dsi0_out: endpoint { };
+                };
+            };
+
+            dsi0_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-358000000 {
+                    opp-hz = /bits/ 64 <358000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+            };
+        };
+
+        mdss_dsi0_phy: phy@ae94400 {
+            compatible = "qcom,qcs8300-dsi-phy-5nm",
+                         "qcom,sa8775p-dsi-phy-5nm";
+            reg = <0x0ae94400 0x200>,
+                  <0x0ae94600 0x280>,
+                  <0x0ae94900 0x27c>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc MDSS_DISP_CC_MDSS_AHB_CLK>,
+                     <&rpmhcc RPMH_CXO_CLK>;
+            clock-names = "iface", "ref";
+
+            vdds-supply = <&vreg_l4a>;
+        };
+
         mdss_dp0_phy: phy@aec2a00 {
             compatible = "qcom,qcs8300-edp-phy", "qcom,sa8775p-edp-phy";
 
index fe296e3186d0ecc7d7b0d15211822b4cbac1a5e1..e29c4687c3a2e923d568c728eb9f676cdac3af42 100644 (file)
@@ -16,6 +16,7 @@ properties:
     oneOf:
       - enum:
           - qcom,glymur-dpu
+          - qcom,kaanapali-dpu
           - qcom,sa8775p-dpu
           - qcom,sm8650-dpu
           - qcom,sm8750-dpu
index d55fda9a523e279efdd7dee1145cc922be533c92..a38c2261ef1ac525c67319739d5898734a708e07 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
 description:
-  SM8650 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
+  SM8750 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#
index b8783eba3ddc62e92cd1e1453f7fd2f0da016447..5802fb3c9ffe25d02314f8de3c3e37d8d5d2c4cb 100644 (file)
@@ -16,6 +16,8 @@ properties:
   compatible:
     items:
       - enum:
+          - anbernic,rg-ds-display-bottom
+          - anbernic,rg-ds-display-top
           - chongzhou,cz101b4001
           - kingdisplay,kd101ne3-40ti
           - melfas,lmfbx101117480
index 2219d3d4ac43bc369abebb853ecff18bf99333fb..f641efaeb8b365fd9f6df875d62b2db8665b5f83 100644 (file)
@@ -4,14 +4,16 @@
 $id: http://devicetree.org/schemas/display/panel/lg,sw43408.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: LG SW43408 1080x2160 DSI panel
+title: LG SW43408 AMOLED DDIC
 
 maintainers:
   - Casey Connolly <casey.connolly@linaro.org>
 
 description:
-  This panel is used on the Pixel 3, it is a 60hz OLED panel which
-  required DSC (Display Stream Compression) and has rounded corners.
+  The SW43408 is display driver IC with connected panel.
+
+  LG LH546WF1-ED01 panel is used on the Pixel 3, it is a 60hz OLED panel
+  which required DSC (Display Stream Compression) and has rounded corners.
 
 allOf:
   - $ref: panel-common.yaml#
@@ -19,6 +21,9 @@ allOf:
 properties:
   compatible:
     items:
+      - enum:
+            # LG 5.46 inch, 1080x2160 pixels, 18:9 ratio
+          - lg,sw43408-lh546wf1-ed01
       - const: lg,sw43408
 
   reg:
@@ -46,7 +51,7 @@ examples:
         #size-cells = <0>;
 
         panel@0 {
-            compatible = "lg,sw43408";
+            compatible = "lg,sw43408-lh546wf1-ed01", "lg,sw43408";
             reg = <0>;
 
             vddi-supply = <&vreg_l14a_1p88>;
index 8d668979b62dfec0327a66f1508098e24e22ef80..2f90c887b7b89b5dd85d9f94a30e8c7b439662e9 100644 (file)
@@ -55,6 +55,8 @@ properties:
       - panasonic,vvx10f004b00
         # Panasonic 10" WUXGA TFT LCD panel
       - panasonic,vvx10f034n00
+        # Samsung ltl106hl02 10.6" Full HD TFT LCD panel
+      - samsung,ltl106hl02-001
         # Samsung s6e3fa7 1080x2220 based AMS559NK06 AMOLED panel
       - samsung,s6e3fa7-ams559nk06
         # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
index 24e277b190941e179b0cdbc7c2a2e0aef7da9810..868edb04989a52d84e692311ad2c1622f7782cdc 100644 (file)
@@ -154,6 +154,8 @@ properties:
       - hannstar,hsd070pww1
         # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel
       - hannstar,hsd100pxn1
+        # HannStar Display Corp. HSD156JUW2 15.6" FHD (1920x1080) TFT LCD panel
+      - hannstar,hsd156juw2
         # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel
       - hit,tx23d38vm0caa
         # Innolux AT043TN24 4.3" WQVGA TFT LCD panel
@@ -176,6 +178,8 @@ properties:
       - innolux,g121x1-l03
         # Innolux Corporation 12.1" G121XCE-L01 XGA (1024x768) TFT LCD panel
       - innolux,g121xce-l01
+        # InnoLux 15.0" G150XGE-L05 XGA (1024x768) TFT LCD panel
+      - innolux,g150xge-l05
         # InnoLux 15.6" FHD (1920x1080) TFT LCD panel
       - innolux,g156hce-l01
         # InnoLux 13.3" FHD (1920x1080) TFT LCD panel
@@ -347,7 +351,9 @@ if:
     properties:
       compatible:
         contains:
-          const: innolux,g101ice-l01
+          enum:
+            - innolux,g101ice-l01
+            - yes-optoelectronics,ytc700tlag-05-201c
 then:
   properties:
     data-mapping: false
index d48354fb52ea0decd05640397838dac2893b53ce..fd4388f5fb118d3a003bf5c3794f43a5e4330008 100644 (file)
@@ -6,11 +6,11 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Samsung S6E3FC2X01 AMOLED DDIC
 
-description: The S6E3FC2X01 is display driver IC with connected panel.
-
 maintainers:
   - David Heidelberg <david@ixit.cz>
 
+description: The S6E3FC2X01 is display driver IC with connected panel.
+
 allOf:
   - $ref: panel-common.yaml#
 
@@ -25,25 +25,21 @@ properties:
   reg:
     maxItems: 1
 
-  reset-gpios: true
-
-  port: true
-
-  vddio-supply:
-    description: VDD regulator
+  poc-supply:
+    description: POC regulator
 
   vci-supply:
     description: VCI regulator
 
-  poc-supply:
-    description: POC regulator
+  vddio-supply:
+    description: VDD regulator
 
 required:
   - compatible
   - reset-gpios
-  - vddio-supply
-  - vci-supply
   - poc-supply
+  - vci-supply
+  - vddio-supply
 
 unevaluatedProperties: false
 
index 0ce2ea13583dd73a1dc57a90b6f68d6a7b5a6bd1..c35d4f2ab9a44f8ae36c485081a5e8b5ab9f6fa7 100644 (file)
@@ -34,8 +34,9 @@ properties:
   spi-cpol: true
 
   spi-rx-bus-width:
-    minimum: 0
-    maximum: 1
+    items:
+      minimum: 0
+      maximum: 1
 
   dc-gpios:
     maxItems: 1
index 9d096856a79a6c0b57f87364f104681d7032c687..29716764413a8374a7e8a2b2a03a68f21674e4f0 100644 (file)
@@ -23,6 +23,7 @@ properties:
       - rockchip,rk3228-dw-hdmi
       - rockchip,rk3288-dw-hdmi
       - rockchip,rk3328-dw-hdmi
+      - rockchip,rk3368-dw-hdmi
       - rockchip,rk3399-dw-hdmi
       - rockchip,rk3568-dw-hdmi
 
index 632b48bfabb94db2c75817a9392cfd449791cbad..b968f2de93f7b2301963e1b1708a43ef7d7f42eb 100644 (file)
@@ -19,6 +19,7 @@ properties:
           - rockchip,rk3288-mipi-dsi
           - rockchip,rk3368-mipi-dsi
           - rockchip,rk3399-mipi-dsi
+          - rockchip,rk3506-mipi-dsi
           - rockchip,rk3568-mipi-dsi
           - rockchip,rv1126-mipi-dsi
       - const: snps,dw-mipi-dsi
@@ -75,6 +76,7 @@ allOf:
               - rockchip,px30-mipi-dsi
               - rockchip,rk3128-mipi-dsi
               - rockchip,rk3368-mipi-dsi
+              - rockchip,rk3506-mipi-dsi
               - rockchip,rk3568-mipi-dsi
               - rockchip,rv1126-mipi-dsi
 
index d649808c59da8acb66d7f01aaae1ef3281a87ec8..70ac6751bdbaf24302bbf757ac474559b040b403 100644 (file)
@@ -69,6 +69,12 @@ properties:
       - const: main
       - const: hpd
 
+  no-hpd:
+    type: boolean
+    description:
+      The HPD pin is not present or used for another purpose, and the EDID
+      must be polled instead to determine if a device is attached.
+
   phys:
     maxItems: 1
     description: The HDMI/eDP PHY
index 8b5f58103dda9165e261e93b959b54ee6b64b0f3..fdf4b1109da210367173f253ca24def5454cdeae 100644 (file)
@@ -31,6 +31,7 @@ properties:
       - rockchip,rk3368-vop
       - rockchip,rk3399-vop-big
       - rockchip,rk3399-vop-lit
+      - rockchip,rk3506-vop
       - rockchip,rv1126-vop
 
   reg:
index b83721eb4b7f8d258b4e845f107b056696b8d4a8..1931a47c42171fc8d69b6ff09ca6673fcd8b8f5b 100644 (file)
@@ -76,3 +76,28 @@ examples:
         };
       };
     };
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      display@0 {
+        compatible = "sitronix,st7571";
+        reg = <0>;
+        reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+        width-mm = <37>;
+        height-mm = <27>;
+
+        panel-timing {
+          hactive = <128>;
+          vactive = <96>;
+          hback-porch = <0>;
+          vback-porch = <0>;
+          clock-frequency = <0>;
+          hfront-porch = <0>;
+          hsync-len = <0>;
+          vfront-porch = <0>;
+          vsync-len = <0>;
+        };
+      };
+    };
diff --git a/Bindings/display/sitronix,st7920.yaml b/Bindings/display/sitronix,st7920.yaml
new file mode 100644 (file)
index 0000000..c4f006f
--- /dev/null
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/sitronix,st7920.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sitronix ST7920 LCD Display Controllers
+
+maintainers:
+  - Iker Pedrosa <ikerpedrosam@gmail.com>
+
+description:
+  The Sitronix ST7920 is a controller for monochrome dot-matrix graphical LCDs,
+  most commonly used for 128x64 pixel displays.
+
+properties:
+  compatible:
+    const: sitronix,st7920
+
+  reg:
+    maxItems: 1
+
+  vdd-supply:
+    description: Regulator that provides 5V Vdd power supply
+
+  reset-gpios:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 600000
+
+required:
+  - compatible
+  - reg
+  - spi-max-frequency
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        display@0 {
+            compatible = "sitronix,st7920";
+            reg = <0>;
+            vdd-supply = <&reg_5v>;
+            reset-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
+            spi-max-frequency = <600000>;
+            spi-cs-high;
+        };
+    };
index 193ddb105283f15e84d73a4c0127c387cefa92f4..9a500f52f01db10d0a6624a172801c9c603eb0ea 100644 (file)
@@ -18,6 +18,7 @@ properties:
     enum:
       - nvidia,tegra114-mipi
       - nvidia,tegra124-mipi
+      - nvidia,tegra132-mipi
       - nvidia,tegra210-mipi
       - nvidia,tegra186-mipi
 
index 644f42b942adaf345042bbae18979b855e8692a1..bb138277d5e8c721041918684fdfa9b8db3f5ecc 100644 (file)
@@ -16,16 +16,21 @@ properties:
 
   compatible:
     oneOf:
-      - const: nvidia,tegra20-vi
-      - const: nvidia,tegra30-vi
-      - const: nvidia,tegra114-vi
-      - const: nvidia,tegra124-vi
+      - enum:
+          - nvidia,tegra20-vi
+          - nvidia,tegra114-vi
+          - nvidia,tegra124-vi
+          - nvidia,tegra210-vi
+          - nvidia,tegra186-vi
+          - nvidia,tegra194-vi
+
+      - items:
+          - const: nvidia,tegra30-vi
+          - const: nvidia,tegra20-vi
+
       - items:
           - const: nvidia,tegra132-vi
           - const: nvidia,tegra124-vi
-      - const: nvidia,tegra210-vi
-      - const: nvidia,tegra186-vi
-      - const: nvidia,tegra194-vi
 
   reg:
     maxItems: 1
index 14294edb8d8cfaf8f6b51f74744b89795d931e41..9104a36e16d922f7bc1d09f5bf0ccb17a5dfea6d 100644 (file)
@@ -11,8 +11,13 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - nvidia,tegra20-vip
+    oneOf:
+      - enum:
+          - nvidia,tegra20-vip
+
+      - items:
+          - const: nvidia,tegra30-vip
+          - const: nvidia,tegra20-vip
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
index ab25ae63d2c36dce0db5d229c32f256c5fc79219..beab36ac583feb056c78f350c50c9b8def995184 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/dma/arm-pl08x.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: ARM PrimeCells PL080 and PL081 and derivatives DMA controller
+title: ARM PrimeCell PL080 and PL081 and derivatives DMA controller
 
 maintainers:
   - Vinod Koul <vkoul@kernel.org>
index 73fc13b902b38c23793e35432e0fc733b9f3a33e..197efb19b07aea836f7fba76ec7d2a7f2c577a3c 100644 (file)
@@ -33,7 +33,9 @@ properties:
               - microchip,sam9x7-dma
           - const: atmel,sama5d4-dma
       - items:
-          - const: microchip,sama7d65-dma
+          - enum:
+              - microchip,lan9691-dma
+              - microchip,sama7d65-dma
           - const: microchip,sama7g5-dma
 
   "#dma-cells":
index dab468a88942d694525aa391f695c44d192f0c42..3708518fe7fc1a92328d9f4e30fd86247dcde447 100644 (file)
@@ -7,6 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: MediaTek UART APDMA controller
 
 maintainers:
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
   - Long Cheng <long.cheng@mediatek.com>
 
 description: |
@@ -23,11 +24,29 @@ properties:
           - enum:
               - mediatek,mt2712-uart-dma
               - mediatek,mt6795-uart-dma
+              - mediatek,mt8173-uart-dma
+              - mediatek,mt8183-uart-dma
               - mediatek,mt8365-uart-dma
               - mediatek,mt8516-uart-dma
           - const: mediatek,mt6577-uart-dma
+      - items:
+          - enum:
+              - mediatek,mt7988-uart-dma
+              - mediatek,mt8186-uart-dma
+              - mediatek,mt8188-uart-dma
+              - mediatek,mt8192-uart-dma
+              - mediatek,mt8195-uart-dma
+          - const: mediatek,mt6835-uart-dma
+      - items:
+          - enum:
+              - mediatek,mt6991-uart-dma
+              - mediatek,mt8196-uart-dma
+          - const: mediatek,mt6985-uart-dma
       - enum:
           - mediatek,mt6577-uart-dma
+          - mediatek,mt6795-uart-dma
+          - mediatek,mt6835-uart-dma
+          - mediatek,mt6985-uart-dma
 
   reg:
     minItems: 1
@@ -58,6 +77,7 @@ properties:
 
   mediatek,dma-33bits:
     type: boolean
+    deprecated: true
     description: Enable 33-bits UART APDMA support
 
 required:
index da0235e451d68c5158e5cd8959430a0dbeb66df9..269a1f7ebdbb0e4d45af452552fc404a5aaf3fc8 100644 (file)
@@ -46,7 +46,7 @@ properties:
       Should contain all of the per-channel DMA interrupts in
       ascending order with respect to the DMA channel index.
     minItems: 1
-    maxItems: 32
+    maxItems: 64
 
   clocks:
     description: Must contain one entry for the ADMA module clock
@@ -86,6 +86,19 @@ allOf:
         reg:
           items:
             - description: Full address space range of DMA registers.
+        interrupts:
+          maxItems: 22
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra186-adma
+    then:
+      properties:
+        interrupts:
+          maxItems: 32
 
   - if:
       properties:
index bbe4da2a11054f0d272017ddf5d5f7e47cf7a443..fde1df035ad12b3cfc5ea51a3dc1100ac1f9b92b 100644 (file)
@@ -24,6 +24,8 @@ properties:
           - qcom,sm6350-gpi-dma
       - items:
           - enum:
+              - qcom,glymur-gpi-dma
+              - qcom,kaanapali-gpi-dma
               - qcom,milos-gpi-dma
               - qcom,qcm2290-gpi-dma
               - qcom,qcs8300-gpi-dma
@@ -58,7 +60,7 @@ properties:
     description:
       Interrupt lines for each GPI instance
     minItems: 1
-    maxItems: 13
+    maxItems: 16
 
   "#dma-cells":
     const: 3
index f891cfcc48c781941091781d2215c18b5a82df8c..d137b9cbaee91a2f3b54c9c494edf6069d6a3e41 100644 (file)
@@ -24,6 +24,7 @@ properties:
       - items:
           - enum:
               - renesas,r9a09g047-dmac # RZ/G3E
+              - renesas,r9a09g056-dmac # RZ/V2N
           - const: renesas,r9a09g057-dmac
 
       - const: renesas,r9a09g057-dmac # RZ/V2H(P)
index a393a33c8908f3160b41af1d7b6c11e23f236e5a..216cda21c538b4988de8c2ae913e0c0840434764 100644 (file)
@@ -17,11 +17,15 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - snps,axi-dma-1.01a
-      - intel,kmb-axi-dma
-      - starfive,jh7110-axi-dma
-      - starfive,jh8100-axi-dma
+    oneOf:
+      - enum:
+          - snps,axi-dma-1.01a
+          - intel,kmb-axi-dma
+          - starfive,jh7110-axi-dma
+          - starfive,jh8100-axi-dma
+      - items:
+          - const: altr,agilex5-axi-dma
+          - const: snps,axi-dma-1.01a
 
   reg:
     minItems: 1
index 88575da1e6d5d2db976edb88eb276baa225dcb8f..508b8c2f13a26df87d076dbd195d3b9c972ad93b 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: MediaTek mt8186 DSP core
 
 maintainers:
-  - Tinghan Shen <tinghan.shen@mediatek.com>
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
 
 description: |
   MediaTek mt8186 SoC contains a DSP core used for
index c212826347803e24552d3f331f60165d9887a473..ef88f46928a40b48e984245d19f9f1f767ba3210 100644 (file)
@@ -116,6 +116,7 @@ properties:
           - const: atmel,24c02
       - items:
           - enum:
+              - belling,bl24c04a
               - giantec,gt24c04a
               - onnn,cat24c04
               - onnn,cat24c05
@@ -124,6 +125,7 @@ properties:
       - items:
           - enum:
               - belling,bl24c16a
+              - belling,bl24c16f
               - renesas,r1ex24016
           - const: atmel,24c16
       - items:
@@ -132,6 +134,7 @@ properties:
       - items:
           - enum:
               - belling,bl24s64
+              - giantec,gt24p64a
               - onnn,n24s64b
               - puya,p24c64f
           - const: atmel,24c64
@@ -139,6 +142,7 @@ properties:
           - enum:
               - giantec,gt24p128e
               - giantec,gt24p128f
+              - puya,p24c128f
               - renesas,r1ex24128
               - samsung,s524ad0xd1
           - const: atmel,24c128
index e1599ce1091659077d69b756ca7247554d553393..bb78e12b8823b7d98f0b0c83db8fb5ad3a54fd3e 100644 (file)
@@ -31,6 +31,7 @@ properties:
               - fujitsu,mb85rs1mt
               - fujitsu,mb85rs256
               - fujitsu,mb85rs64
+              - microchip,25aa010a
               - microchip,at25160bn
               - microchip,25lc040
               - st,m95m02
index a029b38e8dc0b1206c20d19458db83ad8f2f49c7..c88fbd6ad9408f9f13786a8264b708607f4cfce5 100644 (file)
@@ -50,7 +50,7 @@ additionalProperties: false
 examples:
   - |+
     #include <dt-bindings/interrupt-controller/irq.h>
-    i2c1 {
+    i2c {
         clock-frequency = <400000>;
 
         #address-cells = <1>;
diff --git a/Bindings/firmware/cznic,turris-mox-rwtm.txt b/Bindings/firmware/cznic,turris-mox-rwtm.txt
deleted file mode 100644 (file)
index 338169d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Turris Mox rWTM firmware driver
-
-Required properties:
- - compatible          : Should be "cznic,turris-mox-rwtm"
- - mboxes              : Must contain a reference to associated mailbox
-
-This device tree node should be used on Turris Mox, or potentially another A3700
-compatible device running the Mox's rWTM firmware in the secure processor (for
-example it is possible to flash this firmware into EspressoBin).
-
-Example:
-
-       firmware {
-               turris-mox-rwtm {
-                       compatible = "cznic,turris-mox-rwtm";
-                       mboxes = <&rwtm 0>;
-                       status = "okay";
-               };
-       };
diff --git a/Bindings/firmware/cznic,turris-mox-rwtm.yaml b/Bindings/firmware/cznic,turris-mox-rwtm.yaml
new file mode 100644 (file)
index 0000000..28caec1
--- /dev/null
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/cznic,turris-mox-rwtm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: CZ.NIC Turris Mox rWTM firmware
+
+maintainers:
+  - Marek Behún <kabel@kernel.org>
+
+description:
+  This device tree node should be used on Turris Mox, or potentially another
+  A3700 compatible device running the Mox's rWTM firmware in the secure
+  processor (for example it is possible to flash this firmware into
+  EspressoBin).
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: marvell,armada-3700-rwtm-firmware
+          - const: cznic,turris-mox-rwtm
+      - const: marvell,armada-3700-rwtm-firmware
+
+  mboxes:
+    maxItems: 1
+
+required:
+  - compatible
+  - mboxes
+
+additionalProperties: false
+
+examples:
+  - |
+    turris-mox-rwtm {
+        compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm";
+        mboxes = <&rwtm 0>;
+    };
index f9ba18f06369215691c69cdc1538b53dfd369f37..307f1c6278532ace94db92e6e8b68312eb4c8a4f 100644 (file)
@@ -76,7 +76,8 @@ properties:
           - description: TX0 MU channel
           - description: RX0 MU channel
           - description: optional MU channel for general interrupt
-      - items:
+      - deprecated: true
+        items:
           - description: TX0 MU channel
           - description: TX1 MU channel
           - description: TX2 MU channel
@@ -85,7 +86,8 @@ properties:
           - description: RX1 MU channel
           - description: RX2 MU channel
           - description: RX3 MU channel
-      - items:
+      - deprecated: true
+        items:
           - description: TX0 MU channel
           - description: TX1 MU channel
           - description: TX2 MU channel
@@ -105,7 +107,8 @@ properties:
           - const: tx0
           - const: rx0
           - const: gip3
-      - items:
+      - deprecated: true
+        items:
           - const: tx0
           - const: tx1
           - const: tx2
@@ -114,7 +117,8 @@ properties:
           - const: rx1
           - const: rx2
           - const: rx3
-      - items:
+      - deprecated: true
+        items:
           - const: tx0
           - const: tx1
           - const: tx2
@@ -167,11 +171,9 @@ examples:
     firmware {
         system-controller {
             compatible = "fsl,imx-scu";
-            mbox-names = "tx0", "tx1", "tx2", "tx3",
-                         "rx0", "rx1", "rx2", "rx3",
-                         "gip3";
-            mboxes = <&lsio_mu1 0 0 &lsio_mu1 0 1 &lsio_mu1 0 2 &lsio_mu1 0 3
-                      &lsio_mu1 1 0 &lsio_mu1 1 1 &lsio_mu1 1 2 &lsio_mu1 1 3
+            mbox-names = "tx0", "rx0", "gip3";
+            mboxes = <&lsio_mu1 0 0
+                      &lsio_mu1 1 0
                       &lsio_mu1 3 3>;
 
             clock-controller {
index d3bca6088d128485618bb2b538ed8596b4ba14f0..4a1e3e3c0505aad6669cadf9b7b58aa4c7f284cb 100644 (file)
@@ -75,7 +75,7 @@ examples:
             interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
 
             regulators {
-                LDO1 {
+                ldo1m {
                     regulator-name = "vdd_ldo1";
                     regulator-min-microvolt = <700000>;
                     regulator-max-microvolt = <1300000>;
@@ -84,7 +84,7 @@ examples:
 
                 // ...
 
-                BUCK1 {
+                buck8m {
                     regulator-name = "vdd_mif";
                     regulator-min-microvolt = <450000>;
                     regulator-max-microvolt = <1300000>;
index ab8f32c440dfa905f9979feb7ef6104988cac960..d50438b0fca8037594434b9a809555238faea006 100644 (file)
@@ -76,7 +76,6 @@ properties:
     type: object
 
   pinctrl:
-    $ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml#
     description: The pinctrl node provides access to pinconfig and pincontrol
       functionality available in firmware.
     type: object
@@ -104,6 +103,22 @@ properties:
       used to encrypt or decrypt the data with provided key and initialization
       vector.
     type: object
+    deprecated: true
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: xlnx,zynqmp-firmware
+    then:
+      properties:
+        pinctrl:
+          $ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml#
+    else:
+      properties:
+        pinctrl:
+          $ref: /schemas/pinctrl/xlnx,versal-pinctrl.yaml#
 
 required:
   - compatible
@@ -115,6 +130,7 @@ examples:
     #include <dt-bindings/power/xlnx-zynqmp-power.h>
     firmware {
       zynqmp_firmware: zynqmp-firmware {
+        compatible = "xlnx,zynqmp-firmware";
         #power-domain-cells = <1>;
         soc-nvmem {
           compatible = "xlnx,zynqmp-nvmem-fw";
@@ -162,6 +178,10 @@ examples:
         compatible = "xlnx,versal-fpga";
       };
 
+      pinctrl {
+        compatible = "xlnx,versal-pinctrl";
+      };
+
       xlnx_aes: zynqmp-aes {
         compatible = "xlnx,zynqmp-aes";
       };
diff --git a/Bindings/goldfish/audio.txt b/Bindings/goldfish/audio.txt
deleted file mode 100644 (file)
index d043fda..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish Audio
-
-Android goldfish audio device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-audio" to match emulator
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       goldfish_audio@9030000 {
-               compatible = "google,goldfish-audio";
-               reg = <0x9030000 0x100>;
-               interrupts = <0x4>;
-       };
diff --git a/Bindings/goldfish/battery.txt b/Bindings/goldfish/battery.txt
deleted file mode 100644 (file)
index 4fb6139..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish Battery
-
-Android goldfish battery device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-battery" to match emulator
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       goldfish_battery@9020000 {
-               compatible = "google,goldfish-battery";
-               reg = <0x9020000 0x1000>;
-               interrupts = <0x3>;
-       };
diff --git a/Bindings/goldfish/events.txt b/Bindings/goldfish/events.txt
deleted file mode 100644 (file)
index 5babf46..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish Events Keypad
-
-Android goldfish events keypad device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-events-keypad" to match emulator
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       goldfish-events@9040000 {
-               compatible = "google,goldfish-events-keypad";
-               reg = <0x9040000 0x1000>;
-               interrupts = <0x5>;
-       };
diff --git a/Bindings/goldfish/pipe.txt b/Bindings/goldfish/pipe.txt
deleted file mode 100644 (file)
index 5637ce7..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish QEMU Pipe
-
-Android pipe virtual device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,android-pipe" to match emulator
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       android_pipe@a010000 {
-               compatible = "google,android-pipe";
-               reg = <ff018000 0x2000>;
-               interrupts = <0x12>;
-       };
diff --git a/Bindings/goldfish/tty.txt b/Bindings/goldfish/tty.txt
deleted file mode 100644 (file)
index 8264827..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Android Goldfish TTY
-
-Android goldfish tty device generated by android emulator.
-
-Required properties:
-
-- compatible : should contain "google,goldfish-tty" to match emulator
-- reg        : <registers mapping>
-- interrupts : <interrupt mapping>
-
-Example:
-
-       goldfish_tty@1f004000 {
-               compatible = "google,goldfish-tty";
-               reg = <0x1f004000 0x1000>;
-               interrupts = <0xc>;
-       };
index 1046f0331c095820a450d0889d7e17da57257869..974185e3478f8106219112d9fdbeb15fceb9ef00 100644 (file)
@@ -10,7 +10,8 @@ maintainers:
   - Andrew Jeffery <andrew@aj.id.au>
 
 description:
-  This SGPIO controller is for ASPEED AST2400, AST2500 and AST2600 SoC,
+  This SGPIO controller is for ASPEED AST2400, AST2500, AST2600 and AST2700 SoC,
+  AST2700 have two sgpio master both with 256 pins,
   AST2600 have two sgpio master one with 128 pins another one with 80 pins,
   AST2500/AST2400 have one sgpio master with 80 pins. Each of the Serial
   GPIO pins can be programmed to support the following options
@@ -27,6 +28,7 @@ properties:
       - aspeed,ast2400-sgpio
       - aspeed,ast2500-sgpio
       - aspeed,ast2600-sgpiom
+      - aspeed,ast2700-sgpiom
 
   reg:
     maxItems: 1
diff --git a/Bindings/gpio/gpio-line-mux.yaml b/Bindings/gpio/gpio-line-mux.yaml
new file mode 100644 (file)
index 0000000..f49c052
--- /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/gpio/gpio-line-mux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GPIO line mux
+
+maintainers:
+  - Jonas Jelonek <jelonek.jonas@gmail.com>
+
+description: |
+  A GPIO controller to provide virtual GPIOs for a 1-to-many input-only mapping
+  backed by a single shared GPIO and a multiplexer. A simple illustrated
+  example is:
+
+            +----- A
+    IN     /
+    <-----o------- B
+        / |\
+        | | +----- C
+        | |  \
+        | |   +--- D
+        | |
+       M1 M0
+
+    MUX CONTROL
+
+     M1 M0   IN
+      0  0   A
+      0  1   B
+      1  0   C
+      1  1   D
+
+  This can be used in case a real GPIO is connected to multiple inputs and
+  controlled by a multiplexer, and another subsystem/driver does not work
+  directly with the multiplexer subsystem.
+
+properties:
+  compatible:
+    const: gpio-line-mux
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
+  gpio-line-mux-states:
+    description: Mux states corresponding to the virtual GPIOs.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+
+  gpio-line-names: true
+
+  mux-controls:
+    maxItems: 1
+    description:
+      Phandle to the multiplexer to control access to the GPIOs.
+
+  ngpios: false
+
+  muxed-gpios:
+    maxItems: 1
+    description:
+      GPIO which is the '1' in 1-to-many and is shared by the virtual GPIOs
+      and controlled via the mux.
+
+required:
+  - compatible
+  - gpio-controller
+  - gpio-line-mux-states
+  - mux-controls
+  - muxed-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/mux/mux.h>
+
+    sfp_gpio_mux: mux-controller-1 {
+        compatible = "gpio-mux";
+        mux-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>,
+                    <&gpio0 1 GPIO_ACTIVE_HIGH>;
+        #mux-control-cells = <0>;
+        idle-state = <MUX_IDLE_AS_IS>;
+    };
+
+    sfp1_gpio: sfp-gpio-1 {
+        compatible = "gpio-line-mux";
+        gpio-controller;
+        #gpio-cells = <2>;
+
+        mux-controls = <&sfp_gpio_mux>;
+        muxed-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+
+        gpio-line-mux-states = <0>, <1>, <3>;
+    };
+
+    sfp1: sfp-p1 {
+        compatible = "sff,sfp";
+
+        i2c-bus = <&sfp1_i2c>;
+        los-gpios = <&sfp1_gpio 0 GPIO_ACTIVE_HIGH>;
+        mod-def0-gpios = <&sfp1_gpio 1 GPIO_ACTIVE_LOW>;
+        tx-fault-gpios = <&sfp1_gpio 2 GPIO_ACTIVE_HIGH>;
+    };
index ee5d5d25ae82fbcff878b145a921472db0bc113c..1b2d253b19c1727661750436db57bb2dcaedbc0e 100644 (file)
@@ -20,9 +20,10 @@ properties:
   compatible:
     enum:
       - brcm,bcm6345-gpio
+      - intel,ixp4xx-expansion-bus-mmio-gpio
       - ni,169445-nand-gpio
+      - opencores,gpio
       - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
-      - intel,ixp4xx-expansion-bus-mmio-gpio
 
   big-endian: true
 
index 12134c737ad8fb85980ecee225b8bcf5d1bf6b41..4f955f855e1ab8ccfcce9f465727b1b095e80ec6 100644 (file)
@@ -74,6 +74,8 @@ properties:
               - ti,tca9538
               - ti,tca9539
               - ti,tca9554
+              - ti,tcal6408
+              - ti,tcal6416
 
   reg:
     maxItems: 1
index 184432d24ea1817152c453d51893f7f93e8f8b43..f42c54653d52179df383593a370d8f11c212ebb8 100644 (file)
@@ -37,7 +37,7 @@ properties:
     const: 2
 
   "#interrupt-cells":
-    const: 1
+    const: 2
 
   ngpios:
     description:
@@ -86,7 +86,7 @@ examples:
         gpio-controller;
         #gpio-cells = <2>;
         interrupt-controller;
-        #interrupt-cells = <1>;
+        #interrupt-cells = <2>;
         interrupts = <53>, <53>, <53>, <53>,
                      <53>, <53>, <53>, <53>,
                      <53>, <53>, <53>, <53>,
index 2bd620a1099b9aa618fd03a7d04c2ff6c9f5c6d7..17748dd1015d70756d3c3dd89f530ff92fe20554 100644 (file)
@@ -86,6 +86,9 @@ properties:
       - nvidia,tegra234-gpio
       - nvidia,tegra234-gpio-aon
       - nvidia,tegra256-gpio
+      - nvidia,tegra264-gpio
+      - nvidia,tegra264-gpio-uphy
+      - nvidia,tegra264-gpio-aon
 
   reg-names:
     items:
@@ -110,6 +113,10 @@ properties:
       ports, in the order the HW manual describes them. The number of entries
       required varies depending on compatible value.
 
+  wakeup-parent:
+    description: Phandle to the parent interrupt controller used for wake-up. On
+      Tegra, this typically references the PMC interrupt controller.
+
   gpio-controller: true
 
   gpio-ranges:
@@ -157,6 +164,8 @@ allOf:
               - nvidia,tegra194-gpio
               - nvidia,tegra234-gpio
               - nvidia,tegra256-gpio
+              - nvidia,tegra264-gpio
+              - nvidia,tegra264-gpio-uphy
     then:
       properties:
         interrupts:
@@ -171,12 +180,25 @@ allOf:
               - nvidia,tegra186-gpio-aon
               - nvidia,tegra194-gpio-aon
               - nvidia,tegra234-gpio-aon
+              - nvidia,tegra264-gpio-aon
     then:
       properties:
         interrupts:
           minItems: 1
           maxItems: 4
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra264-gpio
+              - nvidia,tegra264-gpio-uphy
+              - nvidia,tegra264-gpio-aon
+    then:
+      required:
+        - wakeup-parent
+
 required:
   - compatible
   - reg
index 83e0b2d14c9f8cf409557b93c97d283b437996a8..24d22d95665f563f23e8995035036ea2259de827 100644 (file)
@@ -19,7 +19,9 @@ properties:
     pattern: "^gpio@[0-9a-f]+$"
 
   compatible:
-    const: spacemit,k1-gpio
+    enum:
+      - spacemit,k1-gpio
+      - spacemit,k3-gpio
 
   reg:
     maxItems: 1
index bee9faf1d3f8271f49da8195fd9f43eb66523174..8eccd4338a2b238e59a8a141d03c1a38de95d1a9 100644 (file)
@@ -51,6 +51,14 @@ properties:
           - stacks
       - const: stacks
 
+  nvmem-cells:
+    items:
+      - description: bitmask of functional shader cores
+
+  nvmem-cell-names:
+    items:
+      - const: shader-present
+
   mali-supply: true
 
   operating-points-v2: true
@@ -108,6 +116,8 @@ allOf:
       properties:
         clocks:
           minItems: 3
+        nvmem-cells: false
+        nvmem-cell-names: false
         power-domains:
           maxItems: 1
         power-domain-names: false
@@ -133,6 +143,8 @@ allOf:
             - const: core
             - const: stacks
       required:
+        - nvmem-cells
+        - nvmem-cell-names
         - power-domains
 
 examples:
@@ -179,6 +191,8 @@ examples:
                      <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH 0>,
                      <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH 0>;
         interrupt-names = "job", "mmu", "gpu";
+        nvmem-cells = <&shader_present>;
+        nvmem-cell-names = "shader-present";
         power-domains = <&gpufreq>;
     };
 
index 86ef689853177d2f5e33a5e40c1eea2fbfa55702..a1f54dbae3f31e75c7ffe72dd9e7392e494e827b 100644 (file)
@@ -40,6 +40,7 @@ properties:
           - const: img,img-rogue
       - items:
           - enum:
+              - ti,am62p-gpu
               - ti,j721s2-gpu
           - const: img,img-bxs-4-64
           - const: img,img-rogue
@@ -100,6 +101,7 @@ allOf:
           contains:
             enum:
               - ti,am62-gpu
+              - ti,am62p-gpu
               - ti,j721s2-gpu
     then:
       properties:
diff --git a/Bindings/hwmon/aspeed,ast2400-pwm-tacho.yaml b/Bindings/hwmon/aspeed,ast2400-pwm-tacho.yaml
new file mode 100644 (file)
index 0000000..ca6e2d6
--- /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/hwmon/aspeed,ast2400-pwm-tacho.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ASPEED AST2400/AST2500 PWM and Fan Tacho controller
+
+maintainers:
+  - Joel Stanley <joel@jms.id.au>
+  - Andrew Jeffery <andrew@codeconstruct.com.au>
+
+description: >
+  The ASPEED PWM controller can support up to 8 PWM outputs. The ASPEED Fan
+  Tacho controller can support up to 16 Fan tachometer inputs.
+
+  There can be up to 8 fans supported. Each fan can have 1 PWM output and
+  1-2 Fan tach inputs.
+
+properties:
+  compatible:
+    enum:
+      - aspeed,ast2400-pwm-tacho
+      - aspeed,ast2500-pwm-tacho
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  '#cooling-cells':
+    const: 2
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+patternProperties:
+  '^fan@[0-7]$':
+    description: Fan subnode
+    type: object
+    additionalProperties: false
+
+    properties:
+      reg:
+        description: PWM source port index (0 = PWM A, ..., 7 = PWM H)
+        maximum: 7
+
+      cooling-levels:
+        description: PWM duty cycle values for cooling states
+        $ref: /schemas/types.yaml#/definitions/uint8-array
+        minItems: 1
+        maxItems: 16  # Should be enough
+
+      aspeed,fan-tach-ch:
+        description: Fan tachometer input channel
+        $ref: /schemas/types.yaml#/definitions/uint8-array
+        minItems: 1
+        maxItems: 2
+        items:
+          maximum: 15
+
+    required:
+      - reg
+      - aspeed,fan-tach-ch
+
+required:
+  - compatible
+  - reg
+  - '#address-cells'
+  - '#size-cells'
+  - clocks
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/aspeed-clock.h>
+
+    fan-controller@1e786000 {
+        compatible = "aspeed,ast2500-pwm-tacho";
+        reg = <0x1e786000 0x1000>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        #cooling-cells = <2>;
+        clocks = <&syscon ASPEED_CLK_APB>;
+        resets = <&syscon ASPEED_RESET_PWM>;
+
+        fan@0 {
+            reg = <0x00>;
+            cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
+            aspeed,fan-tach-ch = /bits/ 8 <0x00>;
+        };
+
+        fan@1 {
+            reg = <0x01>;
+            aspeed,fan-tach-ch = /bits/ 8 <0x01 0x02>;
+        };
+    };
diff --git a/Bindings/hwmon/aspeed-pwm-tacho.txt b/Bindings/hwmon/aspeed-pwm-tacho.txt
deleted file mode 100644 (file)
index 8645cd3..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-ASPEED AST2400/AST2500 PWM and Fan Tacho controller device driver
-
-The ASPEED PWM controller can support upto 8 PWM outputs. The ASPEED Fan Tacho
-controller can support upto 16 Fan tachometer inputs.
-
-There can be upto 8 fans supported. Each fan can have one PWM output and
-one/two Fan tach inputs.
-
-Required properties for pwm-tacho node:
-- #address-cells : should be 1.
-
-- #size-cells : should be 1.
-
-- #cooling-cells: should be 2.
-
-- reg : address and length of the register set for the device.
-
-- pinctrl-names : a pinctrl state named "default" must be defined.
-
-- pinctrl-0 : phandle referencing pin configuration of the PWM ports.
-
-- compatible : should be "aspeed,ast2400-pwm-tacho" for AST2400 and
-              "aspeed,ast2500-pwm-tacho" for AST2500.
-
-- clocks : phandle to clock provider with the clock number in the second cell
-
-- resets : phandle to reset controller with the reset number in the second cell
-
-fan subnode format:
-===================
-Under fan subnode there can upto 8 child nodes, with each child node
-representing a fan. If there are 8 fans each fan can have one PWM port and
-one/two Fan tach inputs.
-For PWM port can be configured cooling-levels to create cooling device.
-Cooling device could be bound to a thermal zone for the thermal control.
-
-Required properties for each child node:
-- reg : should specify PWM source port.
-       integer value in the range 0 to 7 with 0 indicating PWM port A and
-       7 indicating PWM port H.
-
-- cooling-levels: PWM duty cycle values in a range from 0 to 255
-                  which correspond to thermal cooling states.
-
-- aspeed,fan-tach-ch : should specify the Fan tach input channel.
-                integer value in the range 0 through 15, with 0 indicating
-               Fan tach channel 0 and 15 indicating Fan tach channel 15.
-               At least one Fan tach input channel is required.
-
-Examples:
-
-pwm_tacho: pwmtachocontroller@1e786000 {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       #cooling-cells = <2>;
-       reg = <0x1E786000 0x1000>;
-       compatible = "aspeed,ast2500-pwm-tacho";
-       clocks = <&syscon ASPEED_CLK_APB>;
-       resets = <&syscon ASPEED_RESET_PWM>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>;
-
-       fan@0 {
-               reg = <0x00>;
-               cooling-levels = /bits/ 8 <125 151 177 203 229 255>;
-               aspeed,fan-tach-ch = /bits/ 8 <0x00>;
-       };
-
-       fan@1 {
-               reg = <0x01>;
-               aspeed,fan-tach-ch = /bits/ 8 <0x01 0x02>;
-       };
-};
diff --git a/Bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml b/Bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml
new file mode 100644 (file)
index 0000000..9406978
--- /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/hwmon/iei,wt61p803-puzzle-hwmon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IEI WT61P803 PUZZLE MCU HWMON module from IEI Integration Corp.
+
+maintainers:
+  - Luka Kovacic <luka.kovacic@sartura.hr>
+
+description: |
+  This module is a part of the IEI WT61P803 PUZZLE MFD device. For more details
+  see Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml.
+
+  The HWMON module is a sub-node of the MCU node in the Device Tree.
+
+properties:
+  compatible:
+    const: iei,wt61p803-puzzle-hwmon
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  '^fan-group@[0-1]$':
+    type: object
+    additionalProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 1
+        description:
+          Fan group ID
+
+      '#cooling-cells':
+        const: 2
+
+      cooling-levels:
+        minItems: 1
+        maxItems: 255
+        description:
+          Cooling levels for the fans (PWM value mapping)
+
+    required:
+      - reg
+      - '#cooling-cells'
+      - cooling-levels
+
+required:
+  - compatible
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
index 966b221b6caa6bca2445d3e1b73b40e956ca9387..5803a1770cad6882e1e47051df65494343a98840 100644 (file)
@@ -16,7 +16,6 @@ description: |
 properties:
   compatible:
     enum:
-      - kontron,sa67mcu-hwmon
       - kontron,sl28cpld-fan
 
   reg:
index 51e8619dbf3c6207f002c8f7b483d97e56ccbaf0..611fcadb1e7714e8fa620d01fa8b0f581055b7d7 100644 (file)
@@ -14,8 +14,12 @@ description: |
 
 properties:
   compatible:
-    enum:
-      - microchip,sparx5-temp
+    oneOf:
+      - const: microchip,sparx5-temp
+      - items:
+          - enum:
+              - microchip,lan9691-temp
+          - const: microchip,sparx5-temp
 
   reg:
     maxItems: 1
index 3d14d5fc96c529856cec2c6affb15ce08ecfbc70..7b38f2182ffa0c98c21efe7d0f39cd7e10722060 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Sensirion SHTC1 Humidity and Temperature Sensor IC
 
 maintainers:
-  - Christopher Ruehl chris.ruehl@gtsys.com.hk
+  - Christopher Ruehl <chris.ruehl@gtsys.com.hk>
 
 description: |
   The SHTC1, SHTW1 and SHTC3 are digital humidity and temperature sensors
index a6f9319e068d4e3138284f3c8954fc8883659978..9f6c9f6fa56173d43ec47ecc485c8a963f8d28ce 100644 (file)
@@ -4,27 +4,32 @@
 $id: http://devicetree.org/schemas/hwmon/ti,tmp108.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: TMP108/P3T1085(NXP) temperature sensor
+title: TMP108/P3T1035/P3T1085/P3T2030 temperature sensor
 
 maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
 description: |
-  The TMP108/P3T1085(NXP) is a digital-output temperature sensor with a
-  dynamically-programmable limit window, and under- and overtemperature
-  alert functions.
+  The TMP108 or NXP P3T Family (P3T1035, P3T1085 and P3T2030) is a digital-
+  output temperature sensor with a dynamically-programmable limit window,
+  and under- and over-temperature alert functions.
 
-  P3T1085(NXP) support I3C.
+  NXP P3T Family (P3T1035, P3T1085 and P3T2030) supports I3C.
 
   Datasheets:
     https://www.ti.com/product/TMP108
     https://www.nxp.com/docs/en/data-sheet/P3T1085UK.pdf
+    https://www.nxp.com/docs/en/data-sheet/P3T1035XUK_P3T2030XUK.pdf
 
 properties:
   compatible:
-    enum:
-      - nxp,p3t1085
-      - ti,tmp108
+    oneOf:
+      - items:
+          - const: nxp,p3t2030
+          - const: nxp,p3t1035
+      - const: nxp,p3t1035
+      - const: nxp,p3t1085
+      - const: ti,tmp108
 
   interrupts:
     items:
index e61cdb5b16efdf5967510200d3a61d6f259d6d9d..c83674c3183b26402736142b581d8860282f855e 100644 (file)
@@ -26,6 +26,7 @@ properties:
               - microchip,sam9x60-i2c
       - items:
           - enum:
+              - microchip,lan9691-i2c
               - microchip,sama7d65-i2c
               - microchip,sama7g5-i2c
               - microchip,sam9x7-i2c
index 3562ce0c0f7e4889d34410a9d32e1c8e6ddaae0a..ecd5783f001b3e1c2a29aa6575141093ead4e6a2 100644 (file)
@@ -54,6 +54,7 @@ properties:
           - enum:
               - mediatek,mt6878-i2c
               - mediatek,mt6991-i2c
+              - mediatek,mt8189-i2c
               - mediatek,mt8196-i2c
           - const: mediatek,mt8188-i2c
       - items:
index a3fe1eea6aece9685674feaa5ec53765c1ce23d8..399a09409e071b7caad8df7fb831c429a8bc7750 100644 (file)
@@ -28,6 +28,7 @@ properties:
           - enum:
               - qcom,kaanapali-cci
               - qcom,qcm2290-cci
+              - qcom,qcs8300-cci
               - qcom,sa8775p-cci
               - qcom,sc7280-cci
               - qcom,sc8280xp-cci
@@ -133,6 +134,7 @@ allOf:
             enum:
               - qcom,kaanapali-cci
               - qcom,qcm2290-cci
+              - qcom,qcs8300-cci
               - qcom,sm8750-cci
     then:
       properties:
diff --git a/Bindings/i2c/silabs,cp2112.yaml b/Bindings/i2c/silabs,cp2112.yaml
new file mode 100644 (file)
index 0000000..a204adf
--- /dev/null
@@ -0,0 +1,100 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/silabs,cp2112.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: CP2112 HID USB to SMBus/I2C Bridge
+
+maintainers:
+  - Danny Kaehn <danny.kaehn@plexus.com>
+
+description:
+  The CP2112 is a USB HID device which includes an integrated I2C controller
+  and 8 GPIO pins. Its GPIO pins can each be configured as inputs, open-drain
+  outputs, or push-pull outputs.
+
+properties:
+  compatible:
+    const: usb10c4,ea90
+
+  reg:
+    maxItems: 1
+    description: The USB port number
+
+  interrupt-controller: true
+  "#interrupt-cells":
+    const: 2
+
+  gpio-controller: true
+  "#gpio-cells":
+    const: 2
+
+  gpio-line-names:
+    minItems: 1
+    maxItems: 8
+
+  i2c:
+    description: The SMBus/I2C controller node for the CP2112
+    $ref: /schemas/i2c/i2c-controller.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      clock-frequency:
+        minimum: 10000
+        default: 100000
+        maximum: 400000
+
+patternProperties:
+  "-hog(-[0-9]+)?$":
+    type: object
+
+    required:
+      - gpio-hog
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        cp2112: device@1 {
+            compatible = "usb10c4,ea90";
+            reg = <1>;
+
+            gpio-controller;
+            interrupt-controller;
+            #interrupt-cells = <2>;
+            #gpio-cells = <2>;
+            gpio-line-names = "CP2112_SDA", "CP2112_SCL", "TEST2",
+                              "TEST3","TEST4", "TEST5", "TEST6";
+
+            fan-rst-hog {
+                gpio-hog;
+                gpios = <7 GPIO_ACTIVE_HIGH>;
+                output-high;
+                line-name = "FAN_RST";
+            };
+
+            i2c {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                sda-gpios = <&cp2112 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+                scl-gpios = <&cp2112 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+                temp@48 {
+                    compatible = "national,lm75";
+                    reg = <0x48>;
+                };
+            };
+        };
+    };
index 91420018880958737f41ba1f6ec23a48ff1fd361..082fdc2e69ea0997e4f829338d0ddd8142140909 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Synopsys DesignWare APB I2C Controller
 
 maintainers:
-  - Jarkko Nikula <jarkko.nikula@linux.intel.com>
+  - Mika Westerberg <mika.westerberg@linux.intel.com>
 
 allOf:
   - $ref: /schemas/i2c/i2c-controller.yaml#
index b7220fff22350fd7dec86e503855a2b0cb13551e..5896fb120501166d28be20f9d12c25fa02af15c4 100644 (file)
@@ -41,6 +41,9 @@ properties:
     default: 400000
     maximum: 3300000
 
+  resets:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 457bb0702ed93556685c0d6d64ade9fb3300afdd..64aaa0dfa8fa6ff974ad78e2178008fd9cd6f522 100644 (file)
@@ -127,6 +127,9 @@ properties:
 
   wakeup-source: true
 
+  power-domains:
+    maxItems: 1
+
   access-controllers:
     minItems: 1
     maxItems: 2
index 54e7349317b77f032ecafde0102bf3a09f140f03..e22d518135f263b84f4fe3b0efb01b1c6b3f96ea 100644 (file)
@@ -37,7 +37,15 @@ properties:
     maximum: 102040816
 
   spi-rx-bus-width:
-    enum: [1, 2, 4]
+    maxItems: 2
+    # all lanes must have the same width
+    oneOf:
+      - contains:
+          const: 1
+      - contains:
+          const: 2
+      - contains:
+          const: 4
 
   vdd-5v-supply: true
   vdd-1v8-supply: true
@@ -88,6 +96,18 @@ oneOf:
 
 unevaluatedProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad4030-24
+            - adi,ad4032-24
+    then:
+      properties:
+        spi-rx-bus-width:
+          maxItems: 1
+
 examples:
   - |
     #include <dt-bindings/gpio/gpio.h>
@@ -108,3 +128,23 @@ examples:
             reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
         };
     };
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad4630-24";
+            reg = <0>;
+            spi-max-frequency = <80000000>;
+            spi-rx-bus-width = <4>, <4>;
+            vdd-5v-supply = <&supply_5V>;
+            vdd-1v8-supply = <&supply_1_8V>;
+            vio-supply = <&supply_1_8V>;
+            ref-supply = <&supply_5V>;
+            cnv-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+        };
+    };
diff --git a/Bindings/iio/adc/adi,ad4062.yaml b/Bindings/iio/adc/adi,ad4062.yaml
new file mode 100644 (file)
index 0000000..eeb1480
--- /dev/null
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright 2025 Analog Devices Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad4062.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD4062 ADC family device driver
+
+maintainers:
+  - Jorge Marques <jorge.marques@analog.com>
+
+description: |
+  Analog Devices AD4062 Single Channel Precision SAR ADC family
+
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ad4060.pdf
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ad4062.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ad4060
+      - adi,ad4062
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Two pins are available that can be configured as either a general purpose
+      digital output, device enable signal (used to synchronise other parts of
+      the signal chain with ADC sampling), device ready (GP1 only) or various
+      interrupt signals. If intended for use as a GPIO or device enable, will not
+      present here.
+    minItems: 1
+    items:
+      - description:
+          GP0 pin, cannot be configured as DEV_RDY.
+      - description:
+          GP1 pin, can be configured to any setting.
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - const: gp0
+      - const: gp1
+
+  gpio-controller:
+    description:
+      Marks the device node as a GPIO controller. GPs not listed as interrupts
+      are exposed as a GPO.
+
+  '#gpio-cells':
+    const: 2
+    description:
+      The first cell is the GPIO number and the second cell specifies
+      GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
+
+  vdd-supply:
+    description: Analog power supply.
+
+  vio-supply:
+    description: Digital interface logic power supply.
+
+  ref-supply:
+    description:
+      Reference voltage to set the ADC full-scale range. If not present,
+      vdd-supply is used as the reference voltage.
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+  - vio-supply
+
+allOf:
+  - $ref: /schemas/i3c/i3c.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i3c {
+        #address-cells = <3>;
+        #size-cells = <0>;
+
+        adc@0,2ee007c0000 {
+            reg = <0x0 0x2ee 0x7c0000>;
+            vdd-supply = <&vdd>;
+            vio-supply = <&vio>;
+            ref-supply = <&ref>;
+
+            interrupt-parent = <&gpio>;
+            interrupts = <0 0 IRQ_TYPE_EDGE_RISING>,
+                         <0 1 IRQ_TYPE_EDGE_FALLING>;
+            interrupt-names = "gp0", "gp1";
+        };
+    };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i3c {
+        #address-cells = <3>;
+        #size-cells = <0>;
+
+        adc@0,2ee007c0000 {
+            reg = <0x0 0x2ee 0x7c0000>;
+            vdd-supply = <&vdd>;
+            vio-supply = <&vio>;
+            ref-supply = <&ref>;
+
+            gpio-controller;
+            #gpio-cells = <2>;
+        };
+    };
diff --git a/Bindings/iio/adc/adi,ad4134.yaml b/Bindings/iio/adc/adi,ad4134.yaml
new file mode 100644 (file)
index 0000000..ea6d7e0
--- /dev/null
@@ -0,0 +1,191 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad4134.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD4134 ADC
+
+maintainers:
+  - Marcelo Schmitt <marcelo.schmitt@analog.com>
+
+description: |
+  The AD4134 is a quad channel, low noise, simultaneous sampling, precision
+  analog-to-digital converter (ADC).
+  Specifications can be found at:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad4134.pdf
+
+$ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - adi,ad4134
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 50000000
+
+  avdd5-supply:
+    description: A 5V supply that powers the chip's analog circuitry.
+
+  dvdd5-supply:
+    description: A 5V supply that powers the chip's digital circuitry.
+
+  iovdd-supply:
+    description:
+      A 1.8V supply that sets the logic levels for the digital interface pins.
+
+  refin-supply:
+    description:
+      A 4.096V or 5V supply that serves as reference for ADC conversions.
+
+  avdd1v8-supply:
+    description: A 1.8V supply used by the analog circuitry.
+
+  dvdd1v8-supply:
+    description: A 1.8V supply used by the digital circuitry.
+
+  clkvdd-supply:
+    description: A 1.8V supply for the chip's clock management circuit.
+
+  ldoin-supply:
+    description:
+      A 2.6V to 5.5V supply that generates 1.8V for AVDD1V8, DVDD1V8, and CLKVDD
+      pins.
+
+  clocks:
+    maxItems: 1
+    description:
+      Required external clock source. Can specify either a crystal or CMOS clock
+      source. If an external crystal is set, connect the CLKSEL pin to IOVDD.
+      Otherwise, connect the CLKSEL pin to IOGND and the external CMOS clock
+      signal to the XTAL2/CLKIN pin.
+
+  clock-names:
+    enum:
+      - xtal
+      - clkin
+    default: clkin
+
+  '#clock-cells':
+    const: 0
+
+  clock-output-names:
+    maxItems: 1
+
+  regulators:
+    type: object
+    description:
+      list of regulators provided by this controller.
+
+    properties:
+      vcm-output:
+        $ref: /schemas/regulator/regulator.yaml#
+        type: object
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
+  reset-gpios:
+    maxItems: 1
+
+  powerdown-gpios:
+    description:
+      Active low GPIO connected to the /PDN pin. Forces the device into full
+      power-down mode when brought low. Pull this input to IOVDD for normal
+      operation.
+    maxItems: 1
+
+  odr-gpios:
+    description:
+      GPIO connected to ODR pin. Used to sample ADC data in minimum I/O mode.
+    maxItems: 1
+
+  adi,asrc-mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      Asynchronous Sample Rate Converter (ASRC) operation mode control input.
+      Describes whether the MODE pin is set to a high level (for master mode
+      operation) or to a low level (for slave mode operation).
+    enum: [ high, low ]
+    default: low
+
+  adi,dclkio:
+    description:
+      DCLK pin I/O direction control for when the device operates in Pin Control
+      Slave Mode or in SPI Control Mode. Describes if DEC0/DCLKIO pin is at a
+      high level (which configures DCLK as an output) or to set to a low level
+      (configuring DCLK for input).
+    enum: [ out, in ]
+    default: in
+
+  adi,dclkmode:
+    description:
+      DCLK mode control for when the device operates in Pin Control Slave Mode
+      or in SPI Control Mode. Describes whether the DEC1/DCLKMODE pin is set to
+      a high level (configuring the DCLK to operate in free running mode) or
+      to a low level (to configure DCLK to operate in gated mode).
+    enum: [ free-running, gated ]
+    default: gated
+
+required:
+  - compatible
+  - reg
+  - avdd5-supply
+  - dvdd5-supply
+  - iovdd-supply
+  - refin-supply
+  - clocks
+  - clock-names
+
+oneOf:
+  - required:
+      - ldoin-supply
+  - required:
+      - avdd1v8-supply
+      - dvdd1v8-supply
+      - clkvdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad4134";
+            reg = <0>;
+
+            spi-max-frequency = <1000000>;
+
+            reset-gpios = <&gpio0 86 GPIO_ACTIVE_LOW>;
+            odr-gpios = <&gpio0 87 GPIO_ACTIVE_HIGH>;
+            powerdown-gpios = <&gpio0 88 GPIO_ACTIVE_LOW>;
+
+            clocks = <&sys_clk>;
+            clock-names = "clkin";
+
+            avdd5-supply = <&avdd5>;
+            dvdd5-supply = <&dvdd5>;
+            iovdd-supply = <&iovdd>;
+            refin-supply = <&refin>;
+            avdd1v8-supply = <&avdd1v8>;
+            dvdd1v8-supply = <&dvdd1v8>;
+            clkvdd-supply = <&clkvdd>;
+
+            regulators {
+                vcm_reg: vcm-output {
+                    regulator-name = "ad4134-vcm";
+                };
+            };
+
+        };
+    };
+...
index cbde7a0505d2b5df22c54ca4556878bf22e9b4b1..ae8d0b5f328b8021cc1f6c508df400111a78e8f3 100644 (file)
@@ -38,8 +38,9 @@ properties:
   spi-cpha: true
 
   spi-rx-bus-width:
-    minimum: 1
-    maximum: 4
+    items:
+      minimum: 1
+      maximum: 4
 
   avdd-supply:
     description: Analog power supply.
index c06d0fc791d39348d1bb0f26d200ae0f1be7a6da..dfa2d7fa9fb37e8460e0478598cc28993d172381 100644 (file)
@@ -4,18 +4,26 @@
 $id: http://devicetree.org/schemas/iio/adc/adi,ad7768-1.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Analog Devices AD7768-1 ADC device driver
+title: Analog Devices AD7768-1 ADC family
 
 maintainers:
   - Michael Hennerich <michael.hennerich@analog.com>
 
 description: |
-  Datasheet at:
-    https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-1.pdf
+  Analog Devices AD7768-1 24-Bit Single Channel Low Power sigma-delta ADC family
+
+  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7768-1.pdf
+  https://www.analog.com/media/en/technical-documentation/data-sheets/adaq7767-1.pdf
+  https://www.analog.com/media/en/technical-documentation/data-sheets/adaq7768-1.pdf
+  https://www.analog.com/media/en/technical-documentation/data-sheets/adaq7769-1.pdf
 
 properties:
   compatible:
-    const: adi,ad7768-1
+    enum:
+      - adi,ad7768-1
+      - adi,adaq7767-1
+      - adi,adaq7768-1
+      - adi,adaq7769-1
 
   reg:
     maxItems: 1
@@ -58,6 +66,25 @@ properties:
     description:
       ADC reference voltage supply
 
+  adi,aaf-gain-bp:
+    description: |
+       Specifies the gain applied by the Analog Anti-Aliasing Filter (AAF)
+       to the ADC input in basis points (one hundredth of a percent).
+       The hardware gain is determined by which input pin(s) the signal goes
+       through into the AAF. The possible connections are:
+       * For the ADAQ7767-1: Input connected to IN1±, IN2± or IN3±.
+       * For the ADAQ7769-1: OUT_PGA pin connected to IN1_AAF+, IN2_AAF+,
+         or IN3_AAF+.
+    enum: [1430, 3640, 10000]
+    default: 10000
+
+  pga-gpios:
+    description:
+      GAIN 0, GAIN1 and GAIN2 pins for gain selection. For devices that have
+      PGA configuration input pins, pga-gpios must be defined.
+    minItems: 3
+    maxItems: 3
+
   adi,sync-in-gpios:
     maxItems: 1
     description:
@@ -147,6 +174,35 @@ patternProperties:
 allOf:
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
+  # AAF Gain property only applies to ADAQ7767-1 and ADAQ7769-1 devices
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adaq7767-1
+              - adi,adaq7769-1
+    then:
+      required:
+        - adi,aaf-gain-bp
+    else:
+      properties:
+        adi,aaf-gain-bp: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adaq7768-1
+              - adi,adaq7769-1
+    then:
+      required:
+        - pga-gpios
+    else:
+      properties:
+        pga-gpios: false
+
 unevaluatedProperties: false
 
 examples:
index 2606c0c5dfc61fd65cd0fb2015b3f659c2fc9e07..5acfb0eef4d5cf487adaa93ce5bda759bb4853c9 100644 (file)
@@ -18,6 +18,7 @@ description: |
   All the parts support the register map described by Application Note AN-877
    https://www.analog.com/media/en/technical-documentation/application-notes/AN-877.pdf
 
+  https://www.analog.com/media/en/technical-documentation/data-sheets/AD9211.pdf
   https://www.analog.com/media/en/technical-documentation/data-sheets/AD9265.pdf
   https://www.analog.com/media/en/technical-documentation/data-sheets/AD9434.pdf
   https://www.analog.com/media/en/technical-documentation/data-sheets/AD9467.pdf
@@ -25,6 +26,7 @@ description: |
 properties:
   compatible:
     enum:
+      - adi,ad9211
       - adi,ad9265
       - adi,ad9434
       - adi,ad9467
index 509bfb1007c460fad874225f1eb1324b077325e2..249101b55cf4e7f4f8b45d2c7aa9c110a6eecbdc 100644 (file)
@@ -44,6 +44,9 @@ properties:
       Input clock used to derive the sample clock. Expected to be the
       SoC's APB clock.
 
+  interrupts:
+    maxItems: 1
+
   resets:
     maxItems: 1
 
diff --git a/Bindings/iio/adc/nxp,s32g2-sar-adc.yaml b/Bindings/iio/adc/nxp,s32g2-sar-adc.yaml
new file mode 100644 (file)
index 0000000..ec258f2
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/nxp,s32g2-sar-adc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP Successive Approximation ADC
+
+description:
+  The NXP SAR ADC provides fast and accurate analog-to-digital
+  conversion using the Successive Approximation Register (SAR) method.
+  It has 12-bit resolution with 8 input channels. Conversions can be
+  launched in software or using hardware triggers. It supports
+  continuous and one-shot modes with separate registers.
+
+maintainers:
+  - Daniel Lezcano <daniel.lezcano@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - const: nxp,s32g2-sar-adc
+      - items:
+          - const: nxp,s32g3-sar-adc
+          - const: nxp,s32g2-sar-adc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  dmas:
+    maxItems: 1
+
+  dma-names:
+    const: rx
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - dmas
+  - dma-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    adc@401f8000 {
+        compatible = "nxp,s32g2-sar-adc";
+        reg = <0x401f8000 0x1000>;
+        interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clks 0x41>;
+        dmas = <&edma0 0 32>;
+        dma-names = "rx";
+    };
diff --git a/Bindings/iio/adc/ti,ads1018.yaml b/Bindings/iio/adc/ti,ads1018.yaml
new file mode 100644 (file)
index 0000000..81ee024
--- /dev/null
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/ti,ads1018.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI ADS1018/ADS1118 SPI analog to digital converter
+
+maintainers:
+  - Kurt Borja <kuurtb@gmail.com>
+
+description: |
+  The ADS1018/ADS1118 is a precision, low-power, 12-bit/16-bit, analog to
+  digital converter (ADC). It integrates a programmable gain amplifier (PGA),
+  internal voltage reference, oscillator and high-accuracy temperature sensor.
+
+  Datasheets:
+    - ADS1018: https://www.ti.com/lit/ds/symlink/ads1018.pdf
+    - ADS1118: https://www.ti.com/lit/ds/symlink/ads1118.pdf
+
+properties:
+  compatible:
+    enum:
+      - ti,ads1018
+      - ti,ads1118
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+
+  spi-max-frequency:
+    maximum: 4000000
+
+  spi-cpha: true
+
+  interrupts:
+    description: DOUT/DRDY (Data Out/Data Ready) line.
+    maxItems: 1
+
+  drdy-gpios:
+    description:
+      Extra GPIO line connected to DOUT/DRDY (Data Out/Data Ready). This allows
+      distinguishing between interrupts triggered by the data-ready signal and
+      interrupts triggered by an SPI transfer.
+    maxItems: 1
+
+  '#io-channel-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "ti,ads1118";
+            reg = <0>;
+
+            spi-max-frequency = <4000000>;
+            spi-cpha;
+
+            vdd-supply = <&vdd_3v3_reg>;
+
+            interrupts-extended = <&gpio 14 IRQ_TYPE_EDGE_FALLING>;
+            drdy-gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+        };
+    };
diff --git a/Bindings/iio/adc/ti,ads131m02.yaml b/Bindings/iio/adc/ti,ads131m02.yaml
new file mode 100644 (file)
index 0000000..5d52bb7
--- /dev/null
@@ -0,0 +1,208 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/ti,ads131m02.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments ADS131M0x 2-, 3-, 4-, 6- and 8-Channel ADCs
+
+maintainers:
+  - Oleksij Rempel <o.rempel@pengutronix.de>
+
+description: |
+  The ADS131M0x are a family of multichannel, simultaneous sampling,
+  24-bit, delta-sigma, analog-to-digital converters (ADCs) with a
+  built-in programmable gain amplifier (PGA) and internal reference.
+  Communication with the ADC chip is via SPI.
+
+  Datasheets:
+  - ADS131M02: https://www.ti.com/lit/ds/symlink/ads131m02.pdf
+  - ADS131M03: https://www.ti.com/lit/ds/symlink/ads131m03.pdf
+  - ADS131M04: https://www.ti.com/lit/ds/symlink/ads131m04.pdf
+  - ADS131M06: https://www.ti.com/lit/ds/symlink/ads131m06.pdf
+  - ADS131M08: https://www.ti.com/lit/ds/symlink/ads131m08.pdf
+
+properties:
+  compatible:
+    enum:
+      - ti,ads131m02
+      - ti,ads131m03
+      - ti,ads131m04
+      - ti,ads131m06
+      - ti,ads131m08
+
+  reg:
+    description: SPI chip select number.
+
+  clocks:
+    description:
+      Phandle to the external clock source required by the ADC's CLKIN pin.
+      The datasheet recommends specific frequencies based on the desired power
+      mode (e.g., 8.192 MHz for High-Resolution mode).
+    maxItems: 1
+
+  avdd-supply:
+    description: Analog power supply (AVDD).
+
+  dvdd-supply:
+    description: Digital power supply (DVDD).
+
+  interrupts:
+    description: DRDY (Data Ready) output signal.
+    maxItems: 1
+
+  reset-gpios:
+    description: Optional RESET signal.
+    maxItems: 1
+
+  clock-names:
+    description:
+      Indicates if a crystal oscillator (XTAL) or CMOS signal is connected
+      (CLKIN). Note that XTAL mode is only supported on ADS131M06 and ADS131M08.
+    enum: [xtal, clkin]
+
+  refin-supply:
+    description: Optional external reference supply (REFIN).
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - avdd-supply
+  - dvdd-supply
+
+patternProperties:
+  "^channel@[0-7]$":
+    type: object
+    $ref: /schemas/iio/adc/adc.yaml#
+    description: Properties for a single ADC channel.
+
+    properties:
+      reg:
+        description: The channel index (0-7).
+        minimum: 0
+        maximum: 7  # Max channels on ADS131M08
+
+      label: true
+
+    required:
+      - reg
+
+    unevaluatedProperties: false
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+  - if:
+      # 20-pin devices: M02, M03, M04
+      # These do not support XTAL or REFIN.
+      properties:
+        compatible:
+          enum:
+            - ti,ads131m02
+            - ti,ads131m03
+            - ti,ads131m04
+    then:
+      properties:
+        clock-names:
+          const: clkin
+        refin-supply: false
+
+  - if:
+      # ADS131M02: 2 channels max (0-1)
+      properties:
+        compatible:
+          contains:
+            const: ti,ads131m02
+    then:
+      patternProperties:
+        "^channel@[0-1]$":
+          properties:
+            reg:
+              maximum: 1
+        "^channel@[2-7]$": false
+
+  - if:
+      # ADS131M03: 3 channels max (0-2)
+      properties:
+        compatible:
+          contains:
+            const: ti,ads131m03
+    then:
+      patternProperties:
+        "^channel@[0-2]$":
+          properties:
+            reg:
+              maximum: 2
+        "^channel@[3-7]$": false
+
+  - if:
+      # ADS131M04: 4 channels max (0-3)
+      properties:
+        compatible:
+          contains:
+            const: ti,ads131m04
+    then:
+      patternProperties:
+        "^channel@[0-3]$":
+          properties:
+            reg:
+              maximum: 3
+        "^channel@[4-7]$": false
+
+  - if:
+      # ADS131M06: 6 channels max (0-5)
+      properties:
+        compatible:
+          contains:
+            const: ti,ads131m06
+    then:
+      patternProperties:
+        "^channel@[0-5]$":
+          properties:
+            reg:
+              maximum: 5
+        "^channel@[6-7]$": false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/stm32mp1-clks.h>
+
+    spi1 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "ti,ads131m02";
+            reg = <0>;
+            spi-max-frequency = <8000000>;
+
+            clocks = <&rcc CK_MCO2>;
+            clock-names = "clkin";
+
+            avdd-supply = <&vdd_ana>;
+            dvdd-supply = <&vdd_dig>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            channel@0 {
+                reg = <0>;
+                label = "input_voltage";
+            };
+
+            channel@1 {
+                reg = <1>;
+                label = "input_current";
+            };
+        };
+    };
diff --git a/Bindings/iio/amplifiers/adi,adl8113.yaml b/Bindings/iio/amplifiers/adi,adl8113.yaml
new file mode 100644 (file)
index 0000000..6b8491d
--- /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/iio/amplifiers/adi,adl8113.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices ADL8113 Low Noise Amplifier with integrated bypass switches
+
+maintainers:
+  - Antoniu Miclaus <antoniu.miclaus@analog.com>
+
+description: |
+  The ADL8113 is a 10MHz to 12GHz Low Noise Amplifier with integrated bypass
+  switches controlled by two GPIO pins (VA and VB). The device supports four
+  operation modes:
+    - Internal Amplifier: VA=0, VB=0 - Signal passes through the internal LNA
+    - Internal Bypass: VA=1, VB=1 - Signal bypasses through internal path
+    - External Bypass A: VA=0, VB=1 - Signal routes from RFIN to OUT_A and from IN_A to RFOUT
+    - External Bypass B: VA=1, VB=0 - Signal routes from RFIN to OUT_B and from IN_B to RFOUT
+
+    https://www.analog.com/en/products/adl8113.html
+
+properties:
+  compatible:
+    const: adi,adl8113
+
+  vdd1-supply: true
+
+  vdd2-supply: true
+
+  vss2-supply: true
+
+  ctrl-gpios:
+    items:
+      - description: VA control pin
+      - description: VB control pin
+
+  adi,external-bypass-a-gain-db:
+    description:
+      Gain in dB of external amplifier connected to bypass path A (OUT_A/IN_A).
+      When specified, this gain value becomes selectable via the hardwaregain
+      attribute and automatically routes through the external A path.
+
+  adi,external-bypass-b-gain-db:
+    description:
+      Gain in dB of external amplifier connected to bypass path B (OUT_B/IN_B).
+      When specified, this gain value becomes selectable via the hardwaregain
+      attribute and automatically routes through the external B path.
+
+required:
+  - compatible
+  - ctrl-gpios
+  - vdd1-supply
+  - vdd2-supply
+  - vss2-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    /* Basic configuration with only internal paths */
+    amplifier {
+        compatible = "adi,adl8113";
+        ctrl-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>,
+                     <&gpio 23 GPIO_ACTIVE_HIGH>;
+        vdd1-supply = <&vdd1_5v>;
+        vdd2-supply = <&vdd2_3v3>;
+        vss2-supply = <&vss2_neg>;
+    };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    /* Configuration with external bypass amplifiers */
+    amplifier {
+        compatible = "adi,adl8113";
+        ctrl-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>,
+                     <&gpio 25 GPIO_ACTIVE_HIGH>;
+        vdd1-supply = <&vdd1_5v>;
+        vdd2-supply = <&vdd2_3v3>;
+        vss2-supply = <&vss2_neg>;
+        adi,external-bypass-a-gain-db = <20>;  /* 20dB external amp on path A */
+        adi,external-bypass-b-gain-db = <6>;   /* 6dB external amp on path B */
+    };
+...
diff --git a/Bindings/iio/dac/adi,max22007.yaml b/Bindings/iio/dac/adi,max22007.yaml
new file mode 100644 (file)
index 0000000..93d95f6
--- /dev/null
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/adi,max22007.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices MAX22007 DAC
+
+maintainers:
+  - Janani Sunil <janani.sunil@analog.com>
+
+description:
+  The MAX22007 is a quad-channel, 12-bit digital-to-analog converter (DAC)
+  with integrated precision output amplifiers and current output capability.
+  Each channel can be independently configured for voltage or current output.
+  Datasheet available at https://www.analog.com/en/products/max22007.html
+
+$ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    const: adi,max22007
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 500000
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  vdd-supply:
+    description: Low-Voltage Power Supply from +2.7V to +5.5V.
+
+  hvdd-supply:
+    description:
+      Positive High-Voltage Power Supply from +8V to (HVSS +24V) for
+      the Output Channels.
+
+  hvss-supply:
+    description:
+      Optional Negative High-Voltage Power Supply from -2V to 0V for the Output
+      Channels. For most applications HVSS can be connected to GND (0V), but for
+      applications requiring output down to true 0V or 0mA, connect to a -2V supply.
+
+  reset-gpios:
+    maxItems: 1
+    description:
+      Active low GPIO.
+
+patternProperties:
+  "^channel@[0-3]$":
+    $ref: /schemas/iio/dac/dac.yaml#
+    type: object
+    description:
+      Represents the external channels which are connected to the DAC.
+
+    properties:
+      reg:
+        description: Channel number
+        items:
+          minimum: 0
+          maximum: 3
+
+      adi,ch-func:
+        description:
+          Channel output type. Use CH_FUNC_VOLTAGE_OUTPUT for voltage
+          output or CH_FUNC_CURRENT_OUTPUT for current output.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [1, 2]
+
+    required:
+      - reg
+      - adi,ch-func
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+  - hvdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/iio/addac/adi,ad74413r.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        dac@0 {
+            compatible = "adi,max22007";
+            reg = <0>;
+            spi-max-frequency = <500000>;
+            reset-gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+            vdd-supply = <&vdd_reg>;
+            hvdd-supply = <&hvdd_reg>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            channel@0 {
+                reg = <0>;
+                adi,ch-func = <CH_FUNC_VOLTAGE_OUTPUT>;
+            };
+
+            channel@1 {
+                reg = <1>;
+                adi,ch-func = <CH_FUNC_CURRENT_OUTPUT>;
+            };
+        };
+    };
+...
diff --git a/Bindings/iio/dac/microchip,mcp47feb02.yaml b/Bindings/iio/dac/microchip,mcp47feb02.yaml
new file mode 100644 (file)
index 0000000..d2466aa
--- /dev/null
@@ -0,0 +1,302 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/dac/microchip,mcp47feb02.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip MCP47F(E/V)B(0/1/2)(1/2/4/8) DAC with I2C Interface Families
+
+maintainers:
+  - Ariana Lazar <ariana.lazar@microchip.com>
+
+description: |
+  Datasheet for MCP47FEB01, MCP47FEB11, MCP47FEB21, MCP47FEB02, MCP47FEB12,
+  MCP47FEB22 can be found here:
+    https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005375A.pdf
+  Datasheet for MCP47FVB01, MCP47FVB11, MCP47FVB21, MCP47FVB02, MCP47FVB12,
+  MCP47FVB22 can be found here:
+    https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005405A.pdf
+  Datasheet for MCP47FEB04, MCP47FEB14, MCP47FEB24, MCP47FEB08, MCP47FEB18,
+  MCP47FEB28, MCP47FVB04, MCP47FVB14, MCP47FVB24, MCP47FVB08, MCP47FVB18,
+  MCP47FVB28 can be found here:
+    https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/MCP47FXBX48-Data-Sheet-DS200006368A.pdf
+
+  +------------+--------------+-------------+-------------+------------+
+  | Device     |  Resolution  |   Channels  | Vref number | Memory     |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FEB01 |     8-bit    |      1      |      1      |   EEPROM   |
+  | MCP47FEB11 |    10-bit    |      1      |      1      |   EEPROM   |
+  | MCP47FEB21 |    12-bit    |      1      |      1      |   EEPROM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FEB02 |     8-bit    |      2      |      1      |   EEPROM   |
+  | MCP47FEB12 |    10-bit    |      2      |      1      |   EEPROM   |
+  | MCP47FEB22 |    12-bit    |      2      |      1      |   EEPROM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FVB01 |     8-bit    |      1      |      1      |      RAM   |
+  | MCP47FVB11 |    10-bit    |      1      |      1      |      RAM   |
+  | MCP47FVB21 |    12-bit    |      1      |      1      |      RAM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FVB02 |     8-bit    |      2      |      1      |      RAM   |
+  | MCP47FVB12 |    10-bit    |      2      |      1      |      RAM   |
+  | MCP47FVB22 |    12-bit    |      2      |      1      |      RAM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FVB04 |     8-bit    |      4      |      2      |      RAM   |
+  | MCP47FVB14 |    10-bit    |      4      |      2      |      RAM   |
+  | MCP47FVB24 |    12-bit    |      4      |      2      |      RAM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FVB08 |     8-bit    |      8      |      2      |      RAM   |
+  | MCP47FVB18 |    10-bit    |      8      |      2      |      RAM   |
+  | MCP47FVB28 |    12-bit    |      8      |      2      |      RAM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FEB04 |     8-bit    |      4      |      2      |   EEPROM   |
+  | MCP47FEB14 |    10-bit    |      4      |      2      |   EEPROM   |
+  | MCP47FEB24 |    12-bit    |      4      |      2      |   EEPROM   |
+  |------------|--------------|-------------|-------------|------------|
+  | MCP47FEB08 |     8-bit    |      8      |      2      |   EEPROM   |
+  | MCP47FEB18 |    10-bit    |      8      |      2      |   EEPROM   |
+  | MCP47FEB28 |    12-bit    |      8      |      2      |   EEPROM   |
+  +------------+--------------+-------------+-------------+------------+
+
+properties:
+  compatible:
+    enum:
+      - microchip,mcp47feb01
+      - microchip,mcp47feb11
+      - microchip,mcp47feb21
+      - microchip,mcp47feb02
+      - microchip,mcp47feb12
+      - microchip,mcp47feb22
+      - microchip,mcp47fvb01
+      - microchip,mcp47fvb11
+      - microchip,mcp47fvb21
+      - microchip,mcp47fvb02
+      - microchip,mcp47fvb12
+      - microchip,mcp47fvb22
+      - microchip,mcp47fvb04
+      - microchip,mcp47fvb14
+      - microchip,mcp47fvb24
+      - microchip,mcp47fvb08
+      - microchip,mcp47fvb18
+      - microchip,mcp47fvb28
+      - microchip,mcp47feb04
+      - microchip,mcp47feb14
+      - microchip,mcp47feb24
+      - microchip,mcp47feb08
+      - microchip,mcp47feb18
+      - microchip,mcp47feb28
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  vdd-supply:
+    description:
+      Provides power to the chip and it could be used as reference voltage. The
+      voltage is used to calculate scale. For parts without EEPROM at powerup
+      this will be the selected as voltage reference.
+
+  vref-supply:
+    description: |
+      Vref pin (it could be found as Vref0 into the datasheet) may be used as a
+      voltage reference when this supply is specified. The internal reference
+      will be taken into account for voltage reference besides VDD if this supply
+      does not exist.
+
+      This supply will be voltage reference for the following outputs:
+        - for single-channel device: Vout0;
+        - for dual-channel device: Vout0, Vout1;
+        - for quad-channel device: Vout0, Vout2;
+        - for octal-channel device: Vout0, Vout2, Vout6, Vout8;
+
+  vref1-supply:
+    description: |
+      Vref1 pin may be used as a voltage reference when this supply is specified.
+      The internal reference will be taken into account for voltage reference
+      beside VDD if this supply does not exist.
+
+      This supply will be voltage reference for the following outputs:
+        - for quad-channel device: Vout1, Vout3;
+        - for octal-channel device: Vout1, Vout3, Vout5, Vout7;
+
+  lat-gpios:
+    description:
+      LAT pin to be used as a hardware trigger to synchronously update the DAC
+      channels. The pin is active Low. It could be also found as LAT0 in
+      datasheet.
+    maxItems: 1
+
+  lat1-gpios:
+    description:
+      LAT1 pin to be used as a hardware trigger to synchronously update the odd
+      DAC channels on devices with 4 and 8 channels. The pin is active Low.
+    maxItems: 1
+
+  microchip,vref-buffered:
+    type: boolean
+    description:
+      Enable buffering of the external Vref/Vref0 pin in cases where the
+      external reference voltage does not have sufficient current capability in
+      order not to drop it’s voltage when connected to the internal resistor
+      ladder circuit.
+
+  microchip,vref1-buffered:
+    type: boolean
+    description:
+      Enable buffering of the external Vref1 pin in cases where the external
+      reference voltage does not have sufficient current capability in order not
+      to drop it’s voltage when connected to the internal resistor ladder
+      circuit.
+
+patternProperties:
+  "^channel@[0-7]$":
+    $ref: dac.yaml
+    type: object
+    description: Voltage output channel.
+
+    properties:
+      reg:
+        description: The channel number.
+        minItems: 1
+        maxItems: 8
+
+      label:
+        description: Unique name to identify which channel this is.
+
+    required:
+      - reg
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - microchip,mcp47feb01
+              - microchip,mcp47feb11
+              - microchip,mcp47feb21
+              - microchip,mcp47fvb01
+              - microchip,mcp47fvb11
+              - microchip,mcp47fvb21
+    then:
+      properties:
+        lat1-gpios: false
+        vref1-supply: false
+        microchip,vref1-buffered: false
+        channel@0:
+          properties:
+            reg:
+              const: 0
+      patternProperties:
+        "^channel@[1-7]$": false
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - microchip,mcp47feb02
+              - microchip,mcp47feb12
+              - microchip,mcp47feb22
+              - microchip,mcp47fvb02
+              - microchip,mcp47fvb12
+              - microchip,mcp47fvb22
+    then:
+      properties:
+        lat1-gpios: false
+        vref1-supply: false
+        microchip,vref1-buffered: false
+      patternProperties:
+        "^channel@[0-1]$":
+          properties:
+            reg:
+              enum: [0, 1]
+        "^channel@[2-7]$": false
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - microchip,mcp47fvb04
+              - microchip,mcp47fvb14
+              - microchip,mcp47fvb24
+              - microchip,mcp47feb04
+              - microchip,mcp47feb14
+              - microchip,mcp47feb24
+    then:
+      patternProperties:
+        "^channel@[0-3]$":
+          properties:
+            reg:
+              enum: [0, 1, 2, 3]
+        "^channel@[4-7]$": false
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - microchip,mcp47fvb08
+              - microchip,mcp47fvb18
+              - microchip,mcp47fvb28
+              - microchip,mcp47feb08
+              - microchip,mcp47feb18
+              - microchip,mcp47feb28
+    then:
+      patternProperties:
+        "^channel@[0-7]$":
+          properties:
+            reg:
+              enum: [0, 1, 2, 3, 4, 5, 6, 7]
+  - if:
+      not:
+        required:
+          - vref-supply
+    then:
+      properties:
+        microchip,vref-buffered: false
+  - if:
+      not:
+        required:
+          - vref1-supply
+    then:
+      properties:
+        microchip,vref1-buffered: false
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+        dac@0 {
+          compatible = "microchip,mcp47feb02";
+          reg = <0>;
+          vdd-supply = <&vdac_vdd>;
+          vref-supply = <&vref_reg>;
+
+          #address-cells = <1>;
+          #size-cells = <0>;
+          channel@0 {
+            reg = <0>;
+            label = "Adjustable_voltage_ch0";
+          };
+
+          channel@1 {
+            reg = <0x1>;
+            label = "Adjustable_voltage_ch1";
+          };
+      };
+    };
+...
index 5f950ee9aec7613357dd7e00d028983d2f4a0ff4..be69b9c68e7410240dec418cad1989798f654f3c 100644 (file)
@@ -40,6 +40,12 @@ properties:
     items:
       - const: ref_in
 
+  '#clock-cells':
+    const: 0
+
+  clock-output-names:
+    maxItems: 1
+
   chip-enable-gpios:
     description:
       GPIO that controls the Chip Enable Pin.
@@ -97,6 +103,8 @@ examples:
             spi-max-frequency = <10000000>;
             clocks = <&adf4377_ref_in>;
             clock-names = "ref_in";
+            #clock-cells = <0>;
+            clock-output-names = "adf4377";
         };
     };
 ...
diff --git a/Bindings/iio/pressure/honeywell,abp2030pa.yaml b/Bindings/iio/pressure/honeywell,abp2030pa.yaml
new file mode 100644 (file)
index 0000000..e82897f
--- /dev/null
@@ -0,0 +1,132 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/pressure/honeywell,abp2030pa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Honeywell abp2030pa pressure sensor
+
+maintainers:
+  - Petre Rodan <petre.rodan@subdimension.ro>
+
+description: |
+  Honeywell pressure sensor of model abp2030pa.
+
+  This sensor has an I2C and SPI interface.
+
+  There are many models with different pressure ranges available. The vendor
+  calls them "ABP2 series". All of them have an identical programming model and
+  differ in the pressure range and measurement unit.
+
+  To support different models one needs to specify its pressure triplet.
+
+  For custom silicon chips not covered by the Honeywell ABP2 series datasheet,
+  the pressure values can be specified manually via honeywell,pmin-pascal and
+  honeywell,pmax-pascal.
+
+  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/basic-abp2-series/documents/sps-siot-abp2-series-datasheet-32350268-en.pdf
+
+properties:
+  compatible:
+    const: honeywell,abp2030pa
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Optional interrupt for indicating end of conversion.
+      SPI variants of ABP2 chips do not provide this feature.
+    maxItems: 1
+
+  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, unset and provide pmin-pascal and pmax-pascal instead.
+    enum: [001BA, 1.6BA, 2.5BA, 004BA, 006BA, 008BA, 010BA, 012BA, 001BD,
+           1.6BD, 2.5BD, 004BD, 001BG, 1.6BG, 2.5BG, 004BG, 006BG, 008BG,
+           010BG, 012BG, 001GG, 1.2GG, 100KA, 160KA, 250KA, 001KD, 1.6KD,
+           2.5KD, 004KD, 006KD, 010KD, 016KD, 025KD, 040KD, 060KD, 100KD,
+           160KD, 250KD, 400KD, 001KG, 1.6KG, 2.5KG, 004KG, 006KG, 010KG,
+           016KG, 025KG, 040KG, 060KG, 100KG, 160KG, 250KG, 400KG, 600KG,
+           800KG, 250LD, 600LD, 600LG, 2.5MD, 006MD, 010MD, 016MD, 025MD,
+           040MD, 060MD, 100MD, 160MD, 250MD, 400MD, 600MD, 006MG, 010MG,
+           016MG, 025MG, 040MG, 060MG, 100MG, 160MG, 250MG, 400MG, 600MG,
+           001ND, 002ND, 004ND, 005ND, 010ND, 020ND, 030ND, 002NG, 004NG,
+           005NG, 010NG, 020NG, 030NG, 015PA, 030PA, 060PA, 100PA, 150PA,
+           175PA, 001PD, 005PD, 015PD, 030PD, 060PD, 001PG, 005PG, 015PG,
+           030PG, 060PG, 100PG, 150PG, 175PG]
+    $ref: /schemas/types.yaml#/definitions/string
+
+  honeywell,pmin-pascal:
+    description:
+      Minimum pressure value the sensor can measure in pascal.
+
+  honeywell,pmax-pascal:
+    description:
+      Maximum pressure value the sensor can measure in pascal.
+
+  spi-max-frequency:
+    maximum: 800000
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+oneOf:
+  - required:
+      - honeywell,pressure-triplet
+  - required:
+      - honeywell,pmin-pascal
+      - honeywell,pmax-pascal
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml
+  - if:
+      required:
+        - honeywell,pressure-triplet
+    then:
+      properties:
+        honeywell,pmin-pascal: false
+        honeywell,pmax-pascal: false
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pressure@18 {
+            compatible = "honeywell,abp2030pa";
+            reg = <0x18>;
+            interrupt-parent = <&gpio3>;
+            interrupts = <21 IRQ_TYPE_EDGE_RISING>;
+
+            honeywell,pressure-triplet = "001BA";
+            vdd-supply = <&vcc_3v3>;
+        };
+    };
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pressure@0 {
+            compatible = "honeywell,abp2030pa";
+            reg = <0>;
+            spi-max-frequency = <800000>;
+
+            honeywell,pressure-triplet = "001PD";
+            vdd-supply = <&vcc_3v3>;
+        };
+    };
+...
diff --git a/Bindings/iio/proximity/rfdigital,rfd77402.yaml b/Bindings/iio/proximity/rfdigital,rfd77402.yaml
new file mode 100644 (file)
index 0000000..1ef6326
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/proximity/rfdigital,rfd77402.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RF Digital RFD77402 ToF sensor
+
+maintainers:
+  - Shrikant Raskar <raskar.shree97@gmail.com>
+
+description:
+  The RF Digital RFD77402 is a Time-of-Flight (ToF) proximity and distance
+  sensor providing up to 200 mm range measurement over an I2C interface.
+
+properties:
+  compatible:
+    const: rfdigital,rfd77402
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+    description:
+      Interrupt asserted when a new distance measurement is available.
+
+  vdd-supply:
+    description: Regulator that provides power to the sensor.
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        proximity@4c {
+            compatible = "rfdigital,rfd77402";
+            reg = <0x4c>;
+            vdd-supply = <&vdd_3v3>;
+            interrupt-parent = <&gpio>;
+            interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+        };
+    };
+...
diff --git a/Bindings/input/focaltech,ft8112.yaml b/Bindings/input/focaltech,ft8112.yaml
new file mode 100644 (file)
index 0000000..197f30b
--- /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/input/focaltech,ft8112.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: FocalTech FT8112 touchscreen controller
+
+maintainers:
+  - Daniel Peng <Daniel_Peng@pegatron.corp-partner.google.com>
+
+description:
+  Supports the FocalTech FT8112 touchscreen controller.
+  This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
+
+allOf:
+  - $ref: /schemas/input/touchscreen/touchscreen.yaml#
+
+properties:
+  compatible:
+    enum:
+      - focaltech,ft8112
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  panel: true
+
+  reset-gpios:
+    maxItems: 1
+
+  vcc33-supply: true
+
+  vccio-supply: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - vcc33-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      touchscreen@38 {
+        compatible = "focaltech,ft8112";
+        reg = <0x38>;
+
+        interrupt-parent = <&pio>;
+        interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+
+        reset-gpios = <&pio 126 GPIO_ACTIVE_LOW>;
+        vcc33-supply = <&pp3300_tchscr_x>;
+      };
+    };
diff --git a/Bindings/input/google,goldfish-events-keypad.yaml b/Bindings/input/google,goldfish-events-keypad.yaml
new file mode 100644 (file)
index 0000000..4e3a010
--- /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/input/google,goldfish-events-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Events Keypad
+
+maintainers:
+  - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+allOf:
+  - $ref: input.yaml#
+
+description:
+  Android goldfish events keypad device generated by android emulator.
+
+properties:
+  compatible:
+    const: google,goldfish-events-keypad
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    keypad@9040000 {
+        compatible = "google,goldfish-events-keypad";
+        reg = <0x9040000 0x1000>;
+        interrupts = <5>;
+    };
index f978cf965a4d497cb7a4c670cea368c3ac70b67e..f2543d6faefdc42c36c4b9851e0f9532e73dd02a 100644 (file)
@@ -12,11 +12,18 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - qcom,pm8941-pwrkey
-      - qcom,pm8941-resin
-      - qcom,pmk8350-pwrkey
-      - qcom,pmk8350-resin
+    oneOf:
+      - enum:
+          - qcom,pm8941-pwrkey
+          - qcom,pm8941-resin
+          - qcom,pmk8350-pwrkey
+          - qcom,pmk8350-resin
+      - items:
+          - const: qcom,pmm8654au-pwrkey
+          - const: qcom,pmk8350-pwrkey
+      - items:
+          - const: qcom,pmm8654au-resin
+          - const: qcom,pmk8350-resin
 
   interrupts:
     maxItems: 1
index f369385ffaf0227412b908242de84cd7dbeb08f7..8685ef4481f4ab0850943715a4abd9ca84106018 100644 (file)
@@ -8,7 +8,7 @@ title: Synaptics RMI4 compliant devices
 
 maintainers:
   - Jason A. Donenfeld <Jason@zx2c4.com>
-  - Matthias Schiffer <matthias.schiffer@ew.tq-group.com
+  - Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
   - Vincent Huang <vincent.huang@tw.synaptics.com>
 
 description: |
index 7d3edb58f72d84ed19fb87fdd136c97f855aba00..6f90522de8c0afbe2d9d1e04578316350f66ec58 100644 (file)
@@ -39,6 +39,7 @@ properties:
       - edt,edt-ft5406
       - edt,edt-ft5506
       - evervision,ev-ft5726
+      - focaltech,ft3518
       - focaltech,ft5426
       - focaltech,ft5452
       - focaltech,ft6236
index a96137c6f06358be3284f7c15efc21c8e386b371..a26a54d63a1c0bec2102eef992c5dd383e532602 100644 (file)
@@ -42,6 +42,8 @@ properties:
       address, thus it can be driven by the host during the reset sequence.
     maxItems: 1
 
+  panel: true
+
   reset-gpios:
     maxItems: 1
 
diff --git a/Bindings/input/touchscreen/ilitek,ili210x.yaml b/Bindings/input/touchscreen/ilitek,ili210x.yaml
new file mode 100644 (file)
index 0000000..c47d775
--- /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/input/touchscreen/ilitek,ili210x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ilitek ILI21xx/ILI251x V3/V6 touch screen controller with i2c interface
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+  - Marek Vasut <marek.vasut+renesas@mailbox.org>
+
+properties:
+  compatible:
+    enum:
+      - ilitek,ili210x
+      - ilitek,ili2117
+      - ilitek,ili2120
+      - ilitek,ili251x
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  wakeup-source: true
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: touchscreen.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@41 {
+            compatible = "ilitek,ili2120";
+            reg = <0x41>;
+        };
+    };
index 0ef79343bf9a223501aff8b6a525b873e777ea20..dfaffbc398d30da778c9b75f1351c8743754d36d 100644 (file)
@@ -55,7 +55,9 @@ allOf:
         properties:
           compatible:
             contains:
-              const: imagis,ist3032c
+              enum:
+                - imagis,ist3032c
+                - imagis,ist3038
     then:
       properties:
         linux,keycodes: false
index e7ee7a0d74c40a869fa2db0364fc8a47f4e7d212..978afaa4fcef320d92804945d7b2549da29c038f 100644 (file)
@@ -14,9 +14,13 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - sitronix,st1232
-      - sitronix,st1633
+    oneOf:
+      - enum:
+          - sitronix,st1232
+          - sitronix,st1633
+      - items:
+          - const: sitronix,st1624
+          - const: sitronix,st1633
 
   reg:
     maxItems: 1
index a595df3ea802f51b334034198f84624f04b99aa1..d9cb53e865127760f2dbecf94f7a638b2c912ce0 100644 (file)
@@ -53,6 +53,9 @@ properties:
       how much time to wait (in milliseconds) before reading again the
       values from the tsc2007.
 
+  "#io-channel-cells":
+    const: 1
+
 required:
   - compatible
   - reg
index fa27c6754ca4e91dc8b4664bf7b78a6fafb7c954..6441d21223caf88f0ba11d2abf755c878a7f1b47 100644 (file)
@@ -23,9 +23,6 @@ properties:
       # Hynitron cstxxx series touchscreen controller
       - hynitron,cst340
       # Ilitek I2C Touchscreen Controller
-      - ilitek,ili210x
-      - ilitek,ili2117
-      - ilitek,ili2120
       - ilitek,ili2130
       - ilitek,ili2131
       - ilitek,ili2132
@@ -33,7 +30,6 @@ properties:
       - ilitek,ili2322
       - ilitek,ili2323
       - ilitek,ili2326
-      - ilitek,ili251x
       - ilitek,ili2520
       - ilitek,ili2521
       # MAXI MAX11801 Resistive touch screen controller with i2c interface
index 017c8478b2a7b1e305d402e462bebb621263ead6..1fb8ccb558fb74e71c54f5db8aa82e8b10553294 100644 (file)
@@ -40,6 +40,7 @@ properties:
     enum:
       - mediatek,mt8183-emi
       - mediatek,mt8195-emi
+      - mediatek,mt8196-emi
 
   '#interconnect-cells':
     const: 1
index 17b09292000e463165bc3e4ff1687a7c43f1600e..ce79521bb1ef2ccdc09e337a3b778fea5bc197fa 100644 (file)
@@ -25,6 +25,7 @@ properties:
       - const: qcom,msm8998-bwmon       # BWMON v4
       - items:
           - enum:
+              - qcom,glymur-cpu-bwmon
               - qcom,kaanapali-cpu-bwmon
               - qcom,qcm2290-cpu-bwmon
               - qcom,qcs615-cpu-bwmon
index 9d762b2a1fcf87b638a0b9060e7b90579e329cef..e0640482882481408095ee1acac5c824fa8820e0 100644 (file)
@@ -27,7 +27,6 @@ properties:
       - qcom,qcs615-config-noc
       - qcom,qcs615-dc-noc
       - qcom,qcs615-gem-noc
-      - qcom,qcs615-ipa-virt
       - qcom,qcs615-mc-virt
       - qcom,qcs615-mmss-noc
       - qcom,qcs615-system-noc
@@ -46,7 +45,6 @@ allOf:
           contains:
             enum:
               - qcom,qcs615-camnoc-virt
-              - qcom,qcs615-ipa-virt
               - qcom,qcs615-mc-virt
     then:
       properties:
diff --git a/Bindings/interrupt-controller/fsl,qe-ports-ic.yaml b/Bindings/interrupt-controller/fsl,qe-ports-ic.yaml
new file mode 100644 (file)
index 0000000..2b8e7b9
--- /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/interrupt-controller/fsl,qe-ports-ic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine I/O Ports Interrupt Controller
+
+maintainers:
+  - Christophe Leroy (CS GROUP) <chleroy@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - fsl,mpc8323-qe-ports-ic
+
+  reg:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  '#address-cells':
+    const: 0
+
+  '#interrupt-cells':
+    const: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - '#address-cells'
+  - '#interrupt-cells'
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@c00 {
+      compatible = "fsl,mpc8323-qe-ports-ic";
+      reg = <0xc00 0x18>;
+      interrupt-controller;
+      #address-cells = <0>;
+      #interrupt-cells = <1>;
+      interrupts = <74 0x8>;
+      interrupt-parent = <&ipic>;
+    };
index 5f2c8761a31deb9e32f1a7840caeaa944218e94a..e4674a9cc2c1c9c27ba4ba54cfe2587185e4aee0 100644 (file)
@@ -12,6 +12,14 @@ maintainers:
 properties:
   compatible:
     oneOf:
+      - items:
+          - enum:
+              - fsl,imx1-aitc
+              - fsl,imx25-asic
+              - fsl,imx27-aitc
+              - fsl,imx31-avic
+              - fsl,imx35-avic
+          - const: fsl,avic
       - items:
           - enum:
               - fsl,imx51-tzic
index 393c128a41d860ec71ce55822aa2f064d5961643..3c03d90058ed42e960a18ab73b3e75c8433be4bd 100644 (file)
@@ -29,6 +29,9 @@ properties:
   interrupts:
     maxItems: 1
 
+  '#address-cells':
+    const: 0
+
   interrupt-controller: true
 
   '#interrupt-cells':
index f63b23f48d8e93b78dcba69e4e8e58c503292f04..9f532cb11d0cc01b354a7e4099dfed0b8af2b2a0 100644 (file)
@@ -40,6 +40,9 @@ properties:
       - const: isr1
     minItems: 2
 
+  '#address-cells':
+    const: 0
+
   interrupt-controller: true
 
   interrupts:
index b7bc5cb1dff292b42f1bc72888420e2077157d78..eee10abe9e484c943ea388303fc9bcf39992f06a 100644 (file)
@@ -29,6 +29,9 @@ properties:
     minimum: 0
     maximum: 192
 
+  '#address-cells':
+    const: 0
+
   interrupt-controller: true
 
   '#interrupt-cells':
index 38d0c2d57dd6dddae205336386999d1ca827e1cd..f9321366cae4552dc5be4e023e7d81d725b4aa1c 100644 (file)
@@ -27,6 +27,8 @@ properties:
     items:
       - enum:
           - qcom,glymur-pdc
+          - qcom,kaanapali-pdc
+          - qcom,milos-pdc
           - qcom,qcs615-pdc
           - qcom,qcs8300-pdc
           - qcom,qdu1000-pdc
diff --git a/Bindings/interrupt-controller/renesas,r9a09g077-icu.yaml b/Bindings/interrupt-controller/renesas,r9a09g077-icu.yaml
new file mode 100644 (file)
index 0000000..78c01d1
--- /dev/null
@@ -0,0 +1,236 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/renesas,r9a09g077-icu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/{T2H,N2H} Interrupt Controller
+
+maintainers:
+  - Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+
+description:
+  The Interrupt Controller (ICU) handles software-triggered interrupts
+  (INTCPU), external interrupts (IRQ and SEI), error interrupts and DMAC
+  requests.
+
+properties:
+  compatible:
+    oneOf:
+      - const: renesas,r9a09g077-icu # RZ/T2H
+
+      - items:
+          - enum:
+              - renesas,r9a09g087-icu # RZ/N2H
+          - const: renesas,r9a09g077-icu
+
+  reg:
+    items:
+      - description: Non-safety registers (INTCPU0-13, IRQ0-13)
+      - description: Safety registers (INTCPU14-15, IRQ14-15, SEI)
+
+  '#interrupt-cells':
+    description: The first cell is the SPI number of the interrupt, as per user
+      manual. The second cell is used to specify the flag.
+    const: 2
+
+  '#address-cells':
+    const: 0
+
+  interrupt-controller: true
+
+  interrupts:
+    items:
+      - description: Software interrupt 0
+      - description: Software interrupt 1
+      - description: Software interrupt 2
+      - description: Software interrupt 3
+      - description: Software interrupt 4
+      - description: Software interrupt 5
+      - description: Software interrupt 6
+      - description: Software interrupt 7
+      - description: Software interrupt 8
+      - description: Software interrupt 9
+      - description: Software interrupt 10
+      - description: Software interrupt 11
+      - description: Software interrupt 12
+      - description: Software interrupt 13
+      - description: Software interrupt 14
+      - description: Software interrupt 15
+      - description: External pin interrupt 0
+      - description: External pin interrupt 1
+      - description: External pin interrupt 2
+      - description: External pin interrupt 3
+      - description: External pin interrupt 4
+      - description: External pin interrupt 5
+      - description: External pin interrupt 6
+      - description: External pin interrupt 7
+      - description: External pin interrupt 8
+      - description: External pin interrupt 9
+      - description: External pin interrupt 10
+      - description: External pin interrupt 11
+      - description: External pin interrupt 12
+      - description: External pin interrupt 13
+      - description: External pin interrupt 14
+      - description: External pin interrupt 15
+      - description: System error interrupt
+      - description: Cortex-A55 error event 0
+      - description: Cortex-A55 error event 1
+      - description: Cortex-R52 CPU 0 error event 0
+      - description: Cortex-R52 CPU 0 error event 1
+      - description: Cortex-R52 CPU 1 error event 0
+      - description: Cortex-R52 CPU 1 error event 1
+      - description: Peripherals error event 0
+      - description: Peripherals error event 1
+      - description: DSMIF error event 0
+      - description: DSMIF error event 1
+      - description: ENCIF error event 0
+      - description: ENCIF error event 1
+
+  interrupt-names:
+    items:
+      - const: intcpu0
+      - const: intcpu1
+      - const: intcpu2
+      - const: intcpu3
+      - const: intcpu4
+      - const: intcpu5
+      - const: intcpu6
+      - const: intcpu7
+      - const: intcpu8
+      - const: intcpu9
+      - const: intcpu10
+      - const: intcpu11
+      - const: intcpu12
+      - const: intcpu13
+      - const: intcpu14
+      - const: intcpu15
+      - const: irq0
+      - const: irq1
+      - const: irq2
+      - const: irq3
+      - const: irq4
+      - const: irq5
+      - const: irq6
+      - const: irq7
+      - const: irq8
+      - const: irq9
+      - const: irq10
+      - const: irq11
+      - const: irq12
+      - const: irq13
+      - const: irq14
+      - const: irq15
+      - const: sei
+      - const: ca55-err0
+      - const: ca55-err1
+      - const: cr520-err0
+      - const: cr520-err1
+      - const: cr521-err0
+      - const: cr521-err1
+      - const: peri-err0
+      - const: peri-err1
+      - const: dsmif-err0
+      - const: dsmif-err1
+      - const: encif-err0
+      - const: encif-err1
+
+  clocks:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - '#interrupt-cells'
+  - '#address-cells'
+  - interrupt-controller
+  - interrupts
+  - interrupt-names
+  - clocks
+  - power-domains
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/renesas,r9a09g077-cpg-mssr.h>
+
+    icu: interrupt-controller@802a0000 {
+      compatible = "renesas,r9a09g077-icu";
+      reg = <0x802a0000 0x10000>,
+            <0x812a0000 0x50>;
+      #interrupt-cells = <2>;
+      #address-cells = <0>;
+      interrupt-controller;
+      interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 7 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 9 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 10 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 11 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 12 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 13 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 14 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 15 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 16 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 17 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 18 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 406 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 407 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 408 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 409 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 410 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 411 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 412 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 413 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 414 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 415 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 416 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 417 IRQ_TYPE_EDGE_RISING>,
+                   <GIC_SPI 418 IRQ_TYPE_EDGE_RISING>;
+      interrupt-names = "intcpu0", "intcpu1", "intcpu2",
+                        "intcpu3", "intcpu4", "intcpu5",
+                        "intcpu6", "intcpu7", "intcpu8",
+                        "intcpu9", "intcpu10", "intcpu11",
+                        "intcpu12", "intcpu13", "intcpu14",
+                        "intcpu15",
+                        "irq0", "irq1", "irq2", "irq3",
+                        "irq4", "irq5", "irq6", "irq7",
+                        "irq8", "irq9", "irq10", "irq11",
+                        "irq12", "irq13", "irq14", "irq15",
+                        "sei",
+                        "ca55-err0", "ca55-err1",
+                        "cr520-err0", "cr520-err1",
+                        "cr521-err0", "cr521-err1",
+                        "peri-err0", "peri-err1",
+                        "dsmif-err0", "dsmif-err1",
+                        "encif-err0", "encif-err1";
+      clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKM>;
+      power-domains = <&cpg>;
+    };
index 3f99c8645767cd8de55a85075e9713c9ac4f3535..cb244b8f5e1c57eb4bb1b1519e43168df3818728 100644 (file)
@@ -22,6 +22,7 @@ properties:
   compatible:
     enum:
       - renesas,r9a09g047-icu # RZ/G3E
+      - renesas,r9a09g056-icu # RZ/V2N
       - renesas,r9a09g057-icu # RZ/V2H(P)
 
   '#interrupt-cells':
index bef00521d5dacc002d24c50843ebe6380a7d5524..0718071444d29fbfa36283fc9666e8cecd6f77e7 100644 (file)
@@ -28,6 +28,7 @@ properties:
     items:
       - enum:
           - qemu,aplic
+          - spacemit,k3-aplic
       - const: riscv,aplic
 
   reg:
index c23b5c09fdb90baccece03708f4a381084b22049..feec122bddde1f82cbd29b8f3597d6af1a16cb23 100644 (file)
@@ -48,6 +48,7 @@ properties:
     items:
       - enum:
           - qemu,imsics
+          - spacemit,k3-imsics
       - const: riscv,imsics
 
   reg:
index 388fc2c620c0b8f6cae38d0cdd840993fba64bf9..e0267223887ec2a8132ead2d17bd2c212b11750a 100644 (file)
@@ -108,7 +108,9 @@ properties:
   riscv,ndev:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
-      Specifies how many external interrupts are supported by this controller.
+      Specifies how many external (device) interrupts are supported by this
+      controller.  Note that source 0 is reserved in PLIC, so the valid
+      interrupt sources are 1 to riscv,ndev inclusive.
 
   clocks: true
 
index c99cc7323c711de6bada10ed3adb8078d88d003a..de45f0c4b1d1641a08279d074b30fdab880099cd 100644 (file)
@@ -15,8 +15,7 @@ allOf:
 description: |
   The Interrupt Router (INTR) module provides a mechanism to mux M
   interrupt inputs to N interrupt outputs, where all M inputs are selectable
-  to be driven per N output. An Interrupt Router can either handle edge
-  triggered or level triggered interrupts and that is fixed in hardware.
+  to be driven per N output.
 
                                    Interrupt Router
                                +----------------------+
@@ -64,9 +63,14 @@ properties:
   interrupt-controller: true
 
   '#interrupt-cells':
-    const: 1
+    enum: [1, 2]
     description: |
-      The 1st cell should contain interrupt router input hw number.
+      Number of cells in interrupt specifier. Depends on ti,intr-trigger-type:
+      - If ti,intr-trigger-type is present: must be 1
+        The 1st cell should contain interrupt router input hw number.
+      - If ti,intr-trigger-type is absent: must be 2
+        The 1st cell should contain interrupt router input hw number.
+        The 2nd cell should contain interrupt trigger type (preserved by router).
 
   ti,interrupt-ranges:
     $ref: /schemas/types.yaml#/definitions/uint32-matrix
@@ -82,9 +86,22 @@ properties:
         - description: |
             "limit" specifies the limit for translation
 
+if:
+  required:
+    - ti,intr-trigger-type
+then:
+  properties:
+    '#interrupt-cells':
+      const: 1
+      description: Interrupt ID only. Interrupt type is specified globally
+else:
+  properties:
+    '#interrupt-cells':
+      const: 2
+      description: Interrupt ID and corresponding interrupt type
+
 required:
   - compatible
-  - ti,intr-trigger-type
   - interrupt-controller
   - '#interrupt-cells'
   - ti,sci
@@ -105,3 +122,14 @@ examples:
         ti,sci-dev-id = <131>;
         ti,interrupt-ranges = <0 360 32>;
     };
+
+  - |
+    interrupt-controller {
+        compatible = "ti,sci-intr";
+        interrupt-controller;
+        interrupt-parent = <&gic500>;
+        #interrupt-cells = <2>;
+        ti,sci = <&dmsc>;
+        ti,sci-dev-id = <131>;
+        ti,interrupt-ranges = <0 360 32>;
+    };
index 75fcf4cb52d9f6449238578f20288966af35cab3..82957334bea24402b583e47eb61b5724c91e4378 100644 (file)
@@ -20,7 +20,12 @@ properties:
   $nodename:
     pattern: "^iommu@[0-9a-f]*"
   compatible:
-    const: arm,smmu-v3
+    oneOf:
+      - const: arm,smmu-v3
+      - items:
+          - enum:
+              - nvidia,tegra264-smmu
+          - const: arm,smmu-v3
 
   reg:
     maxItems: 1
@@ -58,6 +63,15 @@ properties:
 
   msi-parent: true
 
+  nvidia,cmdqv:
+    description: |
+      A phandle to its pairing CMDQV extension for an implementation on NVIDIA
+      Tegra SoC.
+
+      If this property is absent, CMDQ-Virtualization won't be used and SMMU
+      will only use its own CMDQ.
+    $ref: /schemas/types.yaml#/definitions/phandle
+
   hisilicon,broken-prefetch-cmd:
     type: boolean
     description: Avoid sending CMD_PREFETCH_* commands to the SMMU.
@@ -69,6 +83,17 @@ properties:
       register access with page 0 offsets. Set for Cavium ThunderX2 silicon that
       doesn't support SMMU page1 register space.
 
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: nvidia,tegra264-smmu
+    then:
+      properties:
+        nvidia,cmdqv: false
+
 required:
   - compatible
   - reg
diff --git a/Bindings/iommu/nvidia,tegra264-cmdqv.yaml b/Bindings/iommu/nvidia,tegra264-cmdqv.yaml
new file mode 100644 (file)
index 0000000..3f5006a
--- /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/iommu/nvidia,tegra264-cmdqv.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra264 CMDQV
+
+description:
+  The CMDQ-Virtualization hardware block is part of the SMMUv3 implementation
+  on Tegra264 SoCs. It assists in virtualizing the command queue for the SMMU.
+
+maintainers:
+  - Nicolin Chen <nicolinc@nvidia.com>
+
+properties:
+  compatible:
+    const: nvidia,tegra264-cmdqv
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    cmdqv@5200000 {
+            compatible = "nvidia,tegra264-cmdqv";
+            reg = <0x5200000 0x830000>;
+            interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Bindings/leds/ams,as3668.yaml b/Bindings/leds/ams,as3668.yaml
new file mode 100644 (file)
index 0000000..d1d7378
--- /dev/null
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/ams,as3668.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Osram 4-channel i2c LED driver
+
+maintainers:
+  - Lukas Timmermann <linux@timmermann.space>
+
+description:
+  This IC can drive up to four separate LEDs.
+  Having four channels suggests it could be used with a single RGBW LED.
+
+properties:
+  compatible:
+    const: ams,as3668
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^led@[0-3]$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      led-controller@42 {
+        compatible = "ams,as3668";
+        reg = <0x42>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led@0 {
+          reg = <0x0>;
+          function = LED_FUNCTION_STATUS;
+          color = <LED_COLOR_ID_RED>;
+        };
+
+        led@1 {
+          reg = <0x1>;
+          function = LED_FUNCTION_STATUS;
+          color = <LED_COLOR_ID_GREEN>;
+        };
+      };
+    };
+
index a8490781011d1b842ff393566777d35c735ae3c0..a54448cfdb3890410b4af6861a078d32d84accb3 100644 (file)
@@ -98,8 +98,8 @@ properties:
     description: |
       Over-voltage protection limit. This property is for WLED4 only.
     $ref: /schemas/types.yaml#/definitions/uint32
-    enum: [ 18100, 19600, 29600, 31100 ]
-    default: 29600
+    minimum: 17800
+    maximum: 31100
 
   qcom,num-strings:
     description: |
@@ -239,6 +239,26 @@ allOf:
           minimum: 0
           maximum: 4095
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,pmi8950-wled
+              - qcom,pmi8994-wled
+
+    then:
+      properties:
+        qcom,ovp-millivolt:
+          enum: [ 17800, 19400, 29500, 31000 ]
+          default: 29500
+
+    else:
+      properties:
+        qcom,ovp-millivolt:
+          enum: [ 18100, 19600, 29600, 31100 ]
+          default: 29600
+
 required:
   - compatible
   - reg
diff --git a/Bindings/leds/iei,wt61p803-puzzle-leds.yaml b/Bindings/leds/iei,wt61p803-puzzle-leds.yaml
new file mode 100644 (file)
index 0000000..fcaf825
--- /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/leds/iei,wt61p803-puzzle-leds.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IEI WT61P803 PUZZLE MCU LED module from IEI Integration Corp.
+
+maintainers:
+  - Luka Kovacic <luka.kovacic@sartura.hr>
+
+description: |
+  This module is a part of the IEI WT61P803 PUZZLE MFD device. For more details
+  see Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml.
+
+  The LED module is a sub-node of the MCU node in the Device Tree.
+
+properties:
+  compatible:
+    const: iei,wt61p803-puzzle-leds
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  led@0:
+    $ref: common.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        const: 0
+
+required:
+  - compatible
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
index bb40bb9e036ee00e06d21e2321ecd5a7d471c408..7bfc3d807acae33baa3cbc8234ef583dcde06668 100644 (file)
@@ -21,7 +21,7 @@ description: |
 
 properties:
   $nodename:
-    pattern: "^multi-led(@[0-9a-f])?$"
+    pattern: "^multi-led(@[0-9a-f]|-[0-9]+)?$"
 
   color:
     description: |
index 926c2117942c4dc200fcd68156864f544b11a326..7082ed186dd9b97131337b5d3438b7f41657a1b1 100644 (file)
@@ -10,6 +10,7 @@ Required properties:
        issi,is31fl3235
        issi,is31fl3218
        issi,is31fl3216
+       issi,is31fl3293
        si-en,sn3218
        si-en,sn3216
 - reg: I2C slave address
diff --git a/Bindings/leds/leds-lm3697.txt b/Bindings/leds/leds-lm3697.txt
deleted file mode 100644 (file)
index 221b37b..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-* Texas Instruments - LM3697 Highly Efficient White LED Driver
-
-The LM3697 11-bit LED driver provides high-
-performance backlight dimming for 1, 2, or 3 series
-LED strings while delivering up to 90% efficiency.
-
-This device is suitable for display and keypad lighting
-
-Required properties:
-       - compatible:
-               "ti,lm3697"
-       - reg :  I2C slave address
-       - #address-cells : 1
-       - #size-cells : 0
-
-Optional properties:
-       - enable-gpios : GPIO pin to enable/disable the device
-       - vled-supply : LED supply
-
-Required child properties:
-       - reg : 0 - LED is Controlled by bank A
-               1 - LED is Controlled by bank B
-       - led-sources : Indicates which HVLED string is associated to which
-                       control bank.  This is a zero based property so
-                       HVLED1 = 0, HVLED2 = 1, HVLED3 = 2.
-                       Additional information is contained
-                       in Documentation/devicetree/bindings/leds/common.txt
-
-Optional child properties:
-       - ti,brightness-resolution - see Documentation/devicetree/bindings/mfd/ti-lmu.txt
-       - ramp-up-us: see Documentation/devicetree/bindings/mfd/ti-lmu.txt
-       - ramp-down-us: see Documentation/devicetree/bindings/mfd/ti-lmu.txt
-       - label : see Documentation/devicetree/bindings/leds/common.txt
-       - linux,default-trigger :
-          see Documentation/devicetree/bindings/leds/common.txt
-
-Example:
-
-HVLED string 1 and 3 are controlled by control bank A and HVLED 2 string is
-controlled by control bank B.
-
-led-controller@36 {
-       compatible = "ti,lm3697";
-       #address-cells = <1>;
-       #size-cells = <0>;
-       reg = <0x36>;
-
-       enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-       vled-supply = <&vbatt>;
-
-       led@0 {
-               reg = <0>;
-               led-sources = <0 2>;
-               ti,brightness-resolution = <2047>;
-               ramp-up-us = <5000>;
-               ramp-down-us = <1000>;
-               label = "white:first_backlight_cluster";
-               linux,default-trigger = "backlight";
-       };
-
-       led@1 {
-               reg = <1>;
-               led-sources = <1>;
-               ti,brightness-resolution = <255>;
-               ramp-up-us = <500>;
-               ramp-down-us = <1000>;
-               label = "white:second_backlight_cluster";
-               linux,default-trigger = "backlight";
-       };
-}
-
-For more product information please see the link below:
-https://www.ti.com/lit/ds/symlink/lm3697.pdf
diff --git a/Bindings/leds/leds-lp5860.yaml b/Bindings/leds/leds-lp5860.yaml
new file mode 100644 (file)
index 0000000..1ccba48
--- /dev/null
@@ -0,0 +1,111 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/leds-lp5860.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LED driver for LP5860 RGB LED from Texas Instruments.
+
+maintainers:
+  - Steffen Trumtrar <kernel@pengutronix.de>
+
+description: |
+  The LP5860 is multi-channel, I2C and SPI RGB LED Driver that can group RGB LEDs
+  into a LED group or control them individually.
+
+  For more product information please see the link below:
+  https://www.ti.com/lit/ds/symlink/lp5860.pdf
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,lp5860
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  '^multi-led@[0-9a-f]+$':
+    type: object
+    $ref: leds-class-multicolor.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 198
+        description:
+          This property denotes the LED module number that is used
+          for the child node.
+
+      '#address-cells':
+        const: 1
+
+      '#size-cells':
+        const: 0
+
+    patternProperties:
+      "^led@[0-9a-f]+$":
+        type: object
+        $ref: common.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          reg:
+            maxItems: 1
+
+        required:
+          - reg
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@0 {
+            compatible = "ti,lp5860";
+            reg = <0x0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            multi-led@0 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                reg = <0x0>;
+                color = <LED_COLOR_ID_RGB>;
+
+                led@0 {
+                     reg = <0x0>;
+                     color = <LED_COLOR_ID_RED>;
+                };
+
+                led@1 {
+                     reg = <0x1>;
+                     color = <LED_COLOR_ID_GREEN>;
+                };
+
+                led@2 {
+                     reg = <0x2>;
+                     color = <LED_COLOR_ID_BLUE>;
+                };
+            };
+        };
+    };
index c4b7e57b251845a6970b34bc9ae0c00647b1bf96..3da0fe532e7485e890c3174a5bc7148a63b500bc 100644 (file)
@@ -43,6 +43,7 @@ properties:
       - items:
           - enum:
               - qcom,pm8550-pwm
+              - qcom,pmh0101-pwm
           - const: qcom,pm8350c-pwm
       - items:
           - enum:
index 05250aefd38575f00dfc73263f7e4eaef38ab565..3bfa24ff58cd534cac94465cf0234d9661312db8 100644 (file)
@@ -29,6 +29,7 @@ properties:
           - qcom,pm8150l-flash-led
           - qcom,pm8350c-flash-led
           - qcom,pm8550-flash-led
+          - qcom,pmh0101-flash-led
           - qcom,pmi8998-flash-led
       - const: qcom,spmi-flash-led
 
index b7a3ef76cbf4c6cb7a6a72e082eee2179e225720..64cc40523e3d8d2b03df466cc18bec76e854ff9f 100644 (file)
@@ -10,11 +10,12 @@ maintainers:
   - Matti Vaittinen <mazziesaccount@gmail.com>
 
 description: |
-  This module is part of the ROHM BD71828 MFD device. For more details
-  see Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.yaml.
+  This module is part of the ROHM BD71828 and BD72720 MFD device. For more
+  details see Documentation/devicetree/bindings/mfd/rohm,bd71828-pmic.yaml
+  and Documentation/devicetree/bindings/mfd/rohm,bd72720-pmic.yaml
 
   The LED controller is represented as a sub-node of the PMIC node on the device
-  tree.
+  tree. This should be located under "leds" - node in PMIC node.
 
   The device has two LED outputs referred as GRNLED and AMBLED in data-sheet.
 
diff --git a/Bindings/leds/ti,lm3697.yaml b/Bindings/leds/ti,lm3697.yaml
new file mode 100644 (file)
index 0000000..a9f8394
--- /dev/null
@@ -0,0 +1,125 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/ti,lm3697.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LM3697 Highly Efficient White LED Driver
+
+maintainers:
+  - Dan Murphy <dmurphy@ti.com>
+
+description: >
+  The LM3697 11-bit LED driver provides high-performance backlight dimming for
+  1, 2, or 3 series LED strings while delivering up to 90% efficiency.
+
+  This device is suitable for display and keypad lighting.
+
+properties:
+  compatible:
+    const: ti,lm3697
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  enable-gpios:
+    description: GPIO pin to enable or disable the device.
+    maxItems: 1
+
+  vled-supply:
+    description: LED supply for the device.
+
+patternProperties:
+  '^led@[01]$':
+    description: LED control bank nodes.
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        description: Control bank selection (0 = bank A, 1 = bank B).
+        maximum: 1
+
+      led-sources:
+        description: >
+          HVLED strings associated with this control bank:
+
+            0 - HVLED1
+            1 - HVLED2
+            2 - HVLED3
+        minItems: 1
+        maxItems: 3
+        items:
+          maximum: 2
+
+      ti,brightness-resolution:
+        description: Brightness resolution for the LED string.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        maximum: 2047
+
+      ramp-up-us:
+        description: Ramp-up time in microseconds.
+        minimum: 117
+        maximum: 2048
+
+      ramp-down-us:
+        description: Ramp-down time in microseconds.
+        minimum: 117
+        maximum: 2048
+
+    required:
+      - reg
+      - led-sources
+
+required:
+  - compatible
+  - reg
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@36 {
+            compatible = "ti,lm3697";
+            #address-cells = <1>;
+            #size-cells = <0>;
+            reg = <0x36>;
+
+            enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+            vled-supply = <&vbatt>;
+
+            led@0 {
+                reg = <0>;
+                led-sources = <0 2>;
+                ti,brightness-resolution = <2047>;
+                ramp-up-us = <500>;
+                ramp-down-us = <1000>;
+                label = "white:first_backlight_cluster";
+                linux,default-trigger = "backlight";
+            };
+
+            led@1 {
+                reg = <1>;
+                led-sources = <1>;
+                ti,brightness-resolution = <255>;
+                ramp-up-us = <500>;
+                ramp-down-us = <1000>;
+                label = "white:second_backlight_cluster";
+                linux,default-trigger = "backlight";
+            };
+        };
+    };
diff --git a/Bindings/leds/ti,lp5812.yaml b/Bindings/leds/ti,lp5812.yaml
new file mode 100644 (file)
index 0000000..de34bff
--- /dev/null
@@ -0,0 +1,246 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/ti,lp5812.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LP5812 4x3 Matrix RGB LED Driver with Autonomous Control
+
+maintainers:
+  - Nam Tran <trannamatk@gmail.com>
+
+description: |
+  The LP5812 is a 4x3 matrix RGB LED driver with I2C interface
+  and autonomous animation engine control.
+  For more product information please see the link below:
+  https://www.ti.com/product/LP5812#tech-docs
+
+properties:
+  compatible:
+    const: ti,lp5812
+
+  reg:
+    maxItems: 1
+
+  ti,scan-mode:
+    description: |
+      Selects the LED scan mode of the LP5812. The device supports
+      three modes:
+        - Direct-drive mode (by default if 'ti,scan-mode' is omitted)
+        drives up to 4 LEDs directly by internal current sinks (LED0-LED3).
+        - TCM-drive mode ("tcm:<n>:<order...>") drives up to 12 LEDs
+        (4 RGB) using 1-4 scan multiplexing. The <n> specifies the number
+        of scans (1-4), and <order...> defines the scan order of the outputs.
+        - Mix-drive mode ("mix:<n>:<direct>:<order...>") combines
+        direct-drive and TCM-drive outputs. The <n> specifies the number
+        of scans, <direct> selects the direct-drive outputs, and <order...>
+        defines the scan order.
+    $ref: /schemas/types.yaml#/definitions/string
+    pattern: '^(tcm|mix):[1-4](:[0-3]){1,4}$'
+
+  vcc-supply:
+    description: Regulator providing power to the 'VCC' pin.
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^led@[0-3]$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 3
+
+    required:
+      - reg
+
+  "^multi-led@[4-7]$":
+    type: object
+    $ref: leds-class-multicolor.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 4
+        maximum: 7
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    patternProperties:
+      "^led@[4-9a-f]$":
+        type: object
+        $ref: common.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          reg:
+            minimum: 4
+            maximum: 15
+
+        required:
+          - reg
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@1b {
+            #address-cells = <1>;
+            #size-cells = <0>;
+            compatible = "ti,lp5812";
+            reg = <0x1b>;
+            ti,scan-mode = "tcm:4:0:1:2:3";
+            vcc-supply = <&vdd_3v3_reg>;
+
+            led@0 {
+                reg = <0x0>;
+                label = "LED0";
+                led-max-microamp = <25500>;
+            };
+
+            led@1 {
+                reg = <0x1>;
+                label = "LED1";
+                led-max-microamp = <25500>;
+            };
+
+            led@2 {
+                reg = <0x2>;
+                label = "LED2";
+                led-max-microamp = <25500>;
+            };
+
+            led@3 {
+                reg = <0x3>;
+                label = "LED3";
+                led-max-microamp = <25500>;
+            };
+
+            multi-led@4 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                reg = <0x4>;
+                color = <LED_COLOR_ID_RGB>;
+                label = "LED_A";
+
+                led@4 {
+                    reg = <0x4>;
+                    color = <LED_COLOR_ID_GREEN>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@5 {
+                    reg = <0x5>;
+                    color = <LED_COLOR_ID_RED>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@6 {
+                    reg = <0x6>;
+                    color = <LED_COLOR_ID_BLUE>;
+                    led-max-microamp = <25500>;
+                };
+            };
+
+            multi-led@5 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                reg = <0x5>;
+                color = <LED_COLOR_ID_RGB>;
+                label = "LED_B";
+
+                led@7 {
+                    reg = <0x7>;
+                    color = <LED_COLOR_ID_GREEN>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@8 {
+                    reg = <0x8>;
+                    color = <LED_COLOR_ID_RED>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@9 {
+                    reg = <0x9>;
+                    color = <LED_COLOR_ID_BLUE>;
+                    led-max-microamp = <25500>;
+                };
+            };
+
+            multi-led@6 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                reg = <0x6>;
+                color = <LED_COLOR_ID_RGB>;
+                label = "LED_C";
+
+                led@a {
+                    reg = <0xa>;
+                    color = <LED_COLOR_ID_GREEN>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@b {
+                    reg = <0xb>;
+                    color = <LED_COLOR_ID_RED>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@c {
+                    reg = <0xc>;
+                    color = <LED_COLOR_ID_BLUE>;
+                    led-max-microamp = <25500>;
+                };
+            };
+
+            multi-led@7 {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                reg = <0x7>;
+                color = <LED_COLOR_ID_RGB>;
+                label = "LED_D";
+
+                led@d {
+                    reg = <0xd>;
+                    color = <LED_COLOR_ID_GREEN>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@e {
+                    reg = <0xe>;
+                    color = <LED_COLOR_ID_RED>;
+                    led-max-microamp = <25500>;
+                };
+
+                led@f {
+                    reg = <0xf>;
+                    color = <LED_COLOR_ID_BLUE>;
+                    led-max-microamp = <25500>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/mailbox/mediatek,mt8196-vcp-mbox.yaml b/Bindings/mailbox/mediatek,mt8196-vcp-mbox.yaml
new file mode 100644 (file)
index 0000000..7b1c516
--- /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/mailbox/mediatek,mt8196-vcp-mbox.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Video Companion Processor (VCP) mailbox
+
+maintainers:
+  - Jjian Zhou <Jjian.Zhou@mediatek.com>
+
+description:
+  The MTK VCP mailbox enables the SoC to communicate with the VCP by passing
+  messages through 64 32-bit wide registers. It has 32 interrupt vectors in
+  either direction for signalling purposes.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8196-vcp-mbox
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#mbox-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#mbox-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    mailbox@31b80000 {
+        compatible = "mediatek,mt8196-vcp-mbox";
+        reg = <0x31b80000 0x1000>;
+        interrupts = <GIC_SPI 789 IRQ_TYPE_LEVEL_HIGH 0>;
+        #mbox-cells = <0>;
+    };
index 1332aab9a888f1fc71116c4e70e0ede2eef01399..5f2ec74c1b294b1eae6de0de88bc63900ae9ba95 100644 (file)
@@ -11,7 +11,11 @@ maintainers:
 
 properties:
   compatible:
-    const: microchip,mpfs-mailbox
+    oneOf:
+      - items:
+          - const: microchip,pic64gx-mailbox
+          - const: microchip,mpfs-mailbox
+      - const: microchip,mpfs-mailbox
 
   reg:
     oneOf:
index 9122c3d2dc30fade96eaf54aee41f890327deb6c..90bfde66cc4a6321365cd9c2fcbf425b9cb2804b 100644 (file)
@@ -19,6 +19,8 @@ properties:
       - items:
           - enum:
               - qcom,glymur-cpucp-mbox
+              - qcom,kaanapali-cpucp-mbox
+              - qcom,sm8750-cpucp-mbox
           - const: qcom,x1e80100-cpucp-mbox
       - enum:
           - qcom,x1e80100-cpucp-mbox
index e5c423130db67109355d7da3e51e1eeb008dee84..7c4d6170491db6e42b1eecfa2a835f2b10d1b941 100644 (file)
@@ -24,6 +24,8 @@ properties:
   compatible:
     items:
       - enum:
+          - qcom,glymur-ipcc
+          - qcom,kaanapali-ipcc
           - qcom,milos-ipcc
           - qcom,qcs8300-ipcc
           - qcom,qdu1000-ipcc
index b526f9c0c272b566688748302b5d939773d9932a..bf6ab4e7050cb75657977b9a07aaeb8191183510 100644 (file)
@@ -16,6 +16,7 @@ properties:
     enum:
       - sprd,sc9860-mailbox
       - sprd,sc9863a-mailbox
+      - sprd,ums9230-mailbox
 
   reg:
     items:
index 04d6473d666f3410f284b1f62941661f190f4092..a5205ee5ad0f777b7eb559ad0aaf10cf1ffdbeb2 100644 (file)
@@ -11,6 +11,17 @@ description: |
   messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
   agent owns registers used for notification and buffers for message.
 
+  For Versal devices, there are two types of IPI channels:
+    - Buffered channels: Support message passing and require the "msg"
+    register region to be present on both the host and remote IPI agents.
+    - Buffer-less channels: Support notification only and do not require the
+    "msg" register region. For these channels, the "msg" region should be
+    omitted.
+
+  For message passing, both the host and remote IPI agents must define the "msg"
+  register region. If either agent omits the "msg" region, only notification
+  based communication is possible.
+
                +-------------------------------------+
                | Xilinx ZynqMP IPI Controller        |
                +-------------------------------------+
index dee8ce7cb7ba2e9e8c3d6018c164f63bb612ad1b..5f8f3b3dea76437fb0d7e4753555a69a8c04447d 100644 (file)
@@ -30,7 +30,27 @@ properties:
           - adi,adv7282-m
 
   reg:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: main register map
+      - description: VPP or CSI register map
+      - description: CSI register map
+    description:
+      The ADV7180 family may have up to three register maps. All chips have
+      the main register map. The availability of the CSI and VPP register maps
+      depends on the chip variant.
+
+      The addresses of the CSI and VPP register maps are programmable by
+      software. They depend on the board layout and other devices on the I2C
+      bus and are determined by the hardware designer to avoid address
+      conflicts on the I2C bus.
+
+  reg-names:
+    minItems: 1
+    items:
+      - const: main
+      - enum: [ csi, vpp ]
+      - const: csi
 
   powerdown-gpios:
     maxItems: 1
@@ -138,6 +158,62 @@ allOf:
       required:
         - ports
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adv7180
+              - adi,adv7180cp
+              - adi,adv7180st
+              - adi,adv7182
+    then:
+      properties:
+        reg:
+          maxItems: 1
+
+        reg-names:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adv7281
+              - adi,adv7281-m
+              - adi,adv7281-ma
+    then:
+      properties:
+        reg:
+          minItems: 1
+          maxItems: 2
+
+        reg-names:
+          minItems: 1
+          items:
+            - const: main
+            - const: csi
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adv7280
+              - adi,adv7282
+    then:
+      properties:
+        reg:
+          minItems: 1
+          maxItems: 2
+
+        reg-names:
+          minItems: 1
+          items:
+            - const: main
+            - const: vpp
+
 examples:
   - |
     i2c {
@@ -187,3 +263,22 @@ examples:
                     };
             };
     };
+
+  - |
+    i2c {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            composite-in@20 {
+                    compatible = "adi,adv7280-m";
+                    reg = <0x20>, <0x42>, <0x44>;
+                    reg-names = "main", "vpp", "csi";
+
+                    port {
+                            adv7280_out: endpoint {
+                                    bus-width = <8>;
+                                    remote-endpoint = <&vin1ep>;
+                            };
+                    };
+            };
+    };
index a89f740214f7503181737781c9bc254bedc12d1c..dffd23ca4839c0fd52c66e40574d79e346de016c 100644 (file)
@@ -95,7 +95,7 @@ examples:
     #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/media/video-interfaces.h>
 
-    i2c0 {
+    i2c {
         #address-cells = <1>;
         #size-cells = <0>;
 
diff --git a/Bindings/media/i2c/ovti,os05b10.yaml b/Bindings/media/i2c/ovti,os05b10.yaml
new file mode 100644 (file)
index 0000000..b76771d
--- /dev/null
@@ -0,0 +1,103 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/ovti,os05b10.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OmniVision OS05B10 Image Sensor
+
+maintainers:
+  - Elgin Perumbilly <elgin.perumbilly@siliconsignals.io>
+
+description:
+  The OmniVision OS05B10 is a 5MP (2592x1944) color CMOS image sensor controlled
+  through an I2C-compatible SCCB bus. it outputs RAW10/RAW12 format and uses a
+  1/2.78" optical format.
+
+properties:
+  compatible:
+    const: ovti,os05b10
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: XCLK clock
+
+  avdd-supply:
+    description: Analog Domain Power Supply (2.8v)
+
+  dovdd-supply:
+    description: I/O Domain Power Supply (1.8v)
+
+  dvdd-supply:
+    description: Digital Domain Power Supply (1.2v)
+
+  reset-gpios:
+    maxItems: 1
+    description: Reset Pin GPIO Control (active low)
+
+  port:
+    description: MIPI CSI-2 transmitter port
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          data-lanes:
+            oneOf:
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
+              - items:
+                  - const: 1
+                  - const: 2
+        required:
+          - data-lanes
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - avdd-supply
+  - dovdd-supply
+  - dvdd-supply
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera-sensor@36 {
+            compatible = "ovti,os05b10";
+            reg = <0x36>;
+            clocks = <&os05b10_clk>;
+            reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+
+            avdd-supply = <&os05b10_avdd_2v8>;
+            dvdd-supply = <&os05b10_dvdd_1v2>;
+            dovdd-supply = <&os05b10_dovdd_1v8>;
+
+            port {
+                cam_out: endpoint {
+                    remote-endpoint = <&mipi_in_cam>;
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <600000000>;
+                };
+            };
+        };
+    };
index a2abed06a099b41c7b165c0650e3967ec43a4962..2d7937a372a2b0f12c6837b6f0d790b4bea7f553 100644 (file)
@@ -14,6 +14,9 @@ description: |-
   The OV5647 is a raw image sensor with MIPI CSI-2 and CCP2 image data
   interfaces and CCI (I2C compatible) control bus.
 
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
 properties:
   compatible:
     const: ovti,ov5647
@@ -30,6 +33,15 @@ properties:
     description: Reference to the GPIO connected to the pwdn pin. Active high.
     maxItems: 1
 
+  avdd-supply:
+    description: Analog voltage supply, 2.8 volts
+
+  dvdd-supply:
+    description: Digital core voltage supply, 1.5 volts
+
+  dovdd-supply:
+    description: Digital I/O voltage supply, 1.7 - 3.0 volts
+
   port:
     $ref: /schemas/graph.yaml#/$defs/port-base
     additionalProperties: false
@@ -48,7 +60,7 @@ required:
   - clocks
   - port
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/media/i2c/samsung,s5k3m5.yaml b/Bindings/media/i2c/samsung,s5k3m5.yaml
new file mode 100644 (file)
index 0000000..434f15f
--- /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/samsung,s5k3m5.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S5K3M5 Image Sensor
+
+description:
+  Samsung S5K3M5 (ISOCELL 3M5) image sensor is a 13MP image sensor.
+  The sensor is controlled over a serial camera control bus protocol,
+  the widest supported output image frame size is 4208x3120 at 30 frames
+  per second, data output format is RAW10 transferred over 4-lane
+  MIPI D-PHY interface.
+
+maintainers:
+  - Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: samsung,s5k3m5
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    description: MCLK supply clock.
+    maxItems: 1
+
+  reset-gpios:
+    description: Active low GPIO connected to RESET pad of the sensor.
+    maxItems: 1
+
+  afvdd-supply:
+    description: Autofocus actuator voltage supply, 2.8-3.0 volts.
+
+  vdda-supply:
+    description: Analogue voltage supply, 2.8 volts.
+
+  vddd-supply:
+    description: Digital core voltage supply, 1.05 volts.
+
+  vddio-supply:
+    description: Digital I/O voltage supply, 2.8 or 1.8 volts.
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          data-lanes:
+            items:
+              - const: 1
+              - const: 2
+              - const: 3
+              - const: 4
+
+        required:
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+      #include <dt-bindings/gpio/gpio.h>
+
+      i2c {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          camera@10 {
+              compatible = "samsung,s5k3m5";
+              reg = <0x10>;
+              clocks = <&camera_mclk 0>;
+              assigned-clocks = <&camera_mclk 0>;
+              assigned-clock-rates = <24000000>;
+              reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+              vdda-supply = <&vreg_2p8>;
+              vddd-supply = <&vreg_1p05>;
+              vddio-supply = <&vreg_1p8>;
+
+              port {
+                  endpoint {
+                      link-frequencies = /bits/ 64 <602500000>;
+                      remote-endpoint = <&mipi_csi2_ep>;
+                  };
+              };
+          };
+      };
+...
diff --git a/Bindings/media/i2c/samsung,s5kjn1.yaml b/Bindings/media/i2c/samsung,s5kjn1.yaml
new file mode 100644 (file)
index 0000000..8f368ae
--- /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/samsung,s5kjn1.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S5KJN1 Image Sensor
+
+description:
+  Samsung S5KJN1 (ISOCELL JN1) image sensor is a 50MP image sensor.
+  The sensor is controlled over a serial camera control bus protocol,
+  the widest supported output image frame size is 8160x6144 at 10 frames
+  per second, data output format is RAW10 transferred over 4-lane
+  MIPI D-PHY interface.
+
+maintainers:
+  - Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: samsung,s5kjn1
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    description: MCLK supply clock.
+    maxItems: 1
+
+  reset-gpios:
+    description: Active low GPIO connected to RESET pad of the sensor.
+    maxItems: 1
+
+  afvdd-supply:
+    description: Autofocus actuator voltage supply, 2.8-3.0 volts.
+
+  vdda-supply:
+    description: Analogue voltage supply, 2.8 volts.
+
+  vddd-supply:
+    description: Digital core voltage supply, 1.05 volts.
+
+  vddio-supply:
+    description: Digital I/O voltage supply, 1.8 volts.
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          data-lanes:
+            items:
+              - const: 1
+              - const: 2
+              - const: 3
+              - const: 4
+
+        required:
+          - link-frequencies
+
+required:
+  - compatible
+  - reg
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+      #include <dt-bindings/gpio/gpio.h>
+
+      i2c {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          camera@56 {
+              compatible = "samsung,s5kjn1";
+              reg = <0x56>;
+              clocks = <&camera_mclk 0>;
+              assigned-clocks = <&camera_mclk 0>;
+              assigned-clock-rates = <24000000>;
+              reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+              vdda-supply = <&vreg_2p8>;
+              vddd-supply = <&vreg_1p05>;
+              vddio-supply = <&vreg_1p8>;
+
+              port {
+                  endpoint {
+                      link-frequencies = /bits/ 64 <700000000>;
+                      remote-endpoint = <&mipi_csi2_ep>;
+                  };
+              };
+          };
+      };
+...
diff --git a/Bindings/media/i2c/toshiba,et8ek8.txt b/Bindings/media/i2c/toshiba,et8ek8.txt
deleted file mode 100644 (file)
index 8d8e40c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-Toshiba et8ek8 5MP sensor
-
-Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device
-
-More detailed documentation can be found in
-Documentation/devicetree/bindings/media/video-interfaces.txt .
-
-
-Mandatory properties
---------------------
-
-- compatible: "toshiba,et8ek8"
-- reg: I2C address (0x3e, or an alternative address)
-- vana-supply: Analogue voltage supply (VANA), 2.8 volts
-- clocks: External clock to the sensor
-- reset-gpios: XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
-  is in hardware standby mode when the signal is in the low state.
-
-
-Optional properties
--------------------
-
-- flash-leds: See ../video-interfaces.txt
-- lens-focus: See ../video-interfaces.txt
-
-
-Endpoint node mandatory properties
-----------------------------------
-
-- remote-endpoint: A phandle to the bus receiver's endpoint node.
-
-
-Example
--------
-
-&i2c3 {
-       clock-frequency = <400000>;
-
-       cam1: camera@3e {
-               compatible = "toshiba,et8ek8";
-               reg = <0x3e>;
-               vana-supply = <&vaux4>;
-
-               clocks = <&isp 0>;
-               assigned-clocks = <&isp 0>;
-               assigned-clock-rates = <9600000>;
-
-               reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
-               port {
-                       csi_cam1: endpoint {
-                               remote-endpoint = <&csi_out1>;
-                       };
-               };
-       };
-};
diff --git a/Bindings/media/i2c/toshiba,et8ek8.yaml b/Bindings/media/i2c/toshiba,et8ek8.yaml
new file mode 100644 (file)
index 0000000..f0186ae
--- /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/media/i2c/toshiba,et8ek8.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Toshiba et8ek8 5MP sensor
+
+maintainers:
+  - Pavel Machek <pavel@ucw.cz>
+  - Sakari Ailus <sakari.ailus@iki.fi>
+
+description:
+  Toshiba et8ek8 5MP sensor is an image sensor found in Nokia N900 device
+
+allOf:
+  - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+  compatible:
+    const: toshiba,et8ek8
+
+  reg:
+    description:
+      I2C address (0x3e, or an alternative address)
+    maxItems: 1
+
+  vana-supply:
+    description:
+      Analogue voltage supply (VANA), 2.8 volts
+
+  clocks:
+    maxItems: 1
+
+  reset-gpios:
+    description:
+      XSHUTDOWN GPIO. The XSHUTDOWN signal is active low. The sensor
+      is in hardware standby mode when the signal is in the low state.
+    maxItems: 1
+
+  flash-leds:
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - vana-supply
+  - clocks
+  - reset-gpios
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@3e {
+            compatible = "toshiba,et8ek8";
+            reg = <0x3e>;
+            vana-supply = <&vaux4>;
+            clocks = <&isp 0>;
+            assigned-clocks = <&isp 0>;
+            assigned-clock-rates = <9600000>;
+            reset-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
+            flash-leds = <&led>;
+
+            port {
+                csi_cam1: endpoint {
+                    remote-endpoint = <&csi_out1>;
+                };
+            };
+        };
+    };
index b5aca3d2cc5c2a85ad81984715784df1c0cad891..18cc6315a82121425feba13731f9f9820bbd2705 100644 (file)
@@ -55,6 +55,12 @@ properties:
     minItems: 1               # Wrapper and all slots
     maxItems: 5               # Wrapper and 4 slots
 
+  sram:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Optional phandle to a reserved on-chip SRAM regions. The SRAM can
+      be used for descriptor storage, which may improve bus utilization.
+
 required:
   - compatible
   - reg
index 3f3ee82fc878b1b7a6557c1d1471006f1438d535..7e6dc410c2d2bd9e87c57dee20e22fc57e576a1f 100644 (file)
@@ -42,7 +42,7 @@ properties:
       - const: vcodec0_bus
 
   iommus:
-    maxItems: 5
+    maxItems: 2
 
   interconnects:
     maxItems: 2
@@ -102,10 +102,7 @@ examples:
         memory-region = <&pil_video_mem>;
 
         iommus = <&apps_smmu 0x860 0x0>,
-                 <&apps_smmu 0x880 0x0>,
-                 <&apps_smmu 0x861 0x04>,
-                 <&apps_smmu 0x863 0x0>,
-                 <&apps_smmu 0x804 0xe0>;
+                 <&apps_smmu 0x880 0x0>;
 
         interconnects = <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG
                          &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
index 80a4540a22dc236cd9890cdfb0330d0b312fe7fc..e5f170aa4d9ee79411b3f7048ed91e01f4cc45a2 100644 (file)
@@ -120,6 +120,14 @@ properties:
     items:
       - const: top
 
+  vdda-phy-supply:
+    description:
+      Phandle to a 0.88V regulator supply to CSI PHYs.
+
+  vdda-pll-supply:
+    description:
+      Phandle to 1.2V regulator supply to CSI PHYs pll block.
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
@@ -160,6 +168,8 @@ required:
   - power-domains
   - power-domain-names
   - ports
+  - vdda-phy-supply
+  - vdda-pll-supply
 
 additionalProperties: false
 
@@ -328,6 +338,9 @@ examples:
             power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
             power-domain-names = "top";
 
+            vdda-phy-supply = <&vreg_l4a_0p88>;
+            vdda-pll-supply = <&vreg_l1c_1p2>;
+
             ports {
                 #address-cells = <1>;
                 #size-cells = <0>;
index 019caa2b09c32d304fa903085b8f53ec43bdbccc..48f280e998096d7b5f3b50c8f1addb238a05d95a 100644 (file)
@@ -126,11 +126,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.8V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
index ee35e3bc97ffd3476651db44252c946252466cf1..b1c54c5b01b2829998b5e00c550b576ef573b89c 100644 (file)
@@ -125,11 +125,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.8V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
index c99fe4106eee9de8334ca248bdaf0abe10420348..354130aba9fc9d6227239c161cb988eab7e60029 100644 (file)
@@ -264,11 +264,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.8V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
 required:
   - clock-names
index 35c40fe223767ab221e4abaa95bf67a376fbb0f8..46cc7fff159923cdf23c78c9e54522ee9b9712c3 100644 (file)
@@ -91,11 +91,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.8V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
index 82bf4689d3300227786776d400620ddb60d73fc3..be09cf3a3b3b84e59f745a507e46fc91170e7756 100644 (file)
@@ -207,11 +207,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.8V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
 required:
   - clock-names
diff --git a/Bindings/media/qcom,sm6150-camss.yaml b/Bindings/media/qcom,sm6150-camss.yaml
new file mode 100644 (file)
index 0000000..ba7b0ac
--- /dev/null
@@ -0,0 +1,439 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/qcom,sm6150-camss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM6150 Camera Subsystem (CAMSS)
+
+maintainers:
+  - Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
+
+description:
+  This binding describes the camera subsystem hardware found on SM6150
+  Qualcomm SoCs. It includes submodules such as CSIPHY (CSI Physical layer)
+  and CSID (CSI Decoder), which comply with the MIPI CSI2 protocol.
+
+  The subsystem also integrates a set of real-time image processing engines
+  and their associated configuration modules, as well as non-real-time engines.
+
+properties:
+  compatible:
+    const: qcom,sm6150-camss
+
+  reg:
+    items:
+      - description: Registers for CSID 0
+      - description: Registers for CSID 1
+      - description: Registers for CSID Lite
+      - description: Registers for CSIPHY 0
+      - description: Registers for CSIPHY 1
+      - description: Registers for CSIPHY 2
+      - description: Registers for VFE 0
+      - description: Registers for VFE 1
+      - description: Registers for VFE Lite
+      - description: Registers for BPS (Bayer Processing Segment)
+      - description: Registers for CAMNOC
+      - description: Registers for CPAS CDM
+      - description: Registers for CPAS TOP
+      - description: Registers for ICP (Imaging Control Processor) CSR (Control and Status Registers)
+      - description: Registers for ICP QGIC (Qualcomm Generic Interrupt Controller)
+      - description: Registers for ICP SIERRA ((A5 subsystem communication))
+      - description: Registers for IPE (Image Postprocessing Engine) 0
+      - description: Registers for JPEG DMA
+      - description: Registers for JPEG ENC
+      - description: Registers for LRME (Low Resolution Motion Estimation)
+
+  reg-names:
+    items:
+      - const: csid0
+      - const: csid1
+      - const: csid_lite
+      - const: csiphy0
+      - const: csiphy1
+      - const: csiphy2
+      - const: vfe0
+      - const: vfe1
+      - const: vfe_lite
+      - const: bps
+      - const: camnoc
+      - const: cpas_cdm
+      - const: cpas_top
+      - const: icp_csr
+      - const: icp_qgic
+      - const: icp_sierra
+      - const: ipe0
+      - const: jpeg_dma
+      - const: jpeg_enc
+      - const: lrme
+
+  clocks:
+    maxItems: 33
+
+  clock-names:
+    items:
+      - const: gcc_ahb
+      - const: gcc_axi_hf
+      - const: camnoc_axi
+      - const: cpas_ahb
+      - const: csiphy0
+      - const: csiphy0_timer
+      - const: csiphy1
+      - const: csiphy1_timer
+      - const: csiphy2
+      - const: csiphy2_timer
+      - const: soc_ahb
+      - const: vfe0
+      - const: vfe0_axi
+      - const: vfe0_cphy_rx
+      - const: vfe0_csid
+      - const: vfe1
+      - const: vfe1_axi
+      - const: vfe1_cphy_rx
+      - const: vfe1_csid
+      - const: vfe_lite
+      - const: vfe_lite_cphy_rx
+      - const: vfe_lite_csid
+      - const: bps
+      - const: bps_ahb
+      - const: bps_axi
+      - const: bps_areg
+      - const: icp
+      - const: ipe0
+      - const: ipe0_ahb
+      - const: ipe0_areg
+      - const: ipe0_axi
+      - const: jpeg
+      - const: lrme
+
+  interrupts:
+    maxItems: 15
+
+  interrupt-names:
+    items:
+      - const: csid0
+      - const: csid1
+      - const: csid_lite
+      - const: csiphy0
+      - const: csiphy1
+      - const: csiphy2
+      - const: vfe0
+      - const: vfe1
+      - const: vfe_lite
+      - const: camnoc
+      - const: cdm
+      - const: icp
+      - const: jpeg_dma
+      - const: jpeg_enc
+      - const: lrme
+
+  interconnects:
+    maxItems: 4
+
+  interconnect-names:
+    items:
+      - const: ahb
+      - const: hf_0
+      - const: hf_1
+      - const: sf_mnoc
+
+  iommus:
+    items:
+      - description: Camera IFE 0 non-protected stream
+      - description: Camera IFE 1 non-protected stream
+      - description: Camera IFE 3 non-protected stream
+      - description: Camera CDM non-protected stream
+      - description: Camera LRME read non-protected stream
+      - description: Camera IPE 0 read non-protected stream
+      - description: Camera BPS read non-protected stream
+      - description: Camera IPE 0 write non-protected stream
+      - description: Camera BPS write non-protected stream
+      - description: Camera LRME write non-protected stream
+      - description: Camera JPEG read non-protected stream
+      - description: Camera JPEG write non-protected stream
+      - description: Camera ICP stream
+
+  power-domains:
+    items:
+      - description:
+          IFE0 GDSC - Image Front End, Global Distributed Switch Controller.
+      - description:
+          IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
+      - description:
+          Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
+      - description:
+          Titan BPS - Bayer Processing Segment, Global Distributed Switch Controller.
+      - description:
+          IPE GDSC - Image Postprocessing Engine, Global Distributed Switch Controller.
+
+  power-domain-names:
+    items:
+      - const: ife0
+      - const: ife1
+      - const: top
+      - const: bps
+      - const: ipe
+
+  vdd-csiphy-1p2-supply:
+    description:
+      Phandle to a 1.2V regulator supply to CSI PHYs.
+
+  vdd-csiphy-1p8-supply:
+    description:
+      Phandle to 1.8V regulator supply to CSI PHYs pll block.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    description:
+      CSI input ports.
+
+    patternProperties:
+      "^port@[0-2]$":
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+
+        description:
+          Input port for receiving CSI data from a CSIPHY.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - data-lanes
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+  - interrupts
+  - interrupt-names
+  - interconnects
+  - interconnect-names
+  - iommus
+  - power-domains
+  - power-domain-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,qcs615-camcc.h>
+    #include <dt-bindings/clock/qcom,qcs615-gcc.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/interconnect/qcom,icc.h>
+    #include <dt-bindings/interconnect/qcom,qcs615-rpmh.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        camss: isp@acb3000 {
+            compatible = "qcom,sm6150-camss";
+
+            reg = <0x0 0x0acb3000 0x0 0x1000>,
+                  <0x0 0x0acba000 0x0 0x1000>,
+                  <0x0 0x0acc8000 0x0 0x1000>,
+                  <0x0 0x0ac65000 0x0 0x1000>,
+                  <0x0 0x0ac66000 0x0 0x1000>,
+                  <0x0 0x0ac67000 0x0 0x1000>,
+                  <0x0 0x0acaf000 0x0 0x4000>,
+                  <0x0 0x0acb6000 0x0 0x4000>,
+                  <0x0 0x0acc4000 0x0 0x4000>,
+                  <0x0 0x0ac6f000 0x0 0x3000>,
+                  <0x0 0x0ac42000 0x0 0x5000>,
+                  <0x0 0x0ac48000 0x0 0x1000>,
+                  <0x0 0x0ac40000 0x0 0x1000>,
+                  <0x0 0x0ac18000 0x0 0x3000>,
+                  <0x0 0x0ac00000 0x0 0x6000>,
+                  <0x0 0x0ac10000 0x0 0x8000>,
+                  <0x0 0x0ac87000 0x0 0x3000>,
+                  <0x0 0x0ac52000 0x0 0x4000>,
+                  <0x0 0x0ac4e000 0x0 0x4000>,
+                  <0x0 0x0ac6b000 0x0 0x0a00>;
+            reg-names = "csid0",
+                        "csid1",
+                        "csid_lite",
+                        "csiphy0",
+                        "csiphy1",
+                        "csiphy2",
+                        "vfe0",
+                        "vfe1",
+                        "vfe_lite",
+                        "bps",
+                        "camnoc",
+                        "cpas_cdm",
+                        "cpas_top",
+                        "icp_csr",
+                        "icp_qgic",
+                        "icp_sierra",
+                        "ipe0",
+                        "jpeg_dma",
+                        "jpeg_enc",
+                        "lrme";
+
+            clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+                     <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                     <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                     <&camcc CAM_CC_CPAS_AHB_CLK>,
+                     <&camcc CAM_CC_CSIPHY0_CLK>,
+                     <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
+                     <&camcc CAM_CC_CSIPHY1_CLK>,
+                     <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
+                     <&camcc CAM_CC_CSIPHY2_CLK>,
+                     <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
+                     <&camcc CAM_CC_SOC_AHB_CLK>,
+                     <&camcc CAM_CC_IFE_0_CLK>,
+                     <&camcc CAM_CC_IFE_0_AXI_CLK>,
+                     <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
+                     <&camcc CAM_CC_IFE_0_CSID_CLK>,
+                     <&camcc CAM_CC_IFE_1_CLK>,
+                     <&camcc CAM_CC_IFE_1_AXI_CLK>,
+                     <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
+                     <&camcc CAM_CC_IFE_1_CSID_CLK>,
+                     <&camcc CAM_CC_IFE_LITE_CLK>,
+                     <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
+                     <&camcc CAM_CC_IFE_LITE_CSID_CLK>,
+                     <&camcc CAM_CC_BPS_CLK>,
+                     <&camcc CAM_CC_BPS_AHB_CLK>,
+                     <&camcc CAM_CC_BPS_AXI_CLK>,
+                     <&camcc CAM_CC_BPS_AREG_CLK>,
+                     <&camcc CAM_CC_ICP_CLK>,
+                     <&camcc CAM_CC_IPE_0_CLK>,
+                     <&camcc CAM_CC_IPE_0_AHB_CLK>,
+                     <&camcc CAM_CC_IPE_0_AREG_CLK>,
+                     <&camcc CAM_CC_IPE_0_AXI_CLK>,
+                     <&camcc CAM_CC_JPEG_CLK>,
+                     <&camcc CAM_CC_LRME_CLK>;
+
+            clock-names = "gcc_ahb",
+                          "gcc_axi_hf",
+                          "camnoc_axi",
+                          "cpas_ahb",
+                          "csiphy0",
+                          "csiphy0_timer",
+                          "csiphy1",
+                          "csiphy1_timer",
+                          "csiphy2",
+                          "csiphy2_timer",
+                          "soc_ahb",
+                          "vfe0",
+                          "vfe0_axi",
+                          "vfe0_cphy_rx",
+                          "vfe0_csid",
+                          "vfe1",
+                          "vfe1_axi",
+                          "vfe1_cphy_rx",
+                          "vfe1_csid",
+                          "vfe_lite",
+                          "vfe_lite_cphy_rx",
+                          "vfe_lite_csid",
+                          "bps",
+                          "bps_ahb",
+                          "bps_axi",
+                          "bps_areg",
+                          "icp",
+                          "ipe0",
+                          "ipe0_ahb",
+                          "ipe0_areg",
+                          "ipe0_axi",
+                          "jpeg",
+                          "lrme";
+
+            interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                             &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+                            <&mmss_noc MASTER_CAMNOC_HF0 QCOM_ICC_TAG_ALWAYS
+                             &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                            <&mmss_noc MASTER_CAMNOC_HF1 QCOM_ICC_TAG_ALWAYS
+                             &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                            <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ALWAYS
+                             &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+            interconnect-names = "ahb",
+                                 "hf_0",
+                                 "hf_1",
+                                 "sf_mnoc";
+
+            interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 466 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 459 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 461 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 475 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 474 IRQ_TYPE_EDGE_RISING>,
+                         <GIC_SPI 476 IRQ_TYPE_EDGE_RISING>;
+            interrupt-names = "csid0",
+                              "csid1",
+                              "csid_lite",
+                              "csiphy0",
+                              "csiphy1",
+                              "csiphy2",
+                              "vfe0",
+                              "vfe1",
+                              "vfe_lite",
+                              "camnoc",
+                              "cdm",
+                              "icp",
+                              "jpeg_dma",
+                              "jpeg_enc",
+                              "lrme";
+
+            iommus = <&apps_smmu 0x0820 0x40>,
+                     <&apps_smmu 0x0840 0x00>,
+                     <&apps_smmu 0x0860 0x40>,
+                     <&apps_smmu 0x0c00 0x00>,
+                     <&apps_smmu 0x0cc0 0x00>,
+                     <&apps_smmu 0x0c80 0x00>,
+                     <&apps_smmu 0x0ca0 0x00>,
+                     <&apps_smmu 0x0d00 0x00>,
+                     <&apps_smmu 0x0d20 0x00>,
+                     <&apps_smmu 0x0d40 0x00>,
+                     <&apps_smmu 0x0d80 0x20>,
+                     <&apps_smmu 0x0da0 0x20>,
+                     <&apps_smmu 0x0de2 0x00>;
+
+            power-domains = <&camcc IFE_0_GDSC>,
+                            <&camcc IFE_1_GDSC>,
+                            <&camcc TITAN_TOP_GDSC>,
+                            <&camcc BPS_GDSC>,
+                            <&camcc IPE_0_GDSC>;
+            power-domain-names = "ife0",
+                                 "ife1",
+                                 "top",
+                                 "bps",
+                                 "ipe";
+
+            vdd-csiphy-1p2-supply = <&vreg_l11a_1p2>;
+            vdd-csiphy-1p8-supply = <&vreg_l12a_1p8>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    csiphy_ep0: endpoint {
+                        data-lanes = <0 1>;
+                        remote-endpoint = <&sensor_ep>;
+                    };
+                };
+            };
+        };
+    };
index ebf68ff4ab961bffcd9ac89bc563949282489b45..a509d4bbcb4aa6668c611d32f466760bb3b3409d 100644 (file)
@@ -296,11 +296,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.8V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
 required:
   - clock-names
index cd34f14916b423b1e39c2144289f7ff2cc7f0105..4b9ab1352e9140a9a29f7b8d8148ac858fdcdcf9 100644 (file)
@@ -134,11 +134,11 @@ properties:
 
   vdda-phy-supply:
     description:
-      Phandle to a regulator supply to PHY core block.
+      0.88V supply to CSIPHY IP blocks.
 
   vdda-pll-supply:
     description:
-      Phandle to 1.2V regulator supply to PHY refclk pll block.
+      1.2V supply to CSIPHY IP blocks.
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
index b87a13479a4bf3c091f625b3f496a9f67d15ffc8..2d1662ef522b7b874a3e308e374044255bce5bb8 100644 (file)
@@ -120,11 +120,11 @@ properties:
 
   vdd-csiphy-0p8-supply:
     description:
-      Phandle to a 0.8V regulator supply to a PHY.
+      0.8V supply to a PHY.
 
   vdd-csiphy-1p2-supply:
     description:
-      Phandle to 1.2V regulator supply to a PHY.
+      1.2V supply to a PHY.
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
index cf92dfe69637c223eb4932d946313f551177add9..b5eff6fec8a98a906dc9743f99589446138b5cd1 100644 (file)
@@ -77,6 +77,7 @@ allOf:
               - renesas,r9a07g043u-fcpvd
               - renesas,r9a07g044-fcpvd
               - renesas,r9a07g054-fcpvd
+              - renesas,r9a09g056-fcpvd
               - renesas,r9a09g057-fcpvd
     then:
       properties:
diff --git a/Bindings/media/rockchip,rk3568-mipi-csi2.yaml b/Bindings/media/rockchip,rk3568-mipi-csi2.yaml
new file mode 100644 (file)
index 0000000..2c2bd87
--- /dev/null
@@ -0,0 +1,141 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/rockchip,rk3568-mipi-csi2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip MIPI CSI-2 Receiver
+
+maintainers:
+  - Michael Riesch <michael.riesch@collabora.com>
+
+description:
+  The Rockchip MIPI CSI-2 Receiver is a CSI-2 bridge with one input port and
+  one output port. It receives the data with the help of an external MIPI PHY
+  (C-PHY or D-PHY) and passes it to the Rockchip Video Capture (VICAP) block.
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk3568-mipi-csi2
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: Interrupt that signals changes in CSI2HOST_ERR1.
+      - description: Interrupt that signals changes in CSI2HOST_ERR2.
+
+  interrupt-names:
+    items:
+      - const: err1
+      - const: err2
+
+  clocks:
+    maxItems: 1
+
+  phys:
+    maxItems: 1
+    description: MIPI C-PHY or D-PHY.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: Input port node. Connect to e.g., a MIPI CSI-2 image sensor.
+
+        properties:
+          endpoint:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              bus-type:
+                enum:
+                  - 1 # MEDIA_BUS_TYPE_CSI2_CPHY
+                  - 4 # MEDIA_BUS_TYPE_CSI2_DPHY
+
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+            required:
+              - bus-type
+              - data-lanes
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Output port connected to a Rockchip VICAP port.
+
+    required:
+      - port@0
+      - port@1
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - phys
+  - ports
+  - power-domains
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rk3568-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/media/video-interfaces.h>
+    #include <dt-bindings/power/rk3568-power.h>
+
+    soc {
+        interrupt-parent = <&gic>;
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        csi: csi@fdfb0000 {
+            compatible = "rockchip,rk3568-mipi-csi2";
+            reg = <0x0 0xfdfb0000 0x0 0x10000>;
+            interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "err1", "err2";
+            clocks = <&cru PCLK_CSI2HOST1>;
+            phys = <&csi_dphy>;
+            power-domains = <&power RK3568_PD_VI>;
+            resets = <&cru SRST_P_CSI2HOST1>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                csi_in: port@0 {
+                    reg = <0>;
+
+                    csi_input: endpoint {
+                        bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
+                        data-lanes = <1 2 3 4>;
+                        remote-endpoint = <&imx415_output>;
+                    };
+                };
+
+                csi_out: port@1 {
+                    reg = <1>;
+
+                    csi_output: endpoint {
+                        remote-endpoint = <&vicap_mipi_input>;
+                    };
+                };
+            };
+        };
+    };
index 878397830a4ddf76c7a549c435c4593e0b8af753..9196cf5dac0ff93df6cea7e1981a94aa5c3941fc 100644 (file)
@@ -9,7 +9,7 @@ title: Samsung Exynos SoC G-Scaler
 maintainers:
   - Inki Dae <inki.dae@samsung.com>
   - Krzysztof Kozlowski <krzk@kernel.org>
-  - Seung-Woo Kim <sw0312.kim@samsung.com
+  - Seung-Woo Kim <sw0312.kim@samsung.com>
 
 description:
   G-Scaler is used for scaling and color space conversion on Samsung Exynos
index 7b03a77adbce8512f622fc992ef9913d52880f74..162a0c526d5d2225e529ac1b8634cbdfc22c6d16 100644 (file)
@@ -37,6 +37,9 @@ properties:
   resets:
     maxItems: 1
 
+  power-domains:
+    maxItems: 1
+
   access-controllers:
     minItems: 1
     maxItems: 2
index e9fa3cfea5d213b2d619175197079fbfa4300548..2ac7c9670c62d9d46f4fa173b6b188712d4390a8 100644 (file)
@@ -46,6 +46,9 @@ properties:
     minItems: 1
     maxItems: 2
 
+  power-domains:
+    maxItems: 1
+
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
 
diff --git a/Bindings/media/ti,omap3isp.txt b/Bindings/media/ti,omap3isp.txt
deleted file mode 100644 (file)
index ac23de8..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-OMAP 3 ISP Device Tree bindings
-===============================
-
-The DT definitions can be found in include/dt-bindings/media/omap3-isp.h.
-
-Required properties
-===================
-
-compatible     : must contain "ti,omap3-isp"
-
-reg            : the two registers sets (physical address and length) for the
-                 ISP. The first set contains the core ISP registers up to
-                 the end of the SBL block. The second set contains the
-                 CSI PHYs and receivers registers.
-interrupts     : the ISP interrupt specifier
-iommus         : phandle and IOMMU specifier for the IOMMU that serves the ISP
-syscon         : the phandle and register offset to the Complex I/O or CSI-PHY
-                 register
-ti,phy-type    : 0 -- OMAP3ISP_PHY_TYPE_COMPLEX_IO (e.g. 3430)
-                 1 -- OMAP3ISP_PHY_TYPE_CSIPHY (e.g. 3630)
-#clock-cells   : Must be 1 --- the ISP provides two external clocks,
-                 cam_xclka and cam_xclkb, at indices 0 and 1,
-                 respectively. Please find more information on common
-                 clock bindings in ../clock/clock-bindings.txt.
-
-Port nodes (optional)
----------------------
-
-More documentation on these bindings is available in
-video-interfaces.txt in the same directory.
-
-reg            : The interface:
-                 0 - parallel (CCDC)
-                 1 - CSIPHY1 -- CSI2C / CCP2B on 3630;
-                     CSI1 -- CSIb on 3430
-                 2 - CSIPHY2 -- CSI2A / CCP2B on 3630;
-                     CSI2 -- CSIa on 3430
-
-Optional properties
-===================
-
-vdd-csiphy1-supply : voltage supply of the CSI-2 PHY 1
-vdd-csiphy2-supply : voltage supply of the CSI-2 PHY 2
-
-Endpoint nodes
---------------
-
-lane-polarities        : lane polarity (required on CSI-2)
-                 0 -- not inverted; 1 -- inverted
-data-lanes     : an array of data lanes from 1 to 3. The length can
-                 be either 1 or 2. (required on CSI-2)
-clock-lanes    : the clock lane (from 1 to 3). (required on CSI-2)
-
-
-Example
-=======
-
-               isp@480bc000 {
-                       compatible = "ti,omap3-isp";
-                       reg = <0x480bc000 0x12fc
-                              0x480bd800 0x0600>;
-                       interrupts = <24>;
-                       iommus = <&mmu_isp>;
-                       syscon = <&scm_conf 0x2f0>;
-                       ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
-                       #clock-cells = <1>;
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
-               };
diff --git a/Bindings/media/ti,omap3isp.yaml b/Bindings/media/ti,omap3isp.yaml
new file mode 100644 (file)
index 0000000..7155fd3
--- /dev/null
@@ -0,0 +1,189 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/ti,omap3isp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments OMAP 3 Image Signal Processor (ISP)
+
+maintainers:
+  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+  - Sakari Ailus <sakari.ailus@iki.fi>
+
+description:
+  The OMAP 3 ISP is an image signal processor present in OMAP 3 SoCs.
+
+properties:
+  compatible:
+    const: ti,omap3-isp
+
+  reg:
+    items:
+      - description: Core ISP registers up to the end of the SBL block
+      - description: CSI PHYs and receivers registers
+
+  interrupts:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+  syscon:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to System Control Module
+          - description: register offset to Complex I/O or CSI-PHY register
+    description:
+      Phandle and register offset to the Complex I/O or CSI-PHY register
+
+  ti,phy-type:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+    description:
+      0 - OMAP3ISP_PHY_TYPE_COMPLEX_IO (e.g. OMAP 3430)
+      1 - OMAP3ISP_PHY_TYPE_CSIPHY (e.g. OMAP 3630)
+
+  '#clock-cells':
+    const: 1
+    description:
+      The ISP provides two external clocks, cam_xclka and cam_xclkb,
+      at indices 0 and 1 respectively.
+
+  vdd-csiphy1-supply:
+    description: Voltage supply of the CSI-2 PHY 1
+
+  vdd-csiphy2-supply:
+    description: Voltage supply of the CSI-2 PHY 2
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: Parallel (CCDC) interface
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+      port@1:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: |
+          CSIPHY1 interface:
+            OMAP 3630: CSI2C / CCP2B
+            OMAP 3430: CSI1 (CSIb)
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              lane-polarities:
+                minItems: 2
+                maxItems: 3
+
+              data-lanes:
+                minItems: 1
+                maxItems: 2
+                items:
+                  minimum: 1
+                  maximum: 3
+
+              clock-lanes:
+                minimum: 1
+                maximum: 3
+
+      port@2:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: |
+          CSIPHY2 interface:
+            OMAP 3630: CSI2A / CCP2B
+            OMAP 3430: CSI2 (CSIa)
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              lane-polarities:
+                minItems: 2
+                maxItems: 3
+
+              data-lanes:
+                minItems: 1
+                maxItems: 2
+                items:
+                  minimum: 1
+                  maximum: 3
+
+              clock-lanes:
+                minimum: 1
+                maximum: 3
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - iommus
+  - syscon
+  - ti,phy-type
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/media/omap3-isp.h>
+
+    isp@480bc000 {
+        compatible = "ti,omap3-isp";
+        reg = <0x480bc000 0x12fc>,
+              <0x480bd800 0x0600>;
+        interrupts = <24>;
+        iommus = <&mmu_isp>;
+        syscon = <&scm_conf 0x2f0>;
+        ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
+        #clock-cells = <1>;
+        vdd-csiphy1-supply = <&vaux2>;
+        vdd-csiphy2-supply = <&vaux2>;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            port@0 {
+                reg = <0>;
+                parallel_ep: endpoint {
+                    remote-endpoint = <&parallel>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                csi1_ep: endpoint {
+                    remote-endpoint = <&smia_1>;
+                    clock-lanes = <1>;
+                    data-lanes = <2>;
+                    lane-polarities = <0 0>;
+                };
+            };
+
+            port@2 {
+                reg = <2>;
+                csi2a_ep: endpoint {
+                    remote-endpoint = <&smia_2>;
+                    clock-lanes = <2>;
+                    data-lanes = <1 3>;
+                    lane-polarities = <1 1 1>;
+                };
+            };
+        };
+    };
diff --git a/Bindings/media/ti,vip.yaml b/Bindings/media/ti,vip.yaml
new file mode 100644 (file)
index 0000000..e30cc46
--- /dev/null
@@ -0,0 +1,152 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2025 Texas Instruments Incorporated -  http://www.ti.com/
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/ti,vip.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments DRA7x Video Input Port (VIP)
+
+maintainers:
+  - Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
+
+description: |-
+  Video Input Port (VIP) can be found on devices such as DRA7xx and
+  provides the system interface and the processing capability to
+  connect parallel image-sensor as well as BT.656/1120 capable encoder
+  chip to DRA7x device.
+
+  Each VIP instance supports 2 independently configurable external
+  video input capture slices (Slice 0 and Slice 1) each providing
+  up to two video input ports (Port A and Port B).
+
+properties:
+  compatible:
+    enum:
+      - ti,dra7-vip
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: IRQ index 0 is used for Slice0 interrupts
+      - description: IRQ index 1 is used for Slice1 interrupts
+
+  ti,ctrl-module:
+    description:
+      Reference to the device control module that provides clock-edge
+      inversion control for VIP ports. These controls allow the
+      VIP to sample pixel data on the correct clock edge.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      items:
+        - description: phandle to device control module
+        - description: offset to the CTRL_CORE_SMA_SW_1 register
+        - description: Bit field to slice 0 port A
+        - description: Bit field to slice 0 port B
+        - description: Bit field to slice 1 port A
+        - description: Bit field to slice 1 port B
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    patternProperties:
+      '^port@[0-3]$':
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: |
+          Each VIP instance supports 2 independently configurable external video
+          input capture slices (Slice 0 and Slice 1) each providing up to two video
+          input ports (Port A and Port B). These ports represent the following
+          port@0 -> Slice 0 Port A
+          port@1 -> Slice 0 Port B
+          port@2 -> Slice 1 Port A
+          port@3 -> Slice 1 Port B
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              bus-width:
+                enum: [8, 16, 24]
+                default: 8
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - ti,ctrl-module
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    video@48970000 {
+      compatible = "ti,dra7-vip";
+      reg = <0x48970000 0x1000>;
+      interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
+      ti,ctrl-module = <&scm_conf 0x534 0x0 0x2 0x1 0x3>;
+
+      ports {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        vin1a: port@0 {
+          reg = <0>;
+
+          vin1a_ep: endpoint {
+            remote-endpoint = <&camera1>;
+            hsync-active = <1>;
+            vsync-active = <1>;
+            pclk-sample = <0>;
+            bus-width = <8>;
+          };
+        };
+
+        vin1b: port@1 {
+          reg = <1>;
+
+          vin1b_ep: endpoint {
+            remote-endpoint = <&camera2>;
+            hsync-active = <1>;
+            vsync-active = <1>;
+            pclk-sample = <0>;
+            bus-width = <8>;
+          };
+        };
+
+        vin2a: port@2 {
+          reg = <2>;
+
+          vin2a_ep: endpoint {
+            remote-endpoint = <&camera3>;
+            hsync-active = <1>;
+            vsync-active = <1>;
+            pclk-sample = <0>;
+            bus-width = <16>;
+          };
+        };
+
+        vin2b: port@3 {
+          reg = <3>;
+
+          vin2b_ep: endpoint {
+            remote-endpoint = <&camera4>;
+            hsync-active = <1>;
+            vsync-active = <1>;
+            pclk-sample = <0>;
+            bus-width = <8>;
+          };
+        };
+      };
+    };
+...
diff --git a/Bindings/memory-controllers/ddr/jedec,ddr4.yaml b/Bindings/memory-controllers/ddr/jedec,ddr4.yaml
new file mode 100644 (file)
index 0000000..928961c
--- /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/memory-controllers/ddr/jedec,ddr4.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DDR4 SDRAM compliant to JEDEC JESD79-4D
+
+maintainers:
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+allOf:
+  - $ref: jedec,sdram-props.yaml#
+
+properties:
+  compatible:
+    items:
+      - pattern: "^ddr4-[0-9a-f]{4},[a-z]{1,20}-[0-9a-f]{2}$"
+      - const: jedec,ddr4
+
+required:
+  - compatible
+  - density
+  - io-width
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    ddr {
+        compatible = "ddr4-00ff,azaz-ff", "jedec,ddr4";
+        density = <8192>;
+        io-width = <8>;
+    };
diff --git a/Bindings/memory-controllers/ddr/jedec,lpddr-props.yaml b/Bindings/memory-controllers/ddr/jedec,lpddr-props.yaml
deleted file mode 100644 (file)
index 30267ce..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr-props.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Common properties for LPDDR types
-
-description:
-  Different LPDDR types generally use the same properties and only differ in the
-  range of legal values for each. This file defines the common parts that can be
-  reused for each type. Nodes using this schema should generally be nested under
-  an LPDDR channel node.
-
-maintainers:
-  - Krzysztof Kozlowski <krzk@kernel.org>
-
-properties:
-  compatible:
-    description:
-      Compatible strings can be either explicit vendor names and part numbers
-      (e.g. elpida,ECB240ABACN), or generated strings of the form
-      lpddrX-YY,ZZZZ where X is the LPDDR version, YY is the manufacturer ID
-      (from MR5) and ZZZZ is the revision ID (from MR6 and MR7). Both IDs are
-      formatted in lower case hexadecimal representation with leading zeroes.
-      The latter form can be useful when LPDDR nodes are created at runtime by
-      boot firmware that doesn't have access to static part number information.
-
-  reg:
-    description:
-      The rank number of this LPDDR rank when used as a subnode to an LPDDR
-      channel.
-    minimum: 0
-    maximum: 3
-
-  revision-id:
-    $ref: /schemas/types.yaml#/definitions/uint32-array
-    description:
-      Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
-    maxItems: 2
-    items:
-      minimum: 0
-      maximum: 255
-
-  density:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description:
-      Density in megabits of SDRAM chip. Decoded from Mode Register 8.
-    enum:
-      - 64
-      - 128
-      - 256
-      - 512
-      - 1024
-      - 2048
-      - 3072
-      - 4096
-      - 6144
-      - 8192
-      - 12288
-      - 16384
-      - 24576
-      - 32768
-
-  io-width:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description:
-      IO bus width in bits of SDRAM chip. Decoded from Mode Register 8.
-    enum:
-      - 8
-      - 16
-      - 32
-
-additionalProperties: true
index a237bc259273bf15d30569ac8b5c840cae0d5946..704bbc562528efeb572cf9902fd3c48971c6b161 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
 allOf:
-  - $ref: jedec,lpddr-props.yaml#
+  - $ref: jedec,sdram-props.yaml#
 
 properties:
   compatible:
index e328a1195ba64680d2adf0fa24eb46209b3a3c27..0d28df3d2bfae74b1f0f7b2d58d7e861647cc133 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
 allOf:
-  - $ref: jedec,lpddr-props.yaml#
+  - $ref: jedec,sdram-props.yaml#
 
 properties:
   compatible:
index a078892fecee36d12a2f4174b4a52e8c54fae970..65aa07861453f0ae720f223be873498dda73d46f 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
 allOf:
-  - $ref: jedec,lpddr-props.yaml#
+  - $ref: jedec,sdram-props.yaml#
 
 properties:
   compatible:
index e441dac5f154451886258ce6e25e069715c55290..cf5d5a8e94b344d1aceb1a540b1e80c439f99e35 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
 allOf:
-  - $ref: jedec,lpddr-props.yaml#
+  - $ref: jedec,sdram-props.yaml#
 
 properties:
   compatible:
similarity index 76%
rename from Bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml
rename to Bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
index 34b5bd153f63e038e73f6422d15564915d97a81c..5cdd8ef45100a0f497e201514c8a45c0146e233c 100644 (file)
@@ -1,23 +1,28 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr-channel.yaml#
+$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,sdram-channel.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: LPDDR channel with chip/rank topology description
+title: SDRAM channel with chip/rank topology description
 
 description:
-  An LPDDR channel is a completely independent set of LPDDR pins (DQ, CA, CS,
-  CK, etc.) that connect one or more LPDDR chips to a host system. The main
-  purpose of this node is to overall LPDDR topology of the system, including the
-  amount of individual LPDDR chips and the ranks per chip.
+  A memory channel of SDRAM memory like DDR SDRAM or LPDDR SDRAM is a completely
+  independent set of pins (DQ, CA, CS, CK, etc.) that connect one or more memory
+  chips to a host system. The main purpose of this node is to overall memory
+  topology of the system, including the amount of individual memory chips and
+  the ranks per chip.
 
 maintainers:
   - Julius Werner <jwerner@chromium.org>
 
 properties:
+  $nodename:
+    pattern: "sdram-channel-[0-9]+$"
+
   compatible:
     enum:
+      - jedec,ddr4-channel
       - jedec,lpddr2-channel
       - jedec,lpddr3-channel
       - jedec,lpddr4-channel
@@ -26,14 +31,14 @@ properties:
   io-width:
     description:
       The number of DQ pins in the channel. If this number is different
-      from (a multiple of) the io-width of the LPDDR chip, that means that
+      from (a multiple of) the io-width of the SDRAM chip, that means that
       multiple instances of that type of chip are wired in parallel on this
       channel (with the channel's DQ pins split up between the different
       chips, and the CA, CS, etc. pins of the different chips all shorted
       together).  This means that the total physical memory controlled by a
       channel is equal to the sum of the densities of each rank on the
-      connected LPDDR chip, times the io-width of the channel divided by
-      the io-width of the LPDDR chip.
+      connected SDRAM chip, times the io-width of the channel divided by
+      the io-width of the SDRAM chip.
     enum:
       - 8
       - 16
@@ -51,8 +56,8 @@ patternProperties:
   "^rank@[0-9]+$":
     type: object
     description:
-      Each physical LPDDR chip may have one or more ranks. Ranks are
-      internal but fully independent sub-units of the chip. Each LPDDR bus
+      Each physical SDRAM chip may have one or more ranks. Ranks are
+      internal but fully independent sub-units of the chip. Each SDRAM bus
       transaction on the channel targets exactly one rank, based on the
       state of the CS pins. Different ranks may have different densities and
       timing requirements.
@@ -60,6 +65,15 @@ patternProperties:
       - reg
 
 allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: jedec,ddr4-channel
+    then:
+      patternProperties:
+        "^rank@[0-9]+$":
+          $ref: /schemas/memory-controllers/ddr/jedec,ddr4.yaml#
   - if:
       properties:
         compatible:
@@ -107,7 +121,7 @@ additionalProperties: false
 
 examples:
   - |
-    lpddr-channel0 {
+    sdram-channel-0 {
       #address-cells = <1>;
       #size-cells = <0>;
       compatible = "jedec,lpddr3-channel";
@@ -122,7 +136,7 @@ examples:
       };
     };
 
-    lpddr-channel1 {
+    sdram-channel-1 {
       #address-cells = <1>;
       #size-cells = <0>;
       compatible = "jedec,lpddr4-channel";
diff --git a/Bindings/memory-controllers/ddr/jedec,sdram-props.yaml b/Bindings/memory-controllers/ddr/jedec,sdram-props.yaml
new file mode 100644 (file)
index 0000000..fedd66e
--- /dev/null
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,sdram-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common properties for SDRAM types
+
+description:
+  Different SDRAM types generally use the same properties and only differ in the
+  range of legal values for each. This file defines the common parts that can be
+  reused for each type. Nodes using this schema should generally be nested under
+  a SDRAM channel node.
+
+maintainers:
+  - Krzysztof Kozlowski <krzk@kernel.org>
+
+properties:
+  compatible:
+    description: |
+      Compatible strings can be either explicit vendor names and part numbers
+      (e.g. elpida,ECB240ABACN), or generated strings of the form
+      lpddrX-YY,ZZZZ or ddrX-YYYY,AAAA...-ZZ where X, Y, and Z are lowercase
+      hexadecimal with leading zeroes, and A is lowercase ASCII.
+      For LPDDR and DDR SDRAM, X is the SDRAM version (2, 3, 4, etc.).
+      For LPDDR SDRAM:
+        - YY is the manufacturer ID (from MR5), 1 byte
+        - ZZZZ is the revision ID (from MR6 and MR7), 2 bytes
+      For DDR4 SDRAM with SPD, according to JEDEC SPD4.1.2.L-6:
+        - YYYY is the manufacturer ID, 2 bytes, from bytes 320 and 321
+        - AAAA... is the part number, 20 bytes (20 chars) from bytes 329 to 348
+          without trailing spaces
+        - ZZ is the revision ID, 1 byte, from byte 349
+      The former form is useful when the SDRAM vendor and part number are
+      known, for example, when memory is soldered on the board. The latter
+      form is useful when SDRAM nodes are created at runtime by boot firmware
+      that doesn't have access to static part number information.
+
+  reg:
+    description:
+      The rank number of this memory rank when used as a subnode to an memory
+      channel.
+    minimum: 0
+    maximum: 3
+
+  revision-id:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: |
+      SDRAM revision ID:
+        - LPDDR SDRAM, decoded from Mode Registers 6 and 7, always 2 bytes.
+        - DDR4 SDRAM, decoded from the SPD from byte 349 according to
+          JEDEC SPD4.1.2.L-6, always 1 byte.
+      One byte per uint32 cell (e.g., <MR6 MR7>).
+    maxItems: 2
+    items:
+      minimum: 0
+      maximum: 255
+
+  density:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Density of the SDRAM chip in megabits:
+        - LPDDR SDRAM, decoded from Mode Register 8.
+        - DDR4 SDRAM, decoded from the SPD from bits 3-0 of byte 4 according to
+          JEDEC SPD4.1.2.L-6.
+    enum:
+      - 64
+      - 128
+      - 256
+      - 512
+      - 1024
+      - 2048
+      - 3072
+      - 4096
+      - 6144
+      - 8192
+      - 12288
+      - 16384
+      - 24576
+      - 32768
+
+  io-width:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      I/O bus width in bits of the SDRAM chip:
+        - LPDDR SDRAM, decoded from Mode Register 8.
+        - DDR4 SDRAM, decoded from the SPD from bits 2-0 of byte 12 according to
+          JEDEC SPD4.1.2.L-6.
+    enum:
+      - 8
+      - 16
+      - 32
+
+additionalProperties: true
index b901f1b3e0fc332f2ad450a8d3cca132a6aa1f83..7b03b589168b1b465754cffb86c9b05345a31cc0 100644 (file)
@@ -92,10 +92,14 @@ patternProperties:
       clocks:
         items:
           - description: external memory clock
+          - description: data backbone clock
+        minItems: 1
 
       clock-names:
         items:
           - const: emc
+          - const: dbb
+        minItems: 1
 
       "#interconnect-cells":
         const: 0
@@ -115,6 +119,9 @@ patternProperties:
             reg:
               maxItems: 1
 
+            clocks:
+              maxItems: 1
+
       - if:
           properties:
             compatible:
@@ -124,6 +131,9 @@ patternProperties:
             reg:
               minItems: 2
 
+            clocks:
+              maxItems: 1
+
       - if:
           properties:
             compatible:
@@ -133,6 +143,9 @@ patternProperties:
             reg:
               minItems: 2
 
+            clocks:
+              maxItems: 1
+
       - if:
           properties:
             compatible:
index da1887d7a8fe55e0878d9da790d22cce2b88f984..a87f31fce01952e49537aa0633e26f33f7d431c6 100644 (file)
@@ -130,6 +130,23 @@ patternProperties:
           - description: silicon id information registers
           - description: unique chip id registers
 
+  '^smp-memram@[0-9a-f]+$':
+    description: Memory region used for the AST2600's custom SMP bringup protocol
+    type: object
+    additionalProperties: false
+
+    properties:
+      compatible:
+        const: aspeed,ast2600-smpmem
+
+      reg:
+        description: The SMP memory region
+        maxItems: 1
+
+    required:
+      - compatible
+      - reg
+
 required:
   - compatible
   - reg
index 4aa36903e755bb128b0654896b39c82bdca797ce..dfee8707bac25bdcb16ecb9d4b45e4bf096976fb 100644 (file)
@@ -25,6 +25,7 @@ properties:
       - atmel,sama5d4-hlcdc
       - microchip,sam9x60-hlcdc
       - microchip,sam9x75-xlcdc
+      - microchip,sama7d65-xlcdc
 
   reg:
     maxItems: 1
index c7d6cf96796cd062ca6598f429ddb8d70ba5f5f7..5e5dec2f6564a2dbf41fe7f7e2b8923cf13958bb 100644 (file)
@@ -20,6 +20,7 @@ properties:
       - const: atmel,sama5d2-flexcom
       - items:
           - enum:
+              - microchip,lan9691-flexcom
               - microchip,sam9x7-flexcom
               - microchip,sama7d65-flexcom
               - microchip,sama7g5-flexcom
diff --git a/Bindings/mfd/bitmain,bm1880-sctrl.yaml b/Bindings/mfd/bitmain,bm1880-sctrl.yaml
new file mode 100644 (file)
index 0000000..3cdc90b
--- /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/mfd/bitmain,bm1880-sctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bitmain BM1880 System Controller
+
+maintainers:
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    items:
+      - const: bitmain,bm1880-sctrl
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+patternProperties:
+  '^pinctrl@[0-9a-f]+$':
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        contains:
+          const: bitmain,bm1880-pinctrl
+
+  '^clock-controller@[0-9a-f]+$':
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        contains:
+          const: bitmain,bm1880-clk
+
+  '^reset-controller@[0-9a-f]+$':
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        contains:
+          const: bitmain,bm1880-reset
+
+required:
+  - compatible
+  - reg
+  - ranges
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+...
index 131a53283e1786c6488a91587617e558f7109963..d3099bf5600223fe4ed1d66ce69ec5972443fe75 100644 (file)
@@ -15,7 +15,7 @@ The CODEC device in DA9055 has a separate, configurable I2C address and so
 is instantiated separately from the PMIC.
 
 For details on accompanying CODEC I2C device, see the following:
-Documentation/devicetree/bindings/sound/da9055.txt
+Documentation/devicetree/bindings/sound/trivial-codec.yaml
 
 ======
 
diff --git a/Bindings/mfd/iei,wt61p803-puzzle.yaml b/Bindings/mfd/iei,wt61p803-puzzle.yaml
new file mode 100644 (file)
index 0000000..28e488c
--- /dev/null
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/iei,wt61p803-puzzle.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IEI WT61P803 PUZZLE MCU from IEI Integration Corp.
+
+maintainers:
+  - Luka Kovacic <luka.kovacic@sartura.hr>
+
+description: |
+  IEI WT61P803 PUZZLE MCU is embedded in some IEI Puzzle series boards.
+  It's used for controlling system power states, fans, LEDs and temperature
+  sensors.
+
+  For Device Tree bindings of other sub-modules (HWMON, LEDs) refer to the
+  binding documents under the respective subsystem directories.
+
+properties:
+  compatible:
+    const: iei,wt61p803-puzzle
+
+  current-speed: true
+
+  enable-beep:
+    type: boolean
+
+  hwmon:
+    $ref: /schemas/hwmon/iei,wt61p803-puzzle-hwmon.yaml
+
+  leds:
+    $ref: /schemas/leds/iei,wt61p803-puzzle-leds.yaml
+
+required:
+  - compatible
+  - current-speed
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+    serial {
+        mcu {
+            compatible = "iei,wt61p803-puzzle";
+            current-speed = <115200>;
+            enable-beep;
+
+            leds {
+                compatible = "iei,wt61p803-puzzle-leds";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                led@0 {
+                    reg = <0>;
+                    function = LED_FUNCTION_POWER;
+                    color = <LED_COLOR_ID_BLUE>;
+                };
+            };
+
+            hwmon {
+                compatible = "iei,wt61p803-puzzle-hwmon";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                fan-group@0 {
+                    #cooling-cells = <2>;
+                    reg = <0x00>;
+                    cooling-levels = <64 102 170 230 250>;
+                };
+
+                fan-group@1 {
+                    #cooling-cells = <2>;
+                    reg = <0x01>;
+                    cooling-levels = <64 102 170 230 250>;
+                };
+            };
+        };
+    };
index 6a89b479d10fad3c8b61cab5a3af1453baca4d1a..05c121b0cb3d863ba9f780dc5c0f6dd29fc461b5 100644 (file)
@@ -90,6 +90,7 @@ properties:
           - enum:
               - mediatek,mt6323-regulator
               - mediatek,mt6328-regulator
+              - mediatek,mt6331-regulator
               - mediatek,mt6358-regulator
               - mediatek,mt6359-regulator
               - mediatek,mt6397-regulator
index 0e1d43c96fb9dad07aed47ab19c410b6197ed3a5..4cafa381979bf3f78fe30532fe3a1b5bd52234c7 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: MediaTek System Control Processor System
 
 maintainers:
-  - MandyJH Liu <mandyjh.liu@mediatek.com>
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+  - Matthias Brugger <matthias.bgg@gmail.com>
 
 description:
   MediaTek System Control Processor System (SCPSYS) has several
@@ -18,6 +19,7 @@ properties:
   compatible:
     items:
       - enum:
+          - mediatek,mt6795-scpsys
           - mediatek,mt6893-scpsys
           - mediatek,mt8167-scpsys
           - mediatek,mt8173-scpsys
diff --git a/Bindings/mfd/nxp,lpc3220-scb.yaml b/Bindings/mfd/nxp,lpc3220-scb.yaml
new file mode 100644 (file)
index 0000000..b993dd1
--- /dev/null
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/nxp,lpc3220-scb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC32xx System Control Block
+
+maintainers:
+  - Vladimir Zapolskiy <vz@mleia.com>
+
+description:
+  NXP LPC32xx SoC series have a System Control Block, which serves for
+  a multitude of purposes including clock management, DMA muxes, storing
+  SoC unique ID etc.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - nxp,lpc3220-scb
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+patternProperties:
+  "^clock-controller@[0-9a-f]+$":
+    $ref: /schemas/clock/nxp,lpc3220-clk.yaml#
+
+  "^dma-router@[0-9a-f]+$":
+    $ref: /schemas/dma/nxp,lpc3220-dmamux.yaml#
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@400040000 {
+        compatible = "nxp,lpc3220-scb", "syscon", "simple-mfd";
+        reg = <0x40004000 0x1000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges = <0 0x40004000 0x1000>;
+
+        clock-controller@0 {
+            compatible = "nxp,lpc3220-clk";
+            reg = <0x0 0x114>;
+            clocks = <&xtal_32k>, <&xtal>;
+            clock-names = "xtal_32k", "xtal";
+            #clock-cells = <1>;
+        };
+
+        dma-router@78 {
+            compatible = "nxp,lpc3220-dmamux";
+            reg = <0x78 0x8>;
+            dma-masters = <&dma>;
+            #dma-cells = <3>;
+        };
+    };
index 65c80e3b45008fe764e3479c7f02c61c007177d0..e5931d18d9984f26cb2f7f58844ab20935a54652 100644 (file)
@@ -77,8 +77,12 @@ properties:
           - qcom,pmc8180
           - qcom,pmc8180c
           - qcom,pmc8380
+          - qcom,pmcx0102
           - qcom,pmd8028
           - qcom,pmd9635
+          - qcom,pmh0101
+          - qcom,pmh0104
+          - qcom,pmh0110
           - qcom,pmi632
           - qcom,pmi8950
           - qcom,pmi8962
@@ -89,6 +93,7 @@ properties:
           - qcom,pmk8002
           - qcom,pmk8350
           - qcom,pmk8550
+          - qcom,pmk8850
           - qcom,pmm8155au
           - qcom,pmm8654au
           - qcom,pmp8074
@@ -101,6 +106,7 @@ properties:
           - qcom,pmx75
           - qcom,smb2351
           - qcom,smb2360
+          - qcom,smb2370
       - const: qcom,spmi-pmic
 
   reg:
index 5454d9403cad792276a751439624c2c944e08463..12e738b1270a608919ba27552ed214010d9c1c66 100644 (file)
@@ -16,6 +16,7 @@ description:
 properties:
   compatible:
     enum:
+      - qnap,ts133-mcu
       - qnap,ts233-mcu
       - qnap,ts433-mcu
 
diff --git a/Bindings/mfd/realtek,rtd1xxx.yaml b/Bindings/mfd/realtek,rtd1xxx.yaml
new file mode 100644 (file)
index 0000000..b0342df
--- /dev/null
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/realtek,rtd1xxx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Realtek RTD1xxx system controllers
+
+maintainers:
+  - Andreas Färber <afaerber@suse.de>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - realtek,rtd1293-crt
+          - realtek,rtd1293-iso
+          - realtek,rtd1293-misc
+          - realtek,rtd1293-sb2
+          - realtek,rtd1293-scpu-wrapper
+          - realtek,rtd1295-crt
+          - realtek,rtd1295-iso
+          - realtek,rtd1295-misc
+          - realtek,rtd1295-sb2
+          - realtek,rtd1295-scpu-wrapper
+          - realtek,rtd1296-crt
+          - realtek,rtd1296-iso
+          - realtek,rtd1296-misc
+          - realtek,rtd1296-sb2
+          - realtek,rtd1296-scpu-wrapper
+          - realtek,rtd1395-crt
+          - realtek,rtd1395-iso
+          - realtek,rtd1395-misc
+          - realtek,rtd1395-sb2
+          - realtek,rtd1395-scpu-wrapper
+          - realtek,rtd1619-crt
+          - realtek,rtd1619-iso
+          - realtek,rtd1619-misc
+          - realtek,rtd1619-sb2
+          - realtek,rtd1619-scpu-wrapper
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  reg-io-width:
+    const: 4
+
+  ranges: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+patternProperties:
+  '@[0-9a-f]+$':
+    type: object
+
+    required:
+      - compatible
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
diff --git a/Bindings/mfd/rockchip,rk801.yaml b/Bindings/mfd/rockchip,rk801.yaml
new file mode 100644 (file)
index 0000000..7c71447
--- /dev/null
@@ -0,0 +1,197 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/rockchip,rk801.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RK801 Power Management Integrated Circuit
+
+maintainers:
+  - Joseph Chen <chenjh@rock-chips.com>
+
+description: |
+  Rockchip RK801 series PMIC. This device consists of an i2c controlled MFD
+  that includes multiple switchable regulators.
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk801
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  system-power-controller:
+    type: boolean
+    description:
+      Telling whether or not this PMIC is controlling the system power.
+
+  wakeup-source:
+    type: boolean
+    description:
+      Device can be used as a wakeup source.
+
+  vcc1-supply:
+    description:
+      The input supply for dcdc1.
+
+  vcc2-supply:
+    description:
+      The input supply for dcdc2.
+
+  vcc3-supply:
+    description:
+      The input supply for dcdc3.
+
+  vcc4-supply:
+    description:
+      The input supply for dcdc4.
+
+  vcc5-supply:
+    description:
+      The input supply for ldo1.
+
+  vcc6-supply:
+    description:
+      The input supply for ldo2.
+
+  vcc7-supply:
+    description:
+      The input supply for switch.
+
+  regulators:
+    type: object
+    patternProperties:
+      "^(dcdc[1-4]|ldo[1-2]|switch)$":
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        unevaluatedProperties: false
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/pinctrl/rockchip.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        rk801: pmic@27 {
+            compatible = "rockchip,rk801";
+            reg = <0x27>;
+            interrupt-parent = <&gpio0>;
+            interrupts = <RK_PC0 IRQ_TYPE_LEVEL_LOW>;
+            pinctrl-names = "default";
+            pinctrl-0 = <&pmic_int_l>;
+            system-power-controller;
+            wakeup-source;
+
+            vcc1-supply = <&vcc_sys>;
+            vcc2-supply = <&vcc_sys>;
+            vcc3-supply = <&vcc_sys>;
+            vcc4-supply = <&vcc_sys>;
+            vcc5-supply = <&vcc3v3_sys>;
+            vcc6-supply = <&vcc3v3_sys>;
+            vcc7-supply = <&vcc3v3_sys>;
+
+            regulators {
+                vdd_cpu: dcdc1 {
+                    regulator-name = "vdd_cpu";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <1500000>;
+                    regulator-initial-mode = <0x1>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-mode = <0x2>;
+                        regulator-off-in-suspend;
+                        regulator-suspend-microvolt = <950000>;
+                    };
+                };
+
+                vcc3v3_sys: dcdc2 {
+                    regulator-name = "vcc3v3_sys";
+                    regulator-min-microvolt = <3300000>;
+                    regulator-max-microvolt = <3300000>;
+                    regulator-initial-mode = <0x1>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-mode = <0x2>;
+                        regulator-on-in-suspend;
+                        regulator-suspend-microvolt = <3300000>;
+                    };
+                };
+
+                vcc_ddr: dcdc3 {
+                    regulator-name = "vcc_ddr";
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-mode = <0x2>;
+                        regulator-on-in-suspend;
+                    };
+                };
+
+                vdd_logic: dcdc4 {
+                    regulator-name = "vdd_logic";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <1500000>;
+                    regulator-initial-mode = <0x1>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-mode = <0x2>;
+                        regulator-off-in-suspend;
+                        regulator-suspend-microvolt = <900000>;
+                    };
+                };
+
+                vdd0v9_sys: ldo1 {
+                    regulator-name = "vdd0v9_sys";
+                    regulator-min-microvolt = <900000>;
+                    regulator-max-microvolt = <900000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-off-in-suspend;
+                        regulator-suspend-microvolt = <900000>;
+                    };
+                };
+
+                vcc_1v8: ldo2 {
+                    regulator-name = "vcc_1v8";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <1800000>;
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-off-in-suspend;
+                        regulator-suspend-microvolt = <1800000>;
+                    };
+                };
+
+                vcc_3v3: switch {
+                    regulator-name = "vcc_3v3";
+                    regulator-boot-on;
+                    regulator-always-on;
+                    regulator-state-mem {
+                        regulator-off-in-suspend;
+                        regulator-suspend-microvolt = <3300000>;
+                    };
+                };
+            };
+        };
+    };
diff --git a/Bindings/mfd/rohm,bd72720-pmic.yaml b/Bindings/mfd/rohm,bd72720-pmic.yaml
new file mode 100644 (file)
index 0000000..9f42097
--- /dev/null
@@ -0,0 +1,339 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/rohm,bd72720-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD72720 Power Management Integrated Circuit
+
+maintainers:
+  - Matti Vaittinen <mazziesaccount@gmail.com>
+
+description:
+  BD72720 is a single-chip power management IC for battery-powered portable
+  devices. The BD72720 integrates 10 bucks and 11 LDOs, and a 3000 mA
+  switching charger. The IC also includes a Coulomb counter, a real-time
+  clock (RTC), GPIOs and a 32.768 kHz clock gate.
+
+# In addition to the properties found from the charger node, the ROHM BD72720
+# uses properties from a static battery node. Please see the:
+# Documentation/devicetree/bindings/power/supply/battery.yaml
+#
+# Following properties are used
+# when present:
+#
+# charge-full-design-microamp-hours: Battry capacity in mAh
+# voltage-max-design-microvolt:      Maximum voltage
+# voltage-min-design-microvolt:      Minimum voltage system is still operating.
+# degrade-cycle-microamp-hours:      Capacity lost due to aging at each full
+#                                    charge cycle.
+# ocv-capacity-celsius:              Array of OCV table temperatures. 1/table.
+# ocv-capacity-table-<N>:            Table of OCV voltage/SOC pairs. Corresponds
+#                                    N.th temperature in ocv-capacity-celsius
+#
+# volt-drop-thresh-microvolt: Threshold for starting the VDR correction
+# volt-drop-soc:                Table of capacity values matching the
+#                                    values in VDR tables.
+#
+# volt-drop-temperatures-millicelsius: Temperatures corresponding to the volage
+# drop values given in volt-drop-[0-9]-microvolt
+#
+# volt-drop-[0-9]-microvolt: VDR table for a temperature specified in
+# volt-drop-temperatures-millicelsius
+#
+# VDR tables are (usually) determined for a specific battery by ROHM.
+# The battery node would then be referred from the charger node:
+#
+# monitored-battery = <&battery>;
+
+properties:
+  compatible:
+    const: rohm,bd72720
+
+  reg:
+    description:
+      I2C slave address.
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+    description:
+      The first cell is the pin number and the second cell is used to specify
+      flags. See the gpio binding document for more information.
+
+  clocks:
+    maxItems: 1
+
+  "#clock-cells":
+    const: 0
+
+  clock-output-names:
+    const: bd71828-32k-out
+
+  rohm,clkout-open-drain:
+    description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
+    $ref: /schemas/types.yaml#/definitions/uint32
+    maximum: 1
+
+  rohm,charger-sense-resistor-micro-ohms:
+    minimum: 10000
+    maximum: 50000
+    description:
+      BD72720 has a SAR ADC for measuring charging currents. External sense
+      resistor (RSENSE in data sheet) should be used. If some other but
+      30 mOhm resistor is used the resistance value should be given here in
+      micro Ohms.
+
+  regulators:
+    $ref: /schemas/regulator/rohm,bd72720-regulator.yaml
+    description:
+      List of child nodes that specify the regulators.
+
+  leds:
+    $ref: /schemas/leds/rohm,bd71828-leds.yaml
+
+  rohm,pin-fault_b:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      BD72720 has an OTP option to use fault_b-pin for different
+      purposes. Set this property accordingly. OTP options are
+      OTP0 - bi-directional FAULT_B or READY indicator depending on a
+      'sub option'
+      OTP1 - GPO
+      OTP2 - Power sequencer output.
+    enum:
+      - faultb
+      - readyind
+      - gpo
+      - pwrseq
+
+patternProperties:
+  "^rohm,pin-dvs[0-1]$":
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      BD72720 has 4 different OTP options to determine the use of dvs<X>-pins.
+      OTP0 - regulator RUN state control.
+      OTP1 - GPI.
+      OTP2 - GPO.
+      OTP3 - Power sequencer output.
+      This property specifies the use of the pin.
+    enum:
+      - dvs-input
+      - gpi
+      - gpo
+      - pwrseq
+
+  "^rohm,pin-exten[0-1]$":
+    $ref: /schemas/types.yaml#/definitions/string
+    description: BD72720 has an OTP option to use exten0-pin for different
+      purposes. Set this property accordingly.
+      OTP0 - GPO
+      OTP1 - Power sequencer output.
+    enum:
+      - gpo
+      - pwrseq
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - "#clock-cells"
+  - regulators
+  - gpio-controller
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/leds/common.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        pmic: pmic@4b {
+            compatible = "rohm,bd72720";
+            reg = <0x4b>;
+
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+
+            clocks = <&osc 0>;
+            #clock-cells = <0>;
+            clock-output-names = "bd71828-32k-out";
+
+            gpio-controller;
+            #gpio-cells = <2>;
+
+            rohm,pin-dvs0 = "gpi";
+            rohm,pin-dvs1 = "gpi";
+            rohm,pin-exten0 = "gpo";
+            rohm,pin-exten1 = "gpo";
+            rohm,pin-fault_b = "faultb";
+
+            rohm,charger-sense-resistor-micro-ohms = <10000>;
+
+            regulators {
+                buck1 {
+                    regulator-name = "buck1";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-ramp-delay = <2500>;
+                };
+                buck2 {
+                    regulator-name = "buck2";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-ramp-delay = <2500>;
+                };
+                buck3 {
+                    regulator-name = "buck3";
+                    regulator-min-microvolt = <1200000>;
+                    regulator-max-microvolt = <2000000>;
+                };
+                buck4 {
+                    regulator-name = "buck4";
+                    regulator-min-microvolt = <1000000>;
+                    regulator-max-microvolt = <1800000>;
+                };
+                buck5 {
+                    regulator-name = "buck5";
+                    regulator-min-microvolt = <2500000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                buck6 {
+                    regulator-name = "buck6";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-ramp-delay = <2500>;
+                };
+                buck7 {
+                    regulator-name = "buck7";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <2000000>;
+                    regulator-ramp-delay = <2500>;
+                };
+                buck8 {
+                    regulator-name = "buck8";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <1700000>;
+                    regulator-ramp-delay = <2500>;
+                    rohm,dvs-run-voltage = <1700000>;
+                    rohm,dvs-idle-voltage = <1>;
+                    rohm,dvs-suspend-voltage = <1>;
+                    rohm,dvs-lpsr-voltage = <0>;
+                    regulator-boot-on;
+                };
+                buck9 {
+                    regulator-name = "buck9";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <1700000>;
+                    regulator-ramp-delay = <2500>;
+                    rohm,dvs-run-voltage = <1700000>;
+                    rohm,dvs-idle-voltage = <1>;
+                    rohm,dvs-suspend-voltage = <1>;
+                    rohm,dvs-lpsr-voltage = <0>;
+                    regulator-boot-on;
+                };
+                buck10 {
+                    regulator-name = "buck10";
+                    regulator-min-microvolt = <500000>;
+                    regulator-max-microvolt = <1700000>;
+                    regulator-ramp-delay = <2500>;
+                    rohm,dvs-run-voltage = <1700000>;
+                    rohm,dvs-idle-voltage = <1>;
+                    rohm,dvs-suspend-voltage = <1>;
+                    rohm,dvs-lpsr-voltage = <0>;
+                    regulator-boot-on;
+                };
+                ldo1 {
+                    regulator-name = "ldo1";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo2 {
+                    regulator-name = "ldo2";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo3 {
+                    regulator-name = "ldo3";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo4 {
+                    regulator-name = "ldo4";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo5 {
+                    regulator-name = "ldo5";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo6 {
+                    regulator-name = "ldo6";
+                    regulator-min-microvolt = <1800000>;
+                    regulator-max-microvolt = <1800000>;
+                };
+                ldo7 {
+                    regulator-name = "ldo7";
+                    regulator-min-microvolt = <800000>;
+                    regulator-max-microvolt = <3300000>;
+                };
+                ldo8 {
+                    regulator-name = "ldo8";
+                    regulator-min-microvolt = <750000>;
+                    regulator-max-microvolt = <3300000>;
+                    rohm,dvs-suspend-voltage = <0>;
+                    rohm,dvs-lpsr-voltage = <1>;
+                    rohm,dvs-run-voltage = <750000>;
+                };
+                ldo9 {
+                    regulator-name = "ldo9";
+                    regulator-min-microvolt = <750000>;
+                    regulator-max-microvolt = <3300000>;
+                    rohm,dvs-suspend-voltage = <0>;
+                    rohm,dvs-lpsr-voltage = <1>;
+                    rohm,dvs-run-voltage = <750000>;
+                };
+                ldo10 {
+                    regulator-name = "ldo10";
+                    regulator-min-microvolt = <750000>;
+                    regulator-max-microvolt = <3300000>;
+                    rohm,dvs-suspend-voltage = <0>;
+                    rohm,dvs-lpsr-voltage = <1>;
+                    rohm,dvs-run-voltage = <750000>;
+                };
+                ldo11 {
+                    regulator-name = "ldo11";
+                    regulator-min-microvolt = <750000>;
+                    regulator-max-microvolt = <3300000>;
+                    rohm,dvs-suspend-voltage = <0>;
+                    rohm,dvs-lpsr-voltage = <1>;
+                    rohm,dvs-run-voltage = <750000>;
+                };
+            };
+
+            leds {
+                compatible = "rohm,bd71828-leds";
+
+                led-1 {
+                    rohm,led-compatible = "bd71828-grnled";
+                    function = LED_FUNCTION_INDICATOR;
+                    color = <LED_COLOR_ID_GREEN>;
+                };
+                led-2 {
+                    rohm,led-compatible = "bd71828-ambled";
+                    function = LED_FUNCTION_CHARGING;
+                    color = <LED_COLOR_ID_AMBER>;
+                };
+            };
+        };
+    };
diff --git a/Bindings/mfd/samsung,s2mpg10-pmic.yaml b/Bindings/mfd/samsung,s2mpg10-pmic.yaml
new file mode 100644 (file)
index 0000000..0ea1a44
--- /dev/null
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/samsung,s2mpg10-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S2MPG10 Power Management IC
+
+maintainers:
+  - André Draszik <andre.draszik@linaro.org>
+
+description: |
+  This is part of the device tree bindings for the S2MPG10 Power Management IC
+  (PMIC).
+
+  The Samsung S2MPG10 is a Power Management IC for mobile applications with buck
+  converters, various LDOs, power meters, RTC, clock outputs, and additional
+  GPIO interfaces and is typically complemented by S2MPG10 PMIC in a main/sub
+  configuration as the main PMIC.
+
+properties:
+  compatible:
+    const: samsung,s2mpg10-pmic
+
+  clocks:
+    $ref: /schemas/clock/samsung,s2mps11.yaml
+    description:
+      Child node describing clock provider.
+
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    $ref: /schemas/regulator/samsung,s2mpg10-regulator.yaml
+    description:
+      List of child nodes that specify the regulators.
+
+  system-power-controller: true
+
+  wakeup-source: true
+
+patternProperties:
+  "^vinb([1-9]|10)m-supply$":
+    description:
+      Phandle to the power supply for each buck rail of this PMIC. There is a
+      1:1 mapping of supply to rail, e.g. vinb1m-supply supplies buck1m.
+
+  "^vinl([1-9]|1[0-5])m-supply$":
+    description: |
+      Phandle to the power supply for one or multiple LDO rails of this PMIC.
+      The mapping of supply to rail(s) is as follows:
+        vinl1m - ldo13m
+        vinl2m - ldo15m
+        vinl3m - ldo1m, ldo5m, ldo7m
+        vinl4m - ldo3m, ldo8m
+        vinl5m - ldo16m
+        vinl6m - ldo17m
+        vinl7m - ldo6m, ldo11m, ldo24m, ldo28m
+        vinl8m - ldo12m
+        vinl9m - ldo2m, ldo4m
+        vinl10m - ldo9m, ldo14m, ldo18m, 19m, ldo20m, ldo25m
+        vinl11m - ldo23m, ldo31m
+        vinl12m - ldo29m
+        vinl13m - ldo30m
+        vinl14m - ldo21m
+        vinl15m - ldo10m, ldo22m, ldo26m, ldo27m
+
+required:
+  - compatible
+  - interrupts
+  - regulators
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/regulator/samsung,s2mpg10-regulator.h>
+
+    pmic {
+        compatible = "samsung,s2mpg10-pmic";
+        interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pmic_int>;
+        system-power-controller;
+        wakeup-source;
+
+        vinl3m-supply = <&buck8m>;
+
+        clocks {
+            compatible = "samsung,s2mpg10-clk";
+            #clock-cells = <1>;
+            clock-output-names = "rtc32k_ap", "peri32k1", "peri32k2";
+        };
+
+        regulators {
+            buck8m {
+                regulator-name = "vdd_mif";
+                regulator-min-microvolt = <450000>;
+                regulator-max-microvolt = <1300000>;
+                regulator-ramp-delay = <6250>;
+            };
+
+            ldo1m {
+                regulator-name = "vdd_ldo1";
+                regulator-min-microvolt = <700000>;
+                regulator-max-microvolt = <1300000>;
+            };
+
+            ldo20m {
+                regulator-name = "vdd_dmics";
+                regulator-min-microvolt = <700000>;
+                regulator-max-microvolt = <1300000>;
+                regulator-always-on;
+                samsung,ext-control = <S2MPG10_EXTCTRL_LDO20M_EN2>;
+            };
+        };
+    };
diff --git a/Bindings/mfd/samsung,s2mpg11-pmic.yaml b/Bindings/mfd/samsung,s2mpg11-pmic.yaml
new file mode 100644 (file)
index 0000000..62cedbb
--- /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/mfd/samsung,s2mpg11-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S2MPG11 Power Management IC
+
+maintainers:
+  - André Draszik <andre.draszik@linaro.org>
+
+description: |
+  This is part of the device tree bindings for the S2MPG11 Power Management IC
+  (PMIC).
+
+  The Samsung S2MPG11 is a Power Management IC for mobile applications with buck
+  converters, various LDOs, power meters, NTC thermistor inputs, and additional
+  GPIO interfaces and typically complements an S2MPG10 PMIC in a main/sub
+  configuration as the sub-PMIC.
+
+properties:
+  compatible:
+    const: samsung,s2mpg11-pmic
+
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    $ref: /schemas/regulator/samsung,s2mpg11-regulator.yaml
+    description:
+      List of child nodes that specify the regulators.
+
+  wakeup-source: true
+
+patternProperties:
+  "^vinb(([1-9]|10)s|[abd])-supply$":
+    description:
+      Phandle to the power supply for each buck rail of this PMIC. There is a
+      1:1 mapping of numbered supply to rail, e.g. vinb1s-supply supplies
+      buck1s. The remaining mapping is as follows
+        vinba - bucka
+        vinbb - buck boost
+        vinbd - buckd
+
+  "^vinl[1-6]s-supply$":
+    description: |
+      Phandle to the power supply for one or multiple LDO rails of this PMIC.
+      The mapping of supply to rail(s) is as follows
+        vinl1s - ldo1s, ldo2s
+        vinl2s - ldo8s, ldo9s
+        vinl3s - ldo3s, ldo5s, ldo7s, ldo15s
+        vinl4s - ldo10s, ldo11s, ldo12s, ldo14s
+        vinl5s - ldo4s, ldo6s
+        vinl6s - ldo13s
+
+required:
+  - compatible
+  - interrupts
+  - regulators
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/regulator/samsung,s2mpg10-regulator.h>
+
+    pmic {
+        compatible = "samsung,s2mpg11-pmic";
+        interrupts-extended = <&gpa0 7 IRQ_TYPE_LEVEL_LOW>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pmic_int>;
+        wakeup-source;
+
+        vinl1s-supply = <&buck8m>;
+        vinl2s-supply = <&buck6s>;
+
+        regulators {
+            buckd {
+                regulator-name = "vcc_ufs";
+                regulator-ramp-delay = <6250>;
+                enable-gpios = <&gpp0 1 GPIO_ACTIVE_HIGH>;
+                samsung,ext-control = <S2MPG11_EXTCTRL_UFS_EN>;
+            };
+        };
+    };
index 31d544a9c05cad878d10a0ae9b99631f08eb04a8..ac5d0c149796b6a4034b5d4245bfa8be0433cfab 100644 (file)
@@ -20,7 +20,6 @@ description: |
 properties:
   compatible:
     enum:
-      - samsung,s2mpg10-pmic
       - samsung,s2mps11-pmic
       - samsung,s2mps13-pmic
       - samsung,s2mps14-pmic
@@ -59,42 +58,16 @@ properties:
       reset (setting buck voltages to default values).
     type: boolean
 
-  system-power-controller: true
-
   wakeup-source: true
 
 required:
   - compatible
+  - reg
   - regulators
 
 additionalProperties: false
 
 allOf:
-  - if:
-      properties:
-        compatible:
-          contains:
-            const: samsung,s2mpg10-pmic
-    then:
-      properties:
-        reg: false
-        samsung,s2mps11-acokb-ground: false
-        samsung,s2mps11-wrstbi-ground: false
-
-      # oneOf is required, because dtschema's fixups.py doesn't handle this
-      # nesting here. Its special treatment to allow either interrupt property
-      # when only one is specified in the binding works at the top level only.
-      oneOf:
-        - required: [interrupts]
-        - required: [interrupts-extended]
-
-    else:
-      properties:
-        system-power-controller: false
-
-      required:
-        - reg
-
   - if:
       properties:
         compatible:
index 55efb83b1495acb3980388d385e19182359c32dc..e57add2bacd30b0582e037ae69dd9f2b55d13066 100644 (file)
@@ -102,6 +102,8 @@ select:
           - mstar,msc313-pmsleep
           - nuvoton,ma35d1-sys
           - nuvoton,wpcm450-shm
+          - nxp,s32g2-gpr
+          - nxp,s32g3-gpr
           - qcom,apq8064-mmss-sfpb
           - qcom,apq8064-sps-sic
           - rockchip,px30-qos
@@ -195,6 +197,7 @@ properties:
               - mediatek,mt2701-pctl-a-syscfg
               - mediatek,mt2712-pctl-a-syscfg
               - mediatek,mt6397-pctl-pmic-syscfg
+              - mediatek,mt7981-topmisc
               - mediatek,mt7988-topmisc
               - mediatek,mt8135-pctl-a-syscfg
               - mediatek,mt8135-pctl-b-syscfg
@@ -212,6 +215,8 @@ properties:
               - mstar,msc313-pmsleep
               - nuvoton,ma35d1-sys
               - nuvoton,wpcm450-shm
+              - nxp,s32g2-gpr
+              - nxp,s32g3-gpr
               - qcom,apq8064-mmss-sfpb
               - qcom,apq8064-sps-sic
               - rockchip,px30-qos
diff --git a/Bindings/misc/google,android-pipe.yaml b/Bindings/misc/google,android-pipe.yaml
new file mode 100644 (file)
index 0000000..9e8046f
--- /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/misc/google,android-pipe.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish QEMU Pipe
+
+maintainers:
+  - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+description:
+  Android QEMU pipe virtual device generated by Android emulator.
+
+properties:
+  compatible:
+    const: google,android-pipe
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    pipe@ff018000 {
+        compatible = "google,android-pipe";
+        reg = <0xff018000 0x2000>;
+        interrupts = <18>;
+    };
index 3f6199fc9ae6ae57ca24538ba2c0ab88c397ffb1..d8e47db677ccc848cdf6b0f02920e2d6eb79825f 100644 (file)
@@ -18,7 +18,9 @@ description: |
 
 properties:
   compatible:
-    const: qcom,fastrpc
+    enum:
+      - qcom,kaanapali-fastrpc
+      - qcom,fastrpc
 
   label:
     enum:
index 1d91d4272de05e23b5dbcb511664cd31d78bc32e..a61d6c96df759102f9c1fbfd548b026a77921cae 100644 (file)
@@ -32,21 +32,13 @@ properties:
 
 patternProperties:
   "^partitions(-boot[12]|-gp[14])?$":
-    $ref: /schemas/mtd/partitions/partitions.yaml
+    type: object
+    additionalProperties: true
 
-    patternProperties:
-      "^partition@[0-9a-f]+$":
-        $ref: /schemas/mtd/partitions/partition.yaml
-
-        properties:
-          reg:
-            description: Must be multiple of 512 as it's converted
-              internally from bytes to SECTOR_SIZE (512 bytes)
-
-        required:
-          - reg
-
-        unevaluatedProperties: false
+    properties:
+      compatible:
+        contains:
+          const: fixed-partitions
 
 required:
   - compatible
index 064e840aeaa1159d17c4e5bf61a2f61c64e702eb..3105f8e6cbd6f56163f82e0f574af1ca147c3834 100644 (file)
@@ -66,7 +66,6 @@ properties:
         items:
           - const: brcm,nand-iproc
           - const: brcm,brcmnand-v6.1
-          - const: brcm,brcmnand
       - description: BCM63168 SoC-specific NAND controller
         items:
           - const: brcm,nand-bcm63168
index 73dc69cee4d8faf7c7d32daa3858be743a3abc39..367257a227b10214731531f1af981b3078b3ba96 100644 (file)
@@ -40,6 +40,8 @@ properties:
   dmas:
     maxItems: 1
 
+  dma-coherent: true
+
   iommus:
     maxItems: 1
 
diff --git a/Bindings/mtd/microchip,mchp23k256.txt b/Bindings/mtd/microchip,mchp23k256.txt
deleted file mode 100644 (file)
index 7328eb9..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-* MTD SPI driver for Microchip 23K256 (and similar) serial SRAM
-
-Required properties:
-- #address-cells, #size-cells : Must be present if the device has sub-nodes
-  representing partitions.
-- compatible : Must be one of "microchip,mchp23k256" or "microchip,mchp23lcv1024"
-- reg : Chip-Select number
-- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at
-
-Example:
-
-       spi-sram@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "microchip,mchp23k256";
-               reg = <0>;
-               spi-max-frequency = <20000000>;
-       };
diff --git a/Bindings/mtd/microchip,mchp23k256.yaml b/Bindings/mtd/microchip,mchp23k256.yaml
new file mode 100644 (file)
index 0000000..32e9124
--- /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/mtd/microchip,mchp23k256.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip 23K256 SPI SRAM
+
+maintainers:
+  - Richard Weinberger <richard@nod.at>
+
+description:
+  The Microchip 23K256 is a 256 Kbit (32 Kbyte) serial SRAM with an
+  SPI interface,supporting clock frequencies up to 20 MHz. It features
+  a 32-byte page size for writes and supports byte, page, and
+  sequential access modes.
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - microchip,mchp23k256
+      - microchip,mchp23lcv1024
+
+  reg:
+    maxItems: 1
+
+required:
+  - reg
+  - compatible
+  - spi-max-frequency
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sram@0 {
+            compatible = "microchip,mchp23k256";
+            reg = <0>;
+            spi-max-frequency = <20000000>;
+        };
+    };
+...
index bbb56216a4e253aa40790d7afd02df8b54d6bc08..5a2d06c96c0d1abbda5f7973a57e5a226649776c 100644 (file)
@@ -30,18 +30,14 @@ properties:
     deprecated: true
 
   partitions:
-    $ref: /schemas/mtd/partitions/partitions.yaml
+    type: object
 
     required:
       - compatible
 
 patternProperties:
-  "@[0-9a-f]+$":
-    $ref: partitions/partition.yaml
-    deprecated: true
-
-  "^partition@[0-9a-f]+":
-    $ref: partitions/partition.yaml
+  "(^partition)?@[0-9a-f]+$":
+    $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
     deprecated: true
 
   "^otp(-[0-9]+)?$":
diff --git a/Bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml b/Bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml
new file mode 100644 (file)
index 0000000..81c041a
--- /dev/null
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/mxic,multi-itfc-v009-nand-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Macronix Raw NAND Controller
+
+maintainers:
+  - Mason Yang <masonccyang@mxic.com.tw>
+
+description:
+  The Macronix Multi-Interface Raw NAND Controller is a versatile flash
+  memory controller for embedding in SoCs, capable of interfacing with
+  various NAND devices. It requires dedicated clock inputs for core, data
+  transmit, and delayed transmit paths along with register space and an
+  interrupt line for operation.
+
+allOf:
+  - $ref: nand-controller.yaml#
+
+properties:
+  compatible:
+    const: mxic,multi-itfc-v009-nand-controller
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  clocks:
+    minItems: 3
+    maxItems: 3
+
+  clock-names:
+    items:
+      - const: ps
+      - const: send
+      - const: send_dly
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#address-cells"
+  - "#size-cells"
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    nand-controller@43c30000 {
+        compatible = "mxic,multi-itfc-v009-nand-controller";
+        reg = <0x43c30000 0x10000>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        interrupts = <GIC_SPI 0x1d IRQ_TYPE_EDGE_RISING>;
+        clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>;
+        clock-names = "ps", "send", "send_dly";
+
+        nand@0 {
+            reg = <0>;
+            nand-ecc-mode = "soft";
+            nand-ecc-algo = "bch";
+        };
+    };
+...
diff --git a/Bindings/mtd/mxic-nand.txt b/Bindings/mtd/mxic-nand.txt
deleted file mode 100644 (file)
index 46c5529..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Macronix Raw NAND Controller Device Tree Bindings
--------------------------------------------------
-
-Required properties:
-- compatible: should be "mxic,multi-itfc-v009-nand-controller"
-- reg: should contain 1 entry for the registers
-- #address-cells: should be set to 1
-- #size-cells: should be set to 0
-- interrupts: interrupt line connected to this raw NAND controller
-- clock-names: should contain "ps", "send" and "send_dly"
-- clocks: should contain 3 phandles for the "ps", "send" and
-        "send_dly" clocks
-
-Children nodes:
-- children nodes represent the available NAND chips.
-
-See Documentation/devicetree/bindings/mtd/nand-controller.yaml
-for more details on generic bindings.
-
-Example:
-
-       nand: nand-controller@43c30000 {
-               compatible = "mxic,multi-itfc-v009-nand-controller";
-               reg = <0x43c30000 0x10000>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupts = <GIC_SPI 0x1d IRQ_TYPE_EDGE_RISING>;
-               clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>;
-               clock-names = "send", "send_dly", "ps";
-
-               nand@0 {
-                       reg = <0>;
-                       nand-ecc-mode = "soft";
-                       nand-ecc-algo = "bch";
-               };
-       };
diff --git a/Bindings/mtd/nvidia,tegra20-nand.yaml b/Bindings/mtd/nvidia,tegra20-nand.yaml
new file mode 100644 (file)
index 0000000..b417d72
--- /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/mtd/nvidia,tegra20-nand.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NVIDIA Tegra NAND Flash Controller
+
+maintainers:
+  - Jonathan Hunter <jonathanh@nvidia.com>
+
+allOf:
+  - $ref: nand-controller.yaml
+
+description:
+  The NVIDIA NAND controller provides an interface between NVIDIA SoCs
+  and raw NAND flash devices. It supports standard NAND operations,
+  hardware-assisted ECC, OOB data access, and DMA transfers, and
+  integrates with the Linux MTD NAND subsystem for reliable flash management.
+
+properties:
+  compatible:
+    const: nvidia,tegra20-nand
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: nand
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: nand
+
+  power-domains:
+    maxItems: 1
+
+  operating-points-v2:
+    maxItems: 1
+
+patternProperties:
+  '^nand@':
+    type: object
+    description: Individual NAND chip connected to the NAND controller
+    $ref: raw-nand-chip.yaml#
+
+    properties:
+      reg:
+        maximum: 5
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/tegra20-car.h>
+    #include <dt-bindings/gpio/tegra-gpio.h>
+
+    nand-controller@70008000 {
+        compatible = "nvidia,tegra20-nand";
+        reg = <0x70008000 0x100>;
+        interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&tegra_car TEGRA20_CLK_NDFLASH>;
+        clock-names = "nand";
+        resets = <&tegra_car 13>;
+        reset-names = "nand";
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        nand@0 {
+            reg = <0>;
+            #address-cells = <1>;
+            #size-cells = <1>;
+            nand-bus-width = <8>;
+            nand-on-flash-bbt;
+            nand-ecc-algo = "bch";
+            nand-ecc-strength = <8>;
+            wp-gpios = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_LOW>;
+        };
+    };
+...
diff --git a/Bindings/mtd/nvidia-tegra20-nand.txt b/Bindings/mtd/nvidia-tegra20-nand.txt
deleted file mode 100644 (file)
index 4a00ec2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-NVIDIA Tegra NAND Flash controller
-
-Required properties:
-- compatible: Must be one of:
-  - "nvidia,tegra20-nand"
-- reg: MMIO address range
-- interrupts: interrupt output of the NFC controller
-- clocks: Must contain an entry for each entry in clock-names.
-  See ../clocks/clock-bindings.txt for details.
-- clock-names: Must include the following entries:
-  - nand
-- resets: Must contain an entry for each entry in reset-names.
-  See ../reset/reset.txt for details.
-- reset-names: Must include the following entries:
-  - nand
-
-Optional children nodes:
-Individual NAND chips are children of the NAND controller node. Currently
-only one NAND chip supported.
-
-Required children node properties:
-- reg: An integer ranging from 1 to 6 representing the CS line to use.
-
-Optional children node properties:
-- nand-ecc-mode: String, operation mode of the NAND ecc mode. Currently only
-                "hw" is supported.
-- nand-ecc-algo: string, algorithm of NAND ECC.
-                Supported values with "hw" ECC mode are: "rs", "bch".
-- nand-bus-width : See nand-controller.yaml
-- nand-on-flash-bbt: See nand-controller.yaml
-- nand-ecc-strength: integer representing the number of bits to correct
-                    per ECC step (always 512). Supported strength using HW ECC
-                    modes are:
-                    - RS: 4, 6, 8
-                    - BCH: 4, 8, 14, 16
-- nand-ecc-maximize: See nand-controller.yaml
-- nand-is-boot-medium: Makes sure only ECC strengths supported by the boot ROM
-                      are chosen.
-- wp-gpios: GPIO specifier for the write protect pin.
-
-Optional child node of NAND chip nodes:
-Partitions: see mtd.yaml
-
-  Example:
-       nand-controller@70008000 {
-               compatible = "nvidia,tegra20-nand";
-               reg = <0x70008000 0x100>;
-               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&tegra_car TEGRA20_CLK_NDFLASH>;
-               clock-names = "nand";
-               resets = <&tegra_car 13>;
-               reset-names = "nand";
-
-               nand@0 {
-                       reg = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       nand-bus-width = <8>;
-                       nand-on-flash-bbt;
-                       nand-ecc-algo = "bch";
-                       nand-ecc-strength = <8>;
-                       wp-gpios = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_LOW>;
-               };
-       };
index e9b1a6869910cd684a0a0b92f45f6f439fa85ee6..d4b6013aefcc4d25944956a7c373e65dd6c8a95e 100644 (file)
@@ -9,8 +9,6 @@ title: ARM Firmware Suite (AFS) Partitions
 maintainers:
   - Linus Walleij <linusw@kernel.org>
 
-select: false
-
 description: |
   The ARM Firmware Suite is a flash partitioning system found on the
   ARM reference designs: Integrator AP, Integrator CP, Versatile AB,
diff --git a/Bindings/mtd/partitions/binman.yaml b/Bindings/mtd/partitions/binman.yaml
deleted file mode 100644 (file)
index bb4b085..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mtd/partitions/binman.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Binman entries
-
-description: |
-  This corresponds to a binman 'entry'. It is a single partition which holds
-  data of a defined type.
-
-  Binman uses the type to indicate what data file / type to place in the
-  partition. There are quite a number of binman-specific entry types, such as
-  section, fill and files, to be added later.
-
-maintainers:
-  - Simon Glass <sjg@chromium.org>
-
-allOf:
-  - $ref: /schemas/mtd/partitions/partition.yaml#
-
-properties:
-  compatible:
-    enum:
-      - u-boot       # u-boot.bin from U-Boot project
-      - tfa-bl31     # bl31.bin or bl31.elf from TF-A project
-
-required:
-  - compatible
-
-unevaluatedProperties: false
-
-examples:
-  - |
-    partitions {
-        compatible = "fixed-partitions";
-        #address-cells = <1>;
-        #size-cells = <1>;
-
-        partition@100000 {
-            compatible = "u-boot";
-            reg = <0x100000 0xf00000>;
-            align-size = <0x1000>;
-            align-end = <0x10000>;
-        };
-
-        partition@200000 {
-            compatible = "tfa-bl31";
-            reg = <0x200000 0x100000>;
-            align = <0x4000>;
-        };
-    };
index 94f0742b375cedcaa8951da41f7817a07af3e968..d9fefb46d2fad12487ad4161a75c6dfdde216f62 100644 (file)
@@ -17,8 +17,6 @@ description: |
 maintainers:
   - Rafał Miłecki <rafal@milecki.pl>
 
-select: false
-
 properties:
   compatible:
     const: brcm,bcm4908-partitions
@@ -31,11 +29,7 @@ properties:
 
 patternProperties:
   "^partition@[0-9a-f]+$":
-    $ref: partition.yaml#
-    properties:
-      compatible:
-        const: brcm,bcm4908-firmware
-    unevaluatedProperties: false
+    $ref: partition.yaml#/$defs/partition-node
 
 required:
   - "#address-cells"
index 939e7b50db2222620527914a18f6df5bcf834490..3484e06d6bcb86c92e18d0d1e5741174719726a4 100644 (file)
@@ -35,8 +35,6 @@ description: |
 maintainers:
   - Rafał Miłecki <rafal@milecki.pl>
 
-select: false
-
 properties:
   compatible:
     const: brcm,bcm947xx-cfe-partitions
diff --git a/Bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt b/Bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt
deleted file mode 100644 (file)
index f8b7418..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Broadcom BCM963XX ImageTag Partition Container
-==============================================
-
-Some Broadcom BCM63XX SoC based devices contain additional, non discoverable
-partitions or non standard bootloader partition sizes. For these a mixed layout
-needs to be used with an explicit firmware partition.
-
-The BCM963XX ImageTag is a simple firmware header describing the offsets and
-sizes of the rootfs and kernel parts contained in the firmware.
-
-Required properties:
-- compatible : must be "brcm,bcm963xx-imagetag"
-
-Example:
-
-flash@1e000000 {
-       compatible = "cfi-flash";
-       reg = <0x1e000000 0x2000000>;
-       bank-width = <2>;
-
-       partitions {
-               compatible = "fixed-partitions";
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               cfe@0 {
-                       reg = <0x0 0x10000>;
-                       read-only;
-               };
-
-               firmware@10000 {
-                       reg = <0x10000 0x7d0000>;
-                       compatible = "brcm,bcm963xx-imagetag";
-               };
-
-               caldata@7e0000 {
-                       reg = <0x7e0000 0x10000>;
-                       read-only;
-               };
-
-               nvram@7f0000 {
-                       reg = <0x7f0000 0x10000>;
-               };
-       };
-};
diff --git a/Bindings/mtd/partitions/brcm,trx.txt b/Bindings/mtd/partitions/brcm,trx.txt
deleted file mode 100644 (file)
index c2175d3..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-Broadcom TRX Container Partition
-================================
-
-TRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
-most of the vendors building devices based on Broadcom's BCM47xx SoCs and is
-supported by the CFE bootloader.
-
-Design of the TRX format is very minimalistic. Its header contains
-identification fields, CRC32 checksum and the locations of embedded partitions.
-Its purpose is to store a few partitions in a format that can be distributed as
-a standalone file and written in a flash memory.
-
-Container can hold up to 4 partitions. The first partition has to contain a
-device executable binary (e.g. a kernel) as it's what the CFE bootloader starts
-executing. Other partitions can be used for operating system purposes. This is
-useful for systems that keep kernel and rootfs separated.
-
-TRX doesn't enforce any strict partition boundaries or size limits. All
-partitions have to be less than the 4GiB max size limit.
-
-There are two existing/known TRX variants:
-1) v1 which contains 3 partitions
-2) v2 which contains 4 partitions
-
-There aren't separated compatible bindings for them as version can be trivialy
-detected by a software parsing TRX header.
-
-Required properties:
-- compatible : (required) must be "brcm,trx"
-
-Optional properties:
-
-- brcm,trx-magic: TRX magic, if it is different from the default magic
-                 0x30524448 as a u32.
-
-Example:
-
-flash@0 {
-       partitions {
-               compatible = "brcm,trx";
-       };
-};
diff --git a/Bindings/mtd/partitions/brcm,trx.yaml b/Bindings/mtd/partitions/brcm,trx.yaml
new file mode 100644 (file)
index 0000000..71458b2
--- /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/mtd/partitions/brcm,trx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom TRX Container Partition
+
+maintainers:
+  - Hauke Mehrtens <hauke@hauke-m.de>
+  - Rafał Miłecki <rafal@milecki.pl>
+
+description: >
+  TRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
+  most of the vendors building devices based on Broadcom's BCM47xx SoCs and is
+  supported by the CFE bootloader.
+
+  Design of the TRX format is very minimalistic. Its header contains
+  identification fields, CRC32 checksum and the locations of embedded partitions.
+  Its purpose is to store a few partitions in a format that can be distributed as
+  a standalone file and written in a flash memory.
+
+  Container can hold up to 4 partitions. The first partition has to contain a
+  device executable binary (e.g. a kernel) as it's what the CFE bootloader starts
+  executing. Other partitions can be used for operating system purposes. This is
+  useful for systems that keep kernel and rootfs separated.
+
+  TRX doesn't enforce any strict partition boundaries or size limits. All
+  partitions have to be less than the 4GiB max size limit.
+
+  There are two existing/known TRX variants:
+    1) v1 which contains 3 partitions
+    2) v2 which contains 4 partitions
+
+  There aren't separated compatible bindings for them as version can be trivially
+  detected by a software parsing TRX header.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: linksys,ns-firmware
+          - const: brcm,trx
+      - const: brcm,trx
+
+  brcm,trx-magic:
+    description: TRX magic, if it is different from the default magic.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0x30524448
+
+required:
+  - compatible
+
+allOf:
+  - $ref: partition.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    flash {
+        partitions {
+            compatible = "brcm,trx";
+        };
+    };
index 62086366837cf5d6470bd721e4cfee1f615372d3..984823108f9c21cfeee27ce79d425a456613cc46 100644 (file)
@@ -25,47 +25,25 @@ properties:
           - const: sercomm,sc-partitions
           - const: fixed-partitions
 
-  "#address-cells": true
+  "#address-cells":
+    enum: [ 1, 2 ]
 
-  "#size-cells": true
-
-  compression:
-    $ref: /schemas/types.yaml#/definitions/string
-    description: |
-      Compression algorithm used to store the data in this partition, chosen
-      from a list of well-known algorithms.
-
-      The contents are compressed using this algorithm.
-
-    enum:
-      - none
-      - bzip2
-      - gzip
-      - lzop
-      - lz4
-      - lzma
-      - xz
-      - zstd
+  "#size-cells":
+    enum: [ 1, 2 ]
 
 patternProperties:
   "@[0-9a-f]+$":
-    $ref: partition.yaml#
-
-    properties:
-      sercomm,scpart-id:
-        description: Partition id in Sercomm partition map. Mtd parser
-          uses this id to find a record in the partition map containing
-          offset and size of the current partition. The values from
-          partition map overrides partition offset and size defined in
-          reg property of the dts. Frequently these values are the same,
-          but may differ if device has bad eraseblocks on a flash.
-        $ref: /schemas/types.yaml#/definitions/uint32
+    $ref: partition.yaml#/$defs/partition-node
 
 required:
   - "#address-cells"
   - "#size-cells"
 
-additionalProperties: true
+# fixed-partitions can be nested
+allOf:
+  - $ref: partition.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
@@ -141,7 +119,6 @@ examples:
             compatible = "fixed-partitions";
             label = "calibration";
             reg = <0xf00000 0x100000>;
-            ranges = <0 0xf00000 0x100000>;
             #address-cells = <1>;
             #size-cells = <1>;
 
index c5fa78ff712534db13936f04d0cba331dd43175c..61d7e701b1107ac4edab3a1481ee6f7ed74c1109 100644 (file)
@@ -18,8 +18,6 @@ description: |
 maintainers:
   - Rafał Miłecki <rafal@milecki.pl>
 
-select: false
-
 properties:
   compatible:
     const: linksys,ns-partitions
@@ -32,13 +30,7 @@ properties:
 
 patternProperties:
   "^partition@[0-9a-f]+$":
-    $ref: partition.yaml#
-    properties:
-      compatible:
-        items:
-          - const: linksys,ns-firmware
-          - const: brcm,trx
-    unevaluatedProperties: false
+    $ref: partition.yaml#/$defs/partition-node
 
 required:
   - "#address-cells"
index 80d0452a2a332fb098e6ef8a09590673d8954144..2397d97ecac5345d7fb57f43179aad2c17740553 100644 (file)
@@ -108,17 +108,59 @@ properties:
       with the padding bytes, so may grow. If ‘align-end’ is not provided,
       no alignment is performed.
 
+  compression:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: |
+      Compression algorithm used to store the data in this partition, chosen
+      from a list of well-known algorithms.
+
+      The contents are compressed using this algorithm.
+
+    enum:
+      - none
+      - bzip2
+      - gzip
+      - lzop
+      - lz4
+      - lzma
+      - xz
+      - zstd
+
+  sercomm,scpart-id:
+    description: Partition id in Sercomm partition map. Mtd parser
+      uses this id to find a record in the partition map containing
+      offset and size of the current partition. The values from
+      partition map overrides partition offset and size defined in
+      reg property of the dts. Frequently these values are the same,
+      but may differ if device has bad eraseblocks on a flash.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  nvmem-layout:
+    $ref: /schemas/nvmem/layouts/nvmem-layout.yaml
+
 if:
   not:
     required: [ reg ]
 then:
   properties:
     $nodename:
-      pattern: '^partition-.*$'
+      pattern: '^partitions?(-.+)?$'
 
 # This is a generic file other binding inherit from and extend
 additionalProperties: true
 
+$defs:
+  partition-node:
+    type: object
+    if:
+      not:
+        required: [ compatible ]
+    then:
+      $ref: '#'
+      unevaluatedProperties: false
+    else:
+      $ref: '#'
+
 examples:
   - |
     partitions {
diff --git a/Bindings/mtd/partitions/partitions.yaml b/Bindings/mtd/partitions/partitions.yaml
deleted file mode 100644 (file)
index 1dda2c8..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mtd/partitions/partitions.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Partitions
-
-description: |
-  This binding is generic and describes the content of the partitions container
-  node. All partition parsers must be referenced here.
-
-maintainers:
-  - Miquel Raynal <miquel.raynal@bootlin.com>
-
-oneOf:
-  - $ref: arm,arm-firmware-suite.yaml
-  - $ref: brcm,bcm4908-partitions.yaml
-  - $ref: brcm,bcm947xx-cfe-partitions.yaml
-  - $ref: fixed-partitions.yaml
-  - $ref: linksys,ns-partitions.yaml
-  - $ref: qcom,smem-part.yaml
-  - $ref: redboot-fis.yaml
-  - $ref: tplink,safeloader-partitions.yaml
-
-properties:
-  compatible: true
-
-  '#address-cells':
-    enum: [1, 2]
-
-  '#size-cells':
-    enum: [1, 2]
-
-patternProperties:
-  "^partition(-.+|@[0-9a-f]+)$":
-    $ref: partition.yaml
-
-required:
-  - compatible
-
-unevaluatedProperties: false
index e3978d2bc056f4aa3bd2496473161edef9efebed..dc6421150c8428494521f985de4673c875cc5225 100644 (file)
@@ -28,10 +28,6 @@ properties:
       device. On a flash memory with 32KB eraseblocks, 0 means the first
       eraseblock at 0x00000000, 1 means the second eraseblock at 0x00008000 and so on.
 
-  '#address-cells': false
-
-  '#size-cells': false
-
 required:
   - compatible
   - fis-index-block
diff --git a/Bindings/mtd/partitions/seama.yaml b/Bindings/mtd/partitions/seama.yaml
deleted file mode 100644 (file)
index 4af1852..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mtd/partitions/seama.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Seattle Image Partitions
-
-description: The SEAttle iMAge (SEAMA) partition is a type of partition
-  used for NAND flash devices. This type of flash image is found in some
-  D-Link routers such as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L,
-  DIR890L and DCH-M225, as well as in WD and NEC routers on the ath79
-  (MIPS), Broadcom BCM53xx, and RAMIPS platforms. This partition type
-  does not have children defined in the device tree, they need to be
-  detected by software.
-
-allOf:
-  - $ref: partition.yaml#
-
-maintainers:
-  - Linus Walleij <linusw@kernel.org>
-
-properties:
-  compatible:
-    const: seama
-
-required:
-  - compatible
-
-unevaluatedProperties: false
-
-examples:
-  - |
-    partitions {
-        compatible = "fixed-partitions";
-        #address-cells = <1>;
-        #size-cells = <1>;
-
-        partition@0 {
-            compatible = "seama";
-            reg = <0x0 0x800000>;
-            label = "firmware";
-        };
-    };
diff --git a/Bindings/mtd/partitions/simple-partition.yaml b/Bindings/mtd/partitions/simple-partition.yaml
new file mode 100644 (file)
index 0000000..14f5006
--- /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/mtd/partitions/simple-partition.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Simple partition types
+
+description:
+  Simple partition types which only define a "compatible" value and no custom
+  properties.
+
+maintainers:
+  - Rafał Miłecki <rafal@milecki.pl>
+  - Simon Glass <sjg@chromium.org>
+
+allOf:
+  - $ref: partition.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: brcm,bcm4908-firmware
+        description:
+          Broadcom BCM4908 CFE bootloader firmware partition
+
+      - const: brcm,bcm963xx-imagetag
+        description:
+          The BCM963XX ImageTag is a simple firmware header describing the
+          offsets and sizes of the rootfs and kernel parts contained in the
+          firmware.
+
+      - const: seama
+        description:
+          The SEAttle iMAge (SEAMA) partition is a type of partition used for
+          NAND flash devices. This type of flash image is found in some D-Link
+          routers such as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L, DIR890L
+          and DCH-M225, as well as in WD and NEC routers on the ath79 (MIPS),
+          Broadcom BCM53xx, and RAMIPS platforms. This partition type does not
+          have children defined in the device tree, they need to be detected by
+          software.
+
+      - const: u-boot
+        description: >
+          u-boot.bin from U-Boot project.
+
+          This corresponds to a binman 'entry'. It is a single partition which holds
+          data of a defined type.
+
+          Binman uses the type to indicate what data file / type to place in the
+          partition. There are quite a number of binman-specific entry types, such as
+          section, fill and files, to be added later.
+
+      - const: tfa-bl31
+        description: >
+          bl31.bin or bl31.elf from TF-A project
+
+          This corresponds to a binman 'entry'. It is a single partition which holds
+          data of a defined type.
+
+unevaluatedProperties: false
index a24bbaac3a9061c91de40ef2d27e4a6e1211ed47..40e6eaab03ce3b394bef1e608c4e94fb72f5f499 100644 (file)
@@ -38,7 +38,7 @@ properties:
 
 patternProperties:
   "^partition-.*$":
-    $ref: partition.yaml#
+    $ref: partition.yaml#/$defs/partition-node
 
 required:
   - partitions-table-offset
index 327fa872c0017850b32b1233d06e73f2b4699cd2..d51bdcb7e58568354478649d6711b1b2ed1c6cb8 100644 (file)
@@ -29,7 +29,7 @@ properties:
 
 patternProperties:
   "^partition-.*$":
-    $ref: partition.yaml#
+    $ref: partition.yaml#/$defs/partition-node
 
 unevaluatedProperties: false
 
diff --git a/Bindings/mtd/spear_smi.txt b/Bindings/mtd/spear_smi.txt
deleted file mode 100644 (file)
index c41873e..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-* SPEAr SMI
-
-Required properties:
-- compatible : "st,spear600-smi"
-- reg : Address range of the mtd chip
-- #address-cells, #size-cells : Must be present if the device has sub-nodes
-  representing partitions.
-- interrupts: Should contain the STMMAC interrupts
-- clock-rate : Functional clock rate of SMI in Hz
-
-Optional properties:
-- st,smi-fast-mode : Flash supports read in fast mode
-
-Example:
-
-       smi: flash@fc000000 {
-               compatible = "st,spear600-smi";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               reg = <0xfc000000 0x1000>;
-               interrupt-parent = <&vic1>;
-               interrupts = <12>;
-               clock-rate = <50000000>;        /* 50MHz */
-
-               flash@f8000000 {
-                       st,smi-fast-mode;
-                       ...
-               };
-       };
diff --git a/Bindings/mtd/st,spear600-smi.yaml b/Bindings/mtd/st,spear600-smi.yaml
new file mode 100644 (file)
index 0000000..e7385d9
--- /dev/null
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/st,spear600-smi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics SPEAr600 Serial Memory Interface (SMI) Controller
+
+maintainers:
+  - Richard Weinberger <richard@nod.at>
+
+description:
+  The SPEAr600 Serial Memory Interface (SMI) is a dedicated serial flash
+  controller supporting up to four chip selects for serial NOR flashes
+  connected in parallel. The controller is memory-mapped and the attached
+  flash devices appear in the CPU address space.The driver
+  (drivers/mtd/devices/spear_smi.c) probes the attached flashes
+  dynamically by sending commands (e.g., RDID) to each bank.
+  Flash sub nodes describe the memory range and optional per-flash
+  properties.
+
+properties:
+  compatible:
+    const: st,spear600-smi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  clock-rate:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Functional clock rate of the SMI controller in Hz.
+
+patternProperties:
+  "^flash@.*$":
+    $ref: /schemas/mtd/mtd.yaml#
+
+    properties:
+      reg:
+        maxItems: 1
+
+      st,smi-fast-mode:
+        type: boolean
+        description: Indicates that the attached flash supports fast read mode.
+
+    unevaluatedProperties: false
+
+    required:
+      - reg
+
+required:
+  - compatible
+  - reg
+  - clock-rate
+  - "#address-cells"
+  - "#size-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    flash@fc000000 {
+        compatible = "st,spear600-smi";
+        #address-cells = <1>;
+        #size-cells = <1>;
+        reg = <0xfc000000 0x1000>;
+        interrupt-parent = <&vic1>;
+        interrupts = <12>;
+        clock-rate = <50000000>;  /* 50 MHz */
+
+        flash@fc000000 {
+            reg = <0xfc000000 0x1000>;
+            st,smi-fast-mode;
+        };
+    };
+...
diff --git a/Bindings/mtd/st,spi-fsm.yaml b/Bindings/mtd/st,spi-fsm.yaml
new file mode 100644 (file)
index 0000000..77099dc
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/st,spi-fsm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics SPI FSM Serial NOR Flash Controller
+
+maintainers:
+  - Angus Clark <angus.clark@st.com>
+
+description:
+  The STMicroelectronics Fast Sequence Mode (FSM) controller is a dedicated
+  hardware accelerator integrated in older STiH4xx/STiDxxx set-top box SoCs
+  (such as STiH407, STiH416, STiD127). It connects directly to a single
+  external serial flash device used as the primary boot device. The FSM
+  executes hard-coded or configurable instruction sequences in hardware,
+  providing low-latency reads suitable for execute-in-place (XIP) boot
+  and high read bandwidth.
+
+properties:
+  compatible:
+    const: st,spi-fsm
+
+  reg:
+    maxItems: 1
+
+  reg-names:
+    const: spi-fsm
+
+  interrupts:
+    maxItems: 1
+
+  st,syscfg:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: Phandle to the system configuration registers used for boot-device selection.
+
+  st,boot-device-reg:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Offset of the boot-device register within the st,syscfg node.
+
+  st,boot-device-spi:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Expected boot-device value when booting from this SPI controller.
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - pinctrl-0
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    spifsm@fe902000 {
+        compatible = "st,spi-fsm";
+        reg = <0xfe902000 0x1000>;
+        reg-names = "spi-fsm";
+        interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+        pinctrl-0 = <&pinctrl_fsm>;
+        st,syscfg = <&syscfg_rear>;
+        st,boot-device-reg = <0x958>;
+        st,boot-device-spi = <0x1a>;
+    };
+...
diff --git a/Bindings/mtd/st-fsm.txt b/Bindings/mtd/st-fsm.txt
deleted file mode 100644 (file)
index 54cef9e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-* ST-Microelectronics SPI FSM Serial (NOR) Flash Controller
-
-Required properties:
-  - compatible : Should be "st,spi-fsm"
-  - reg        : Contains register's location and length.
-  - reg-names  : Should contain the reg names "spi-fsm"
-  - interrupts : The interrupt number
-  - pinctrl-0  : Standard Pinctrl phandle (see: pinctrl/pinctrl-bindings.txt)
-
-Optional properties:
-  - st,syscfg          : Phandle to boot-device system configuration registers
-  - st,boot-device-reg : Address of the aforementioned boot-device register(s)
-  - st,boot-device-spi : Expected boot-device value if booted via this device
-
-Example:
-       spifsm: spifsm@fe902000{
-               compatible         = "st,spi-fsm";
-               reg                =  <0xfe902000 0x1000>;
-               reg-names          = "spi-fsm";
-               pinctrl-0          = <&pinctrl_fsm>;
-               st,syscfg          = <&syscfg_rear>;
-               st,boot-device-reg = <0x958>;
-               st,boot-device-spi = <0x1a>;
-       };
-
index ed24b0ea86e5ccc795882ae52275c39a25fabad3..7619b19e7a045ba6cde51cd4039b6133eb72ca40 100644 (file)
@@ -24,7 +24,9 @@ properties:
       - description: AEMIF control registers.
 
   partitions:
-    $ref: /schemas/mtd/partitions/partitions.yaml
+    type: object
+    required:
+      - compatible
 
   ti,davinci-chipselect:
     description:
index 7d3ace4f55058a2659c4c2ba4417c8d4a462771f..8db991dee7ebdd61877b6ff0053eb4637d3b8aa1 100644 (file)
@@ -36,7 +36,7 @@ properties:
 
 patternProperties:
   "@[0-9a-f]+$":
-    $ref: /schemas/mtd/partitions/partition.yaml
+    $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
 
 allOf:
   - $ref: /schemas/memory-controllers/ti,gpmc-child.yaml
index c425a9f1886ddf59e11870bac755cf31d30f5e65..f594055c2b15e5ea4541cab204c8bd1194828f5f 100644 (file)
@@ -52,6 +52,20 @@ properties:
     description: Enable 25MHz reference clock output on CLK25_REF pin.
     type: boolean
 
+  adi,low-cmode-impedance:
+    description: |
+      Configure PHY for the lowest common-mode impedance on the receive pair
+      for 100BASE-TX. This is suited for capacitive coupled applications and
+      other applications where there may be a path for high common-mode noise
+      to reach the PHY.
+      If not present, by default the PHY is configured for normal termination
+      (zero-power termination) mode.
+
+      Note: There is a trade-off of 12 mW increased power consumption with
+        the lowest common-mode impedance setting, but in all cases the
+        differential impedance is 100 ohms.
+    type: boolean
+
 unevaluatedProperties: false
 
 examples:
index 59c57f58116b568092446e6cfb7b6bd3f4f47b82..aefa19c5b42468dad841892fa5b75a47552762a0 100644 (file)
@@ -42,14 +42,13 @@ properties:
       - description: wlan irq line5
 
   memory-region:
-    oneOf:
-      - items:
-          - description: NPU firmware binary region
-      - items:
-          - description: NPU firmware binary region
-          - description: NPU wlan offload RX buffers region
-          - description: NPU wlan offload TX buffers region
-          - description: NPU wlan offload TX packet identifiers region
+    items:
+      - description: NPU firmware binary region
+      - description: NPU wlan offload RX buffers region
+      - description: NPU wlan offload TX buffers region
+      - description: NPU wlan offload TX packet identifiers region
+      - description: NPU wlan Block Ack buffers region
+    minItems: 1
 
   memory-region-names:
     items:
@@ -57,6 +56,13 @@ properties:
       - const: pkt
       - const: tx-pkt
       - const: tx-bufid
+      - const: ba
+    minItems: 1
+
+  firmware-name:
+    items:
+      - description: Firmware name of RiscV core
+      - description: Firmware name of Data section
 
 required:
   - compatible
@@ -93,7 +99,9 @@ examples:
                      <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
                      <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
         memory-region = <&npu_firmware>, <&npu_pkt>, <&npu_txpkt>,
-                        <&npu_txbufid>;
-        memory-region-names = "firmware", "pkt", "tx-pkt", "tx-bufid";
+                        <&npu_txbufid>, <&npu_ba>;
+        memory-region-names = "firmware", "pkt", "tx-pkt", "tx-bufid", "ba";
+        firmware-name = "airoha/en7581_npu_rv32.bin",
+                        "airoha/en7581_npu_data.bin";
       };
     };
index ecb5149ec6b0d3d00a9b030716d7218f5d3fa8a9..0de6e9284fbc4454aa96f7f325f7b4455b5ad2e9 100644 (file)
@@ -16,6 +16,7 @@ description:
 
 allOf:
   - $ref: ethernet-phy.yaml#
+  - $ref: /schemas/phy/phy-common-props.yaml#
 
 properties:
   compatible:
@@ -30,12 +31,18 @@ properties:
     description:
       Reverse rx polarity of the SERDES. This is the receiving
       side of the lines from the MAC towards the EN881H.
+      This property is deprecated, for details please refer to
+      Documentation/devicetree/bindings/phy/phy-common-props.yaml
+    deprecated: true
 
   airoha,pnswap-tx:
     type: boolean
     description:
       Reverse tx polarity of SERDES. This is the transmitting
       side of the lines from EN8811H towards the MAC.
+      This property is deprecated, for details please refer to
+      Documentation/devicetree/bindings/phy/phy-common-props.yaml
+    deprecated: true
 
 required:
   - reg
@@ -44,6 +51,8 @@ unevaluatedProperties: false
 
 examples:
   - |
+    #include <dt-bindings/phy/phy.h>
+
     mdio {
         #address-cells = <1>;
         #size-cells = <0>;
@@ -51,6 +60,6 @@ examples:
         ethernet-phy@1 {
             compatible = "ethernet-phy-id03a2.a411";
             reg = <1>;
-            airoha,pnswap-rx;
+            rx-polarity = <PHY_POL_INVERT>;
         };
     };
diff --git a/Bindings/net/bluetooth/qcom,bluetooth-common.yaml b/Bindings/net/bluetooth/qcom,bluetooth-common.yaml
new file mode 100644 (file)
index 0000000..c8e9c55
--- /dev/null
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,bluetooth-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Bluetooth Common Properties
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  firmware-name:
+    minItems: 1
+    items:
+      - description: specify the name of nvm firmware to load
+      - description: specify the name of rampatch firmware to load
+
+  qcom,local-bd-address-broken:
+    type: boolean
+    description:
+      boot firmware is incorrectly passing the address in big-endian order
+
+additionalProperties: true
diff --git a/Bindings/net/bluetooth/qcom,qca2066-bt.yaml b/Bindings/net/bluetooth/qcom,qca2066-bt.yaml
new file mode 100644 (file)
index 0000000..d4f167c
--- /dev/null
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,qca2066-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QCA2006 Bluetooth
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,qca2066-bt
+      - qcom,qca6174-bt
+
+  clocks:
+    items:
+      - description: External low-power 32.768 kHz clock input
+
+  enable-gpios:
+    maxItems: 1
+
+required:
+  - compatible
+  - clocks
+  - enable-gpios
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    serial {
+        bluetooth {
+            compatible = "qcom,qca6174-bt";
+            clocks = <&divclk4>;
+            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
+            firmware-name = "nvm_00440302.bin";
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,qca6390-bt.yaml b/Bindings/net/bluetooth/qcom,qca6390-bt.yaml
new file mode 100644 (file)
index 0000000..cffbc9e
--- /dev/null
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,qca6390-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QCA6390 Bluetooth
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,qca6390-bt
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vddbtcmx-supply:
+    description: VDD_BT_CMX supply regulator handle
+
+  vddrfa0p8-supply:
+    description: VDD_RFA_0P8 supply regulator handle
+
+  vddrfa1p2-supply:
+    description: VDD_RFA_1P2 supply regulator handle
+
+  vddrfa1p7-supply:
+    description: VDD_RFA_1P7 supply regulator handle
+
+  vddrfacmn-supply:
+    description: VDD_RFA_CMN supply regulator handle
+
+required:
+  - compatible
+  - vddaon-supply
+  - vddbtcmx-supply
+  - vddrfa0p8-supply
+  - vddrfa1p2-supply
+  - vddrfa1p7-supply
+  - vddrfacmn-supply
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial {
+        bluetooth {
+            compatible = "qcom,qca6390-bt";
+            vddaon-supply = <&vreg_pmu_aon_0p59>;
+            vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
+            vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+            vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+            vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+            vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,qca9377-bt.yaml b/Bindings/net/bluetooth/qcom,qca9377-bt.yaml
new file mode 100644 (file)
index 0000000..3fe9476
--- /dev/null
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,qca9377-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QCA9377 Bluetooth
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,qca9377-bt
+
+  clocks:
+    items:
+      - description: External low-power 32.768 kHz clock input
+
+  enable-gpios:
+    maxItems: 1
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  vddxo-supply:
+    description: VDD_XO supply regulator handle
+
+required:
+  - compatible
+  - clocks
+  - enable-gpios
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    serial {
+        bluetooth {
+            compatible = "qcom,qca9377-bt";
+            clocks = <&rk809 1>;
+            enable-gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
+            max-speed = <2000000>;
+            pinctrl-names = "default";
+            pinctrl-0 = <&bt_enable>;
+            vddio-supply = <&vcc_1v8>;
+            vddxo-supply = <&vcc3v3_sys>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,wcn3950-bt.yaml b/Bindings/net/bluetooth/qcom,wcn3950-bt.yaml
new file mode 100644 (file)
index 0000000..83382f3
--- /dev/null
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,wcn3950-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCN3950/WCN3988 Bluetooth
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn3950-bt
+      - qcom,wcn3988-bt
+
+  enable-gpios:
+    maxItems: 1
+
+  swctrl-gpios:
+    maxItems: 1
+    description: gpio specifier is used to find status
+                 of clock supply to SoC
+
+  vddch0-supply:
+    description: VDD_CH0 supply regulator handle
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  vddrf-supply:
+    description: VDD_RF supply regulator handle
+
+  vddxo-supply:
+    description: VDD_XO supply regulator handle
+
+required:
+  - compatible
+  - vddch0-supply
+  - vddio-supply
+  - vddrf-supply
+  - vddxo-supply
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    serial {
+        bluetooth {
+            compatible = "qcom,wcn3950-bt";
+            enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
+            max-speed = <3200000>;
+            vddch0-supply = <&pm4125_l22>;
+            vddio-supply = <&pm4125_l15>;
+            vddrf-supply = <&pm4125_l10>;
+            vddxo-supply = <&pm4125_l13>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,wcn3990-bt.yaml b/Bindings/net/bluetooth/qcom,wcn3990-bt.yaml
new file mode 100644 (file)
index 0000000..89ceb1f
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,wcn3990-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCN3990/WCN3991/WCN3998 Bluetooth
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn3990-bt
+      - qcom,wcn3991-bt
+      - qcom,wcn3998-bt
+
+  clocks:
+    items:
+      - description: External low-power 32.768 kHz clock input
+
+  vddch0-supply:
+    description: VDD_CH0 supply regulator handle
+
+  vddch1-supply:
+    description: VDD_CH1 supply regulator handle
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  vddrf-supply:
+    description: VDD_RF supply regulator handle
+
+  vddxo-supply:
+    description: VDD_XO supply regulator handle
+
+required:
+  - compatible
+  - vddch0-supply
+  - vddio-supply
+  - vddrf-supply
+  - vddxo-supply
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial {
+        bluetooth {
+            compatible = "qcom,wcn3990-bt";
+            firmware-name = "crnv21.bin";
+            max-speed = <3200000>;
+            vddio-supply = <&vreg_s4a_1p8>;
+            vddch0-supply = <&vreg_l25a_3p3>;
+            vddch1-supply = <&vreg_l23a_3p3>;
+            vddrf-supply = <&vreg_l17a_1p3>;
+            vddxo-supply = <&vreg_l7a_1p8>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,wcn6750-bt.yaml b/Bindings/net/bluetooth/qcom,wcn6750-bt.yaml
new file mode 100644 (file)
index 0000000..8606a45
--- /dev/null
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,wcn6750-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCN6750 Bluetooth
+
+maintainers:
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn6750-bt
+
+  enable-gpios:
+    maxItems: 1
+    deprecated: true
+
+  swctrl-gpios:
+    maxItems: 1
+    description: gpio specifier is used to find status
+                 of clock supply to SoC
+    deprecated: true
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vddasd-supply:
+    description: VDD_ASD supply regulator handle
+    deprecated: true
+
+  vddbtcmx-supply:
+    description: VDD_BT_CMX supply regulator handle
+
+  vddbtcxmx-supply:
+    description: VDD_BT_CXMX supply regulator handle
+    deprecated: true
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+    deprecated: true
+
+  vddrfa0p8-supply:
+    description: VDD_RFA_0P8 supply regulator handle
+
+  vddrfa1p2-supply:
+    description: VDD_RFA_1P2 supply regulator handle
+
+  vddrfa1p7-supply:
+    description: VDD_RFA_1P7 supply regulator handle
+
+  vddrfa2p2-supply:
+    description: VDD_RFA_2P2 supply regulator handle
+
+  vddrfacmn-supply:
+    description: VDD_RFA_CMN supply regulator handle
+
+required:
+  - compatible
+  - vddaon-supply
+  - vddrfa0p8-supply
+  - vddrfa1p2-supply
+  - vddrfa1p7-supply
+  - vddrfacmn-supply
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial {
+        bluetooth {
+            compatible = "qcom,wcn6750-bt";
+
+            firmware-name = "msnv11.bin";
+            max-speed = <3200000>;
+            vddaon-supply = <&vreg_pmu_aon_0p59>;
+            vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
+            vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+            vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+            vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+            vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,wcn6855-bt.yaml b/Bindings/net/bluetooth/qcom,wcn6855-bt.yaml
new file mode 100644 (file)
index 0000000..4563006
--- /dev/null
@@ -0,0 +1,99 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,wcn6855-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCN6855 Bluetooth
+
+maintainers:
+  - Bartosz Golaszewski <brgl@bgdev.pl>
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn6855-bt
+
+  enable-gpios:
+    maxItems: 1
+    deprecated: true
+
+  swctrl-gpios:
+    maxItems: 1
+    description: gpio specifier is used to find status
+                 of clock supply to SoC
+    deprecated: true
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vddbtcmx-supply:
+    description: VDD_BT_CMX supply regulator handle
+
+  vddbtcxmx-supply:
+    description: VDD_BT_CXMX supply regulator handle
+    deprecated: true
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+    deprecated: true
+
+  vddrfa0p8-supply:
+    description: VDD_RFA_0P8 supply regulator handle
+
+  vddrfa1p2-supply:
+    description: VDD_RFA_1P2 supply regulator handle
+
+  vddrfa1p7-supply:
+    description: VDD_RFA_1P7 supply regulator handle
+    deprecated: true
+
+  vddrfa1p8-supply:
+    description: VDD_RFA_1P8 supply regulator handle
+
+  vddrfacmn-supply:
+    description: VDD_RFA_CMN supply regulator handle
+
+  vddwlcx-supply:
+    description: VDD_WLCX supply regulator handle
+
+  vddwlmx-supply:
+    description: VDD_WLMX supply regulator handle
+
+required:
+  - compatible
+  - vddaon-supply
+  - vddbtcmx-supply
+  - vddrfa0p8-supply
+  - vddrfa1p2-supply
+  - vddrfa1p8-supply
+  - vddrfacmn-supply
+  - vddwlcx-supply
+  - vddwlmx-supply
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial {
+        bluetooth {
+            compatible = "qcom,wcn6855-bt";
+
+            max-speed = <3000000>;
+            vddaon-supply = <&vreg_pmu_aon_0p8>;
+            vddbtcmx-supply = <&vreg_pmu_btcmx_0p8>;
+            vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+            vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+            vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
+            vddrfacmn-supply = <&vreg_pmu_rfa_cmn_0p8>;
+            vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+            vddwlmx-supply = <&vreg_pmu_wlmx_0p8>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qcom,wcn7850-bt.yaml b/Bindings/net/bluetooth/qcom,wcn7850-bt.yaml
new file mode 100644 (file)
index 0000000..8108ef8
--- /dev/null
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/bluetooth/qcom,wcn7850-bt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCN7850 Bluetooth
+
+maintainers:
+  - Bartosz Golaszewski <brgl@bgdev.pl>
+  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
+  - Rocky Liao <quic_rjliao@quicinc.com>
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn7850-bt
+
+  enable-gpios:
+    maxItems: 1
+    deprecated: true
+
+  swctrl-gpios:
+    maxItems: 1
+    description: gpio specifier is used to find status
+                 of clock supply to SoC
+    deprecated: true
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vdddig-supply:
+    description: VDD_DIG supply regulator handle
+    deprecated: true
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+    deprecated: true
+
+  vddrfa0p8-supply:
+    description: VDD_RFA_0P8 supply regulator handle
+
+  vddrfa1p2-supply:
+    description: VDD_RFA_1P2 supply regulator handle
+
+  vddrfa1p8-supply:
+    description: VDD_RFA_1P8 supply regulator handle
+
+  vddrfa1p9-supply:
+    description: VDD_RFA_1P9 supply regulator handle
+    deprecated: true
+
+  vddrfacmn-supply:
+    description: VDD_RFA_CMN supply regulator handle
+
+  vddwlcx-supply:
+    description: VDD_WLCX supply regulator handle
+
+  vddwlmx-supply:
+    description: VDD_WLMX supply regulator handle
+
+required:
+  - compatible
+  - vddrfacmn-supply
+  - vddaon-supply
+  - vddwlcx-supply
+  - vddwlmx-supply
+  - vddrfa0p8-supply
+  - vddrfa1p2-supply
+  - vddrfa1p8-supply
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+  - $ref: qcom,bluetooth-common.yaml
+  - $ref: /schemas/serial/serial-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial {
+        bluetooth {
+            compatible = "qcom,wcn7850-bt";
+
+            max-speed = <3200000>;
+            vddaon-supply = <&vreg_pmu_aon_0p59>;
+            vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+            vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+            vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+            vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+            vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+            vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+        };
+    };
diff --git a/Bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Bindings/net/bluetooth/qualcomm-bluetooth.yaml
deleted file mode 100644 (file)
index 6353a33..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/net/bluetooth/qualcomm-bluetooth.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Qualcomm Bluetooth Chips
-
-maintainers:
-  - Balakrishna Godavarthi <quic_bgodavar@quicinc.com>
-  - Rocky Liao <quic_rjliao@quicinc.com>
-
-description:
-  This binding describes Qualcomm UART-attached bluetooth chips.
-
-properties:
-  compatible:
-    enum:
-      - qcom,qca2066-bt
-      - qcom,qca6174-bt
-      - qcom,qca9377-bt
-      - qcom,wcn3950-bt
-      - qcom,wcn3988-bt
-      - qcom,wcn3990-bt
-      - qcom,wcn3991-bt
-      - qcom,wcn3998-bt
-      - qcom,qca6390-bt
-      - qcom,wcn6750-bt
-      - qcom,wcn6855-bt
-      - qcom,wcn7850-bt
-
-  enable-gpios:
-    maxItems: 1
-    description: gpio specifier used to enable chip
-
-  swctrl-gpios:
-    maxItems: 1
-    description: gpio specifier is used to find status
-                 of clock supply to SoC
-
-  clocks:
-    maxItems: 1
-    description: clock provided to the controller (SUSCLK_32KHZ)
-
-  vddio-supply:
-    description: VDD_IO supply regulator handle
-
-  vddxo-supply:
-    description: VDD_XO supply regulator handle
-
-  vddrf-supply:
-    description: VDD_RF supply regulator handle
-
-  vddch0-supply:
-    description: VDD_CH0 supply regulator handle
-
-  vddch1-supply:
-    description: VDD_CH1 supply regulator handle
-
-  vddaon-supply:
-    description: VDD_AON supply regulator handle
-
-  vdddig-supply:
-    description: VDD_DIG supply regulator handle
-
-  vddbtcmx-supply:
-    description: VDD_BT_CMX supply regulator handle
-
-  vddbtcxmx-supply:
-    description: VDD_BT_CXMX supply regulator handle
-
-  vddrfacmn-supply:
-    description: VDD_RFA_CMN supply regulator handle
-
-  vddrfa0p8-supply:
-    description: VDD_RFA_0P8 supply regulator handle
-
-  vddrfa1p7-supply:
-    description: VDD_RFA_1P7 supply regulator handle
-
-  vddrfa1p8-supply:
-    description: VDD_RFA_1P8 supply regulator handle
-
-  vddrfa1p2-supply:
-    description: VDD_RFA_1P2 supply regulator handle
-
-  vddrfa1p9-supply:
-    description: VDD_RFA_1P9 supply regulator handle
-
-  vddrfa2p2-supply:
-    description: VDD_RFA_2P2 supply regulator handle
-
-  vddasd-supply:
-    description: VDD_ASD supply regulator handle
-
-  vddwlcx-supply:
-    description: VDD_WLCX supply regulator handle
-
-  vddwlmx-supply:
-    description: VDD_WLMX supply regulator handle
-
-  max-speed: true
-
-  firmware-name:
-    minItems: 1
-    items:
-      - description: specify the name of nvm firmware to load
-      - description: specify the name of rampatch firmware to load
-
-  local-bd-address: true
-
-  qcom,local-bd-address-broken:
-    type: boolean
-    description:
-      boot firmware is incorrectly passing the address in big-endian order
-
-required:
-  - compatible
-
-additionalProperties: false
-
-allOf:
-  - $ref: bluetooth-controller.yaml#
-  - $ref: /schemas/serial/serial-peripheral-props.yaml#
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,qca2066-bt
-              - qcom,qca6174-bt
-    then:
-      required:
-        - enable-gpios
-        - clocks
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,wcn3950-bt
-              - qcom,wcn3988-bt
-              - qcom,wcn3990-bt
-              - qcom,wcn3991-bt
-              - qcom,wcn3998-bt
-    then:
-      required:
-        - vddio-supply
-        - vddxo-supply
-        - vddrf-supply
-        - vddch0-supply
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,wcn6750-bt
-    then:
-      required:
-        - vddaon-supply
-        - vddrfacmn-supply
-        - vddrfa0p8-supply
-        - vddrfa1p7-supply
-        - vddrfa1p2-supply
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,wcn6855-bt
-    then:
-      required:
-        - vddrfacmn-supply
-        - vddaon-supply
-        - vddwlcx-supply
-        - vddwlmx-supply
-        - vddbtcmx-supply
-        - vddrfa0p8-supply
-        - vddrfa1p2-supply
-        - vddrfa1p8-supply
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,wcn7850-bt
-    then:
-      required:
-        - vddrfacmn-supply
-        - vddaon-supply
-        - vddwlcx-supply
-        - vddwlmx-supply
-        - vddrfa0p8-supply
-        - vddrfa1p2-supply
-        - vddrfa1p8-supply
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,qca6390-bt
-    then:
-      required:
-        - vddrfacmn-supply
-        - vddaon-supply
-        - vddbtcmx-supply
-        - vddrfa0p8-supply
-        - vddrfa1p2-supply
-        - vddrfa1p7-supply
-
-examples:
-  - |
-    #include <dt-bindings/gpio/gpio.h>
-    serial {
-
-        bluetooth {
-            compatible = "qcom,qca6174-bt";
-            enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
-            clocks = <&divclk4>;
-            firmware-name = "nvm_00440302.bin";
-        };
-    };
-  - |
-    serial {
-
-        bluetooth {
-            compatible = "qcom,wcn3990-bt";
-            vddio-supply = <&vreg_s4a_1p8>;
-            vddxo-supply = <&vreg_l7a_1p8>;
-            vddrf-supply = <&vreg_l17a_1p3>;
-            vddch0-supply = <&vreg_l25a_3p3>;
-            max-speed = <3200000>;
-            firmware-name = "crnv21.bin";
-        };
-    };
-  - |
-    serial {
-
-        bluetooth {
-            compatible = "qcom,wcn6750-bt";
-            pinctrl-names = "default";
-            pinctrl-0 = <&bt_en_default>;
-            enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
-            swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
-            vddio-supply = <&vreg_l19b_1p8>;
-            vddaon-supply = <&vreg_s7b_0p9>;
-            vddbtcxmx-supply = <&vreg_s7b_0p9>;
-            vddrfacmn-supply = <&vreg_s7b_0p9>;
-            vddrfa0p8-supply = <&vreg_s7b_0p9>;
-            vddrfa1p7-supply = <&vreg_s1b_1p8>;
-            vddrfa1p2-supply = <&vreg_s8b_1p2>;
-            vddrfa2p2-supply = <&vreg_s1c_2p2>;
-            vddasd-supply = <&vreg_l11c_2p8>;
-            max-speed = <3200000>;
-            firmware-name = "msnv11.bin";
-        };
-    };
index 210fb29c4e7b1fef1754c5e90d935dfd95d400de..be1bf07985e4a1cc3e440aeaa09799b3e8bb9e77 100644 (file)
@@ -73,6 +73,8 @@ properties:
       - const: idm_base
       - const: nicpm_base
 
+  dma-coherent: true
+
 unevaluatedProperties: false
 
 examples:
index ec0c2168e4b9e8730cc4180160c8a51f811bdd27..6bcfff9701173b593dd7b3b3f21fdd52a7bf903a 100644 (file)
@@ -87,6 +87,7 @@ required:
 
 allOf:
   - $ref: can-controller.yaml#
+  - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml
   - if:
       properties:
         compatible:
index f4ac21c684278b961d7b8d8db67ee8c79bb0b483..b9d9dd7a79676313f89602a7647ef4501fe9fe6b 100644 (file)
@@ -12,6 +12,10 @@ maintainers:
 properties:
   compatible:
     oneOf:
+      - enum:
+          - renesas,r9a09g047-canfd        # RZ/G3E
+          - renesas,r9a09g077-canfd        # RZ/T2H
+
       - items:
           - enum:
               - renesas,r8a774a1-canfd     # RZ/G2M
@@ -42,7 +46,15 @@ properties:
               - renesas,r9a07g054-canfd    # RZ/V2L
           - const: renesas,rzg2l-canfd     # RZ/G2L family
 
-      - const: renesas,r9a09g047-canfd     # RZ/G3E
+      - items:
+          - enum:
+              - renesas,r9a09g056-canfd     # RZ/V2N
+              - renesas,r9a09g057-canfd     # RZ/V2H(P)
+          - const: renesas,r9a09g047-canfd
+
+      - items:
+          - const: renesas,r9a09g087-canfd  # RZ/N2H
+          - const: renesas,r9a09g077-canfd
 
   reg:
     maxItems: 1
@@ -122,12 +134,25 @@ properties:
 
   resets: true
 
+  reset-names:
+    items:
+      - const: rstp_n
+      - const: rstc_n
+
   renesas,no-can-fd:
     $ref: /schemas/types.yaml#/definitions/flag
     description:
-      The controller can operate in either CAN FD only mode (default) or
-      Classical CAN only mode.  The mode is global to all channels.
-      Specify this property to put the controller in Classical CAN only mode.
+      The controller can operate in either CAN-FD mode (default) or FD-Only
+      mode (RZ/{G2L,G3E} and R-Car Gen4) or Classical CAN mode. Specify this
+      property to put the controller in Classical CAN mode.
+
+  renesas,fd-only:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      The CANFD on RZ/{G2L,G3E} and R-Car Gen4 SoCs support 3 modes FD-Only
+      mode, Classical CAN mode and CAN-FD mode (default). In FD-Only mode,
+      communication in Classical CAN frame format is disabled. Specify this
+      property to put the controller in FD-Only mode.
 
   assigned-clocks:
     description:
@@ -160,7 +185,6 @@ required:
   - clocks
   - clock-names
   - power-domains
-  - resets
   - assigned-clocks
   - assigned-clock-rates
   - channel0
@@ -187,13 +211,6 @@ allOf:
           minItems: 2
           maxItems: 2
 
-        reset-names:
-          minItems: 2
-          maxItems: 2
-
-      required:
-        - reset-names
-
   - if:
       properties:
         compatible:
@@ -231,18 +248,25 @@ allOf:
           minItems: 2
           maxItems: 2
 
-        reset-names:
-          minItems: 2
-          maxItems: 2
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g077-canfd
+    then:
+      properties:
+        interrupts:
+          maxItems: 8
 
-      required:
-        - reset-names
+        interrupt-names:
+          maxItems: 8
 
   - if:
       properties:
         compatible:
           contains:
             enum:
+              - renesas,r9a09g077-canfd
               - renesas,rcar-gen3-canfd
               - renesas,rzg2l-canfd
     then:
@@ -267,6 +291,65 @@ allOf:
       patternProperties:
         "^channel[6-7]$": false
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen3-canfd
+    then:
+      properties:
+        renesas,fd-only: false
+
+  - if:
+      required:
+        - renesas,no-can-fd
+    then:
+      properties:
+        renesas,fd-only: false
+
+  - if:
+      required:
+        - renesas,fd-only
+    then:
+      properties:
+        renesas,no-can-fd: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g077-canfd
+    then:
+      properties:
+        resets: false
+        reset-names: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,r9a09g047-canfd
+              - renesas,rzg2l-canfd
+    then:
+      required:
+        - resets
+        - reset-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen3-canfd
+              - renesas,rcar-gen4-canfd
+    then:
+      required:
+        - resets
+      properties:
+        reset-names: false
+
 unevaluatedProperties: false
 
 examples:
index 205b683849a53b24fb98b81f35af091f7807ad19..49af5573e452d4d70baa36162fa90b5fc0dbd003 100644 (file)
@@ -19,6 +19,8 @@ maintainers:
 properties:
   compatible:
     enum:
+      - intel,gsw150
+      - lantiq,peb7084
       - lantiq,xrx200-gswip
       - lantiq,xrx300-gswip
       - lantiq,xrx330-gswip
@@ -103,9 +105,33 @@ patternProperties:
     patternProperties:
       "^(ethernet-)?port@[0-6]$":
         $ref: dsa-port.yaml#
+        allOf:
+          - $ref: /schemas/phy/phy-common-props.yaml#
         unevaluatedProperties: false
 
         properties:
+          maxlinear,slew-rate-txc:
+            $ref: /schemas/types.yaml#/definitions/uint32
+            enum: [0, 1]
+            description: |
+              RMII/RGMII TX Clock Slew Rate:
+
+                0: Normal
+                1: Slow
+
+              If not present, the configuration made by the switch bootloader is
+              preserved.
+          maxlinear,slew-rate-txd:
+            $ref: /schemas/types.yaml#/definitions/uint32
+            enum: [0, 1]
+            description: |
+              RMII/RGMII TX Non-Clock PAD Slew Rate:
+
+                0: Normal
+                1: Slow
+
+              If not present, the configuration made by the switch bootloader is
+              preserved.
           maxlinear,rmii-refclk-out:
             type: boolean
             description:
@@ -264,6 +290,7 @@ examples:
 
   - |
     #include <dt-bindings/leds/common.h>
+    #include <dt-bindings/phy/phy.h>
 
     mdio {
         #address-cells = <1>;
@@ -296,6 +323,7 @@ examples:
                     label = "wan";
                     phy-mode = "1000base-x";
                     managed = "in-band-status";
+                    tx-polarity = <PHY_POL_INVERT>;
                 };
 
                 port@5 {
@@ -316,7 +344,7 @@ examples:
                 #address-cells = <1>;
                 #size-cells = <0>;
 
-                switchphy0: switchphy@0 {
+                switchphy0: ethernet-phy@0 {
                     reg = <0>;
 
                     leds {
@@ -331,7 +359,7 @@ examples:
                     };
                 };
 
-                switchphy1: switchphy@1 {
+                switchphy1: ethernet-phy@1 {
                     reg = <1>;
 
                     leds {
index 19f15bdd1c97692854281c1ad46a1edab5608e6d..19ae600e93394314da09a2d63b460e8187eace7d 100644 (file)
@@ -72,7 +72,7 @@ properties:
 
   '#interrupt-cells':
     description: The internal interrupt controller only supports triggering
-      on active high level interrupts so the second cell must alway be set to
+      on active high level interrupts so the second cell must always be set to
       IRQ_TYPE_LEVEL_HIGH.
     const: 2
 
diff --git a/Bindings/net/dsa/maxlinear,mxl862xx.yaml b/Bindings/net/dsa/maxlinear,mxl862xx.yaml
new file mode 100644 (file)
index 0000000..f1d667f
--- /dev/null
@@ -0,0 +1,161 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/maxlinear,mxl862xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MaxLinear MxL862xx Ethernet Switch Family
+
+maintainers:
+  - Daniel Golle <daniel@makrotopia.org>
+
+description:
+  The MaxLinear MxL862xx switch family are multi-port Ethernet switches with
+  integrated 2.5GE PHYs. The MxL86252 has five PHY ports and the MxL86282
+  has eight PHY ports. Both models come with two 10 Gigabit/s SerDes
+  interfaces to be used to connect external PHYs or SFP cages, or as CPU
+  port.
+
+allOf:
+  - $ref: dsa.yaml#/$defs/ethernet-ports
+
+properties:
+  compatible:
+    enum:
+      - maxlinear,mxl86252
+      - maxlinear,mxl86282
+
+  reg:
+    maxItems: 1
+    description: MDIO address of the switch
+
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - mdio
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        switch@0 {
+            compatible = "maxlinear,mxl86282";
+            reg = <0>;
+
+            ethernet-ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                /* Microcontroller port */
+                port@0 {
+                    reg = <0>;
+                    status = "disabled";
+                };
+
+                port@1 {
+                    reg = <1>;
+                    phy-handle = <&phy0>;
+                    phy-mode = "internal";
+                };
+
+                port@2 {
+                    reg = <2>;
+                    phy-handle = <&phy1>;
+                    phy-mode = "internal";
+                };
+
+                port@3 {
+                    reg = <3>;
+                    phy-handle = <&phy2>;
+                    phy-mode = "internal";
+                };
+
+                port@4 {
+                    reg = <4>;
+                    phy-handle = <&phy3>;
+                    phy-mode = "internal";
+                };
+
+                port@5 {
+                    reg = <5>;
+                    phy-handle = <&phy4>;
+                    phy-mode = "internal";
+                };
+
+                port@6 {
+                    reg = <6>;
+                    phy-handle = <&phy5>;
+                    phy-mode = "internal";
+                };
+
+                port@7 {
+                    reg = <7>;
+                    phy-handle = <&phy6>;
+                    phy-mode = "internal";
+                };
+
+                port@8 {
+                    reg = <8>;
+                    phy-handle = <&phy7>;
+                    phy-mode = "internal";
+                };
+
+                port@9 {
+                    reg = <9>;
+                    label = "cpu";
+                    ethernet = <&gmac0>;
+                    phy-mode = "usxgmii";
+
+                    fixed-link {
+                        speed = <10000>;
+                        full-duplex;
+                    };
+                };
+            };
+
+            mdio {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                phy0: ethernet-phy@0 {
+                    reg = <0>;
+                };
+
+                phy1: ethernet-phy@1 {
+                    reg = <1>;
+                };
+
+                phy2: ethernet-phy@2 {
+                    reg = <2>;
+                };
+
+                phy3: ethernet-phy@3 {
+                    reg = <3>;
+                };
+
+                phy4: ethernet-phy@4 {
+                    reg = <4>;
+                };
+
+                phy5: ethernet-phy@5 {
+                    reg = <5>;
+                };
+
+                phy6: ethernet-phy@6 {
+                    reg = <6>;
+                };
+
+                phy7: ethernet-phy@7 {
+                    reg = <7>;
+                };
+            };
+        };
+    };
index a8c8009414ae00b1a60aad715e15c23343e241ff..8d4a3a9a33fcc1f481314a2f322b0cb0b52fd6e4 100644 (file)
@@ -40,6 +40,7 @@ properties:
       - const: reset
         description:
           Used during reset for strap configuration.
+    minItems: 1
 
   reset-gpios:
     description:
@@ -153,6 +154,8 @@ allOf:
             const: microchip,ksz8463
     then:
       properties:
+        pinctrl-names:
+          minItems: 2
         straps-rxd-gpios:
           description:
             RXD0 and RXD1 pins, used to select SPI as bus interface.
diff --git a/Bindings/net/ethernet-connector.yaml b/Bindings/net/ethernet-connector.yaml
new file mode 100644 (file)
index 0000000..9ad7a00
--- /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/net/ethernet-connector.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Ethernet Connector
+
+maintainers:
+  - Maxime Chevallier <maxime.chevallier@bootlin.com>
+
+description:
+  An Ethernet Connector represents the output of a network component such as
+  a PHY, an Ethernet controller with no PHY, or an SFP module.
+
+properties:
+
+  pairs:
+    description:
+      Defines the number of BaseT pairs that are used on the connector.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4]
+
+  media:
+    description:
+      The mediums, as defined in 802.3, that can be used on the port.
+    enum:
+      - BaseT
+      - BaseK
+      - BaseS
+      - BaseC
+      - BaseL
+      - BaseD
+      - BaseE
+      - BaseF
+      - BaseV
+      - BaseMLD
+
+required:
+  - media
+
+allOf:
+  - if:
+      properties:
+        media:
+          const: BaseT
+    then:
+      required:
+        - pairs
+    else:
+      properties:
+        pairs: false
+
+additionalProperties: true
+
+...
index bb4c49fc5fd889c8c48539553aa21a9855ed3024..58634fee9fc4dc98d3030159e5a038938f60a3cc 100644 (file)
@@ -281,6 +281,17 @@ properties:
 
     additionalProperties: false
 
+  mdi:
+    type: object
+
+    patternProperties:
+      '^connector-[0-9]+$':
+        $ref: /schemas/net/ethernet-connector.yaml#
+
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
 required:
   - reg
 
@@ -317,5 +328,12 @@ examples:
                     default-state = "keep";
                 };
             };
+            /* Fast Ethernet port, with only 2 pairs wired */
+            mdi {
+                connector-0 {
+                    pairs = <2>;
+                    media = "BaseT";
+                };
+            };
         };
     };
diff --git a/Bindings/net/micrel,gigabit.yaml b/Bindings/net/micrel,gigabit.yaml
new file mode 100644 (file)
index 0000000..384b4ea
--- /dev/null
@@ -0,0 +1,253 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/micrel,gigabit.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Micrel series Gigabit Ethernet PHYs
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+  - Stefan Eichenberger <eichest@gmail.com>
+
+description:
+  Some boards require special skew tuning values, particularly when it comes
+  to clock delays. These values can be specified in the device tree using
+  the properties listed here.
+
+properties:
+  compatible:
+    enum:
+      - ethernet-phy-id0022.1610  # KSZ9021
+      - ethernet-phy-id0022.1611  # KSZ9021RLRN
+      - ethernet-phy-id0022.1620  # KSZ9031
+      - ethernet-phy-id0022.1631  # KSZ9477
+      - ethernet-phy-id0022.1640  # KSZ9131
+      - ethernet-phy-id0022.1650  # LAN8841
+      - ethernet-phy-id0022.1660  # LAN8814
+      - ethernet-phy-id0022.1670  # LAN8804
+
+  micrel,force-master:
+    type: boolean
+    description: |
+      Force phy to master mode. Only set this option if the phy reference
+      clock provided at CLK125_NDO pin is used as MAC reference clock
+      because the clock jitter in slave mode is too high (errata#2).
+      Attention: The link partner must be configurable as slave otherwise
+      no link will be established.
+
+  coma-mode-gpios:
+    maxItems: 1
+    description: |
+      If present the given gpio will be deasserted when the PHY is probed.
+
+      Some PHYs have a COMA mode input pin which puts the PHY into
+      isolate and power-down mode. On some boards this input is connected
+      to a GPIO of the SoC.
+
+  micrel,led-mode:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      LED mode value to set for PHYs with configurable LEDs.
+
+      Configure the LED mode with single value. The list of PHYs and the
+      bits that are currently supported:
+
+      LAN8814: register EP5.0, bit 6
+
+      See the respective PHY datasheet for the mode values.
+    minimum: 0
+    maximum: 1
+
+patternProperties:
+  '^([rt]xc)-skew-psec$':
+    $ref: /schemas/types.yaml#/definitions/int32
+    description:
+      Skew control of the pad in picoseconds.
+    minimum: -700
+    maximum: 2400
+    multipleOf: 100
+    default: 0
+
+  '^([rt]xd[0-3]|rxdv|txen)-skew-psec$':
+    $ref: /schemas/types.yaml#/definitions/int32
+    description: |
+      Skew control of the pad in picoseconds.
+    minimum: -700
+    maximum: 800
+    multipleOf: 100
+    default: 0
+
+allOf:
+  - $ref: ethernet-phy.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ethernet-phy-id0022.1610
+              - ethernet-phy-id0022.1611
+    then:
+      patternProperties:
+        '^([rt]xd[0-3]|[rt]xc|rxdv|txen)-skew-ps$':
+          description: |
+            Skew control of the pad in picoseconds.
+            The actual increment on the chip is 120ps ranging from -840ps to
+            960ps, this mismatch comes from a documentation error before
+            datasheet revision 1.2 (Feb 2014).
+
+            The device tree value to delay mapping looks as follows:
+            Device Tree Value   Delay
+            --------------------------
+            0                   -840ps
+            200                 -720ps
+            400                 -600ps
+            600                 -480ps
+            800                 -360ps
+            1000                -240ps
+            1200                -120ps
+            1400                   0ps
+            1600                 120ps
+            1800                 240ps
+            2000                 360ps
+            2200                 480ps
+            2400                 600ps
+            2600                 720ps
+            2800                 840ps
+            3000                 960ps
+          minimum: 0
+          maximum: 3000
+          multipleOf: 200
+          default: 1400
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ethernet-phy-id0022.1620
+    then:
+      patternProperties:
+        '^([rt]xc)-skew-ps$':
+          description: |
+            Skew control of the pad in picoseconds.
+
+            The device tree value to delay mapping is as follows:
+            Device Tree Value   Delay
+            --------------------------
+            0                   -900ps
+            60                  -840ps
+            120                 -780ps
+            180                 -720ps
+            240                 -660ps
+            300                 -600ps
+            360                 -540ps
+            420                 -480ps
+            480                 -420ps
+            540                 -360ps
+            600                 -300ps
+            660                 -240ps
+            720                 -180ps
+            780                 -120ps
+            840                  -60ps
+            900                    0ps
+            960                   60ps
+            1020                 120ps
+            1080                 180ps
+            1140                 240ps
+            1200                 300ps
+            1260                 360ps
+            1320                 420ps
+            1380                 480ps
+            1440                 540ps
+            1500                 600ps
+            1560                 660ps
+            1620                 720ps
+            1680                 780ps
+            1740                 840ps
+            1800                 900ps
+            1860                 960ps
+          minimum: 0
+          maximum: 1860
+          multipleOf: 60
+          default: 900
+        '^([rt]xd[0-3]|rxdv|txen)-skew-ps$':
+          description: |
+            Skew control of the pad in picoseconds.
+
+            The device tree value to delay mapping is as follows:
+            Device Tree Value   Delay
+            --------------------------
+            0                   -420ps
+            60                  -360ps
+            120                 -300ps
+            180                 -240ps
+            240                 -180ps
+            300                 -120ps
+            360                  -60ps
+            420                    0ps
+            480                   60ps
+            540                  120ps
+            600                  180ps
+            660                  240ps
+            720                  300ps
+            780                  360ps
+            840                  420ps
+            900                  480ps
+          minimum: 0
+          maximum: 900
+          multipleOf: 60
+          default: 420
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - ethernet-phy-id0022.1640
+                - ethernet-phy-id0022.1650
+    then:
+      patternProperties:
+        '^([rt]xd[0-3]|[rt]xc|rxdv|txen)-skew-psec$': false
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: ethernet-phy-id0022.1620
+    then:
+      properties:
+        micrel,force-master: false
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: ethernet-phy-id0022.1660
+    then:
+      properties:
+        coma-mode-gpios: false
+        micrel,led-mode: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-phy@7 {
+            compatible = "ethernet-phy-id0022.1610";
+            reg = <7>;
+            rxc-skew-ps = <3000>;
+            rxdv-skew-ps = <0>;
+            txc-skew-ps = <3000>;
+            txen-skew-ps = <0>;
+        };
+
+        ethernet-phy@9 {
+            compatible = "ethernet-phy-id0022.1640";
+            reg = <9>;
+            rxc-skew-psec = <(-100)>;
+            txc-skew-psec = <(-100)>;
+        };
+    };
diff --git a/Bindings/net/micrel-ksz90x1.txt b/Bindings/net/micrel-ksz90x1.txt
deleted file mode 100644 (file)
index 6f7b907..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-Micrel KSZ9021/KSZ9031/KSZ9131 Gigabit Ethernet PHY
-
-Some boards require special tuning values, particularly when it comes
-to clock delays. You can specify clock delay values in the PHY OF
-device node. Deprecated, but still supported, these properties can
-also be added to an Ethernet OF device node.
-
-Note that these settings are applied after any phy-specific fixup from
-phy_fixup_list (see phy_init_hw() from drivers/net/phy/phy_device.c),
-and therefore may overwrite them.
-
-KSZ9021:
-
-  All skew control options are specified in picoseconds. The minimum
-  value is 0, the maximum value is 3000, and it can be specified in 200ps
-  steps, *but* these values are in no way what you get because this chip's
-  skew values actually increase in 120ps steps, starting from -840ps. The
-  incorrect values came from an error in the original KSZ9021 datasheet
-  before it was corrected in revision 1.2 (Feb 2014), but it is too late to
-  change the driver now because of the many existing device trees that have
-  been created using values that go up in increments of 200.
-
-  The following table shows the actual skew delay you will get for each of the
-  possible devicetree values, and the number that will be programmed into the
-  corresponding pad skew register:
-
-  Device Tree Value    Delay   Pad Skew Register Value
-  -----------------------------------------------------
-       0               -840ps          0000
-       200             -720ps          0001
-       400             -600ps          0010
-       600             -480ps          0011
-       800             -360ps          0100
-       1000            -240ps          0101
-       1200            -120ps          0110
-       1400               0ps          0111
-       1600             120ps          1000
-       1800             240ps          1001
-       2000             360ps          1010
-       2200             480ps          1011
-       2400             600ps          1100
-       2600             720ps          1101
-       2800             840ps          1110
-       3000             960ps          1111
-
-  Optional properties:
-
-    - rxc-skew-ps : Skew control of RXC pad
-    - rxdv-skew-ps : Skew control of RX CTL pad
-    - txc-skew-ps : Skew control of TXC pad
-    - txen-skew-ps : Skew control of TX CTL pad
-    - rxd0-skew-ps : Skew control of RX data 0 pad
-    - rxd1-skew-ps : Skew control of RX data 1 pad
-    - rxd2-skew-ps : Skew control of RX data 2 pad
-    - rxd3-skew-ps : Skew control of RX data 3 pad
-    - txd0-skew-ps : Skew control of TX data 0 pad
-    - txd1-skew-ps : Skew control of TX data 1 pad
-    - txd2-skew-ps : Skew control of TX data 2 pad
-    - txd3-skew-ps : Skew control of TX data 3 pad
-
-KSZ9031:
-
-  All skew control options are specified in picoseconds. The minimum
-  value is 0, and the maximum is property-dependent. The increment
-  step is 60ps. The default value is the neutral setting, so setting
-  rxc-skew-ps=<0> actually results in -900 picoseconds adjustment.
-
-  The KSZ9031 hardware supports a range of skew values from negative to
-  positive, where the specific range is property dependent. All values
-  specified in the devicetree are offset by the minimum value so they
-  can be represented as positive integers in the devicetree since it's
-  difficult to represent a negative number in the devictree.
-
-  The following 5-bit values table apply to rxc-skew-ps and txc-skew-ps.
-
-  Pad Skew Value       Delay (ps)      Devicetree Value
-  ------------------------------------------------------
-  0_0000               -900ps          0
-  0_0001               -840ps          60
-  0_0010               -780ps          120
-  0_0011               -720ps          180
-  0_0100               -660ps          240
-  0_0101               -600ps          300
-  0_0110               -540ps          360
-  0_0111               -480ps          420
-  0_1000               -420ps          480
-  0_1001               -360ps          540
-  0_1010               -300ps          600
-  0_1011               -240ps          660
-  0_1100               -180ps          720
-  0_1101               -120ps          780
-  0_1110               -60ps           840
-  0_1111               0ps             900
-  1_0000               60ps            960
-  1_0001               120ps           1020
-  1_0010               180ps           1080
-  1_0011               240ps           1140
-  1_0100               300ps           1200
-  1_0101               360ps           1260
-  1_0110               420ps           1320
-  1_0111               480ps           1380
-  1_1000               540ps           1440
-  1_1001               600ps           1500
-  1_1010               660ps           1560
-  1_1011               720ps           1620
-  1_1100               780ps           1680
-  1_1101               840ps           1740
-  1_1110               900ps           1800
-  1_1111               960ps           1860
-
-  The following 4-bit values table apply to the txdX-skew-ps, rxdX-skew-ps
-  data pads, and the rxdv-skew-ps, txen-skew-ps control pads.
-
-  Pad Skew Value       Delay (ps)      Devicetree Value
-  ------------------------------------------------------
-  0000                 -420ps          0
-  0001                 -360ps          60
-  0010                 -300ps          120
-  0011                 -240ps          180
-  0100                 -180ps          240
-  0101                 -120ps          300
-  0110                 -60ps           360
-  0111                 0ps             420
-  1000                 60ps            480
-  1001                 120ps           540
-  1010                 180ps           600
-  1011                 240ps           660
-  1100                 300ps           720
-  1101                 360ps           780
-  1110                 420ps           840
-  1111                 480ps           900
-
-  Optional properties:
-
-    Maximum value of 1860, default value 900:
-
-      - rxc-skew-ps : Skew control of RX clock pad
-      - txc-skew-ps : Skew control of TX clock pad
-
-    Maximum value of 900, default value 420:
-
-      - rxdv-skew-ps : Skew control of RX CTL pad
-      - txen-skew-ps : Skew control of TX CTL pad
-      - rxd0-skew-ps : Skew control of RX data 0 pad
-      - rxd1-skew-ps : Skew control of RX data 1 pad
-      - rxd2-skew-ps : Skew control of RX data 2 pad
-      - rxd3-skew-ps : Skew control of RX data 3 pad
-      - txd0-skew-ps : Skew control of TX data 0 pad
-      - txd1-skew-ps : Skew control of TX data 1 pad
-      - txd2-skew-ps : Skew control of TX data 2 pad
-      - txd3-skew-ps : Skew control of TX data 3 pad
-
-    - micrel,force-master:
-        Boolean, force phy to master mode. Only set this option if the phy
-        reference clock provided at CLK125_NDO pin is used as MAC reference
-        clock because the clock jitter in slave mode is too high (errata#2).
-        Attention: The link partner must be configurable as slave otherwise
-        no link will be established.
-
-KSZ9131:
-LAN8841:
-
-  All skew control options are specified in picoseconds. The increment
-  step is 100ps. Unlike KSZ9031, the values represent picoseccond delays.
-  A negative value can be assigned as rxc-skew-psec = <(-100)>;.
-
-  Optional properties:
-
-    Range of the value -700 to 2400, default value 0:
-
-      - rxc-skew-psec : Skew control of RX clock pad
-      - txc-skew-psec : Skew control of TX clock pad
-
-    Range of the value -700 to 800, default value 0:
-
-      - rxdv-skew-psec : Skew control of RX CTL pad
-      - txen-skew-psec : Skew control of TX CTL pad
-      - rxd0-skew-psec : Skew control of RX data 0 pad
-      - rxd1-skew-psec : Skew control of RX data 1 pad
-      - rxd2-skew-psec : Skew control of RX data 2 pad
-      - rxd3-skew-psec : Skew control of RX data 3 pad
-      - txd0-skew-psec : Skew control of TX data 0 pad
-      - txd1-skew-psec : Skew control of TX data 1 pad
-      - txd2-skew-psec : Skew control of TX data 2 pad
-      - txd3-skew-psec : Skew control of TX data 3 pad
-
-Examples:
-
-       /* Attach to an Ethernet device with autodetected PHY */
-       &enet {
-               rxc-skew-ps = <1800>;
-               rxdv-skew-ps = <0>;
-               txc-skew-ps = <1800>;
-               txen-skew-ps = <0>;
-               status = "okay";
-       };
-
-       /* Attach to an explicitly-specified PHY */
-       mdio {
-               phy0: ethernet-phy@0 {
-                       rxc-skew-ps = <1800>;
-                       rxdv-skew-ps = <0>;
-                       txc-skew-ps = <1800>;
-                       txen-skew-ps = <0>;
-                       reg = <0>;
-               };
-       };
-       ethernet@70000 {
-               phy = <&phy0>;
-               phy-mode = "rgmii-id";
-       };
-
-References
-
-  Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014.
-  http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf
-
-  Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014.
-  http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf
-
-Notes:
-
-  Note that a previous version of the Micrel ksz9021rl/rn Data Sheet
-  was missing extended register 106 (transmit data pad skews), and
-  incorrectly specified the ps per step as 200ps/step instead of
-  120ps/step. The latest update to this document reflects the latest
-  revision of the Micrel specification even though usage in the kernel
-  still reflects that incorrect document.
diff --git a/Bindings/net/micrel.txt b/Bindings/net/micrel.txt
deleted file mode 100644 (file)
index 01622ce..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Micrel PHY properties.
-
-These properties cover the base properties Micrel PHYs.
-
-Optional properties:
-
- - micrel,led-mode : LED mode value to set for PHYs with configurable LEDs.
-
-       Configure the LED mode with single value. The list of PHYs and the
-       bits that are currently supported:
-
-       KSZ8001: register 0x1e, bits 15..14
-       KSZ8041: register 0x1e, bits 15..14
-       KSZ8021: register 0x1f, bits 5..4
-       KSZ8031: register 0x1f, bits 5..4
-       KSZ8051: register 0x1f, bits 5..4
-       KSZ8081: register 0x1f, bits 5..4
-       KSZ8091: register 0x1f, bits 5..4
-       LAN8814: register EP5.0, bit 6
-
-       See the respective PHY datasheet for the mode values.
-
- - micrel,rmii-reference-clock-select-25-mhz: RMII Reference Clock Select
-                                               bit selects 25 MHz mode
-
-       Setting the RMII Reference Clock Select bit enables 25 MHz rather
-       than 50 MHz clock mode.
-
-       Note that this option is only needed for certain PHY revisions with a
-       non-standard, inverted function of this configuration bit.
-       Specifically, a clock reference ("rmii-ref" below) is always needed to
-       actually select a mode.
-
- - clocks, clock-names: contains clocks according to the common clock bindings.
-
-       supported clocks:
-       - KSZ8021, KSZ8031, KSZ8081, KSZ8091: "rmii-ref": The RMII reference
-         input clock. Used to determine the XI input clock.
-
- - micrel,fiber-mode: If present the PHY is configured to operate in fiber mode
-
-       Some PHYs, such as the KSZ8041FTL variant, support fiber mode, enabled
-       by the FXEN boot strapping pin. It can't be determined from the PHY
-       registers whether the PHY is in fiber mode, so this boolean device tree
-       property can be used to describe it.
-
-       In fiber mode, auto-negotiation is disabled and the PHY can only work in
-       100base-fx (full and half duplex) modes.
-
- - coma-mode-gpios: If present the given gpio will be deasserted when the
-                   PHY is probed.
-
-       Some PHYs have a COMA mode input pin which puts the PHY into
-       isolate and power-down mode. On some boards this input is connected
-       to a GPIO of the SoC.
-
-       Supported on the LAN8814.
diff --git a/Bindings/net/micrel.yaml b/Bindings/net/micrel.yaml
new file mode 100644 (file)
index 0000000..ecc0016
--- /dev/null
@@ -0,0 +1,131 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/micrel.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Micrel KSZ series PHYs and switches
+
+maintainers:
+  - Andrew Lunn <andrew@lunn.ch>
+  - Stefan Eichenberger <eichest@gmail.com>
+
+description:
+  The Micrel KSZ series contains different network phys and switches.
+
+properties:
+  compatible:
+    enum:
+      - ethernet-phy-id000e.7237  # KSZ8873MLL
+      - ethernet-phy-id0022.1430  # KSZ886X
+      - ethernet-phy-id0022.1435  # KSZ8863
+      - ethernet-phy-id0022.1510  # KSZ8041
+      - ethernet-phy-id0022.1537  # KSZ8041RNLI
+      - ethernet-phy-id0022.1550  # KSZ8051
+      - ethernet-phy-id0022.1555  # KSZ8021
+      - ethernet-phy-id0022.1556  # KSZ8031
+      - ethernet-phy-id0022.1560  # KSZ8081, KSZ8091
+      - ethernet-phy-id0022.1570  # KSZ8061
+      - ethernet-phy-id0022.161a  # KSZ8001
+      - ethernet-phy-id0022.1720  # KS8737
+
+  micrel,fiber-mode:
+    type: boolean
+    description: |
+      If present the PHY is configured to operate in fiber mode.
+
+      The KSZ8041FTL variant supports fiber mode, enabled by the FXEN
+      boot strapping pin. It can't be determined from the PHY registers
+      whether the PHY is in fiber mode, so this boolean device tree
+      property can be used to describe it.
+
+      In fiber mode, auto-negotiation is disabled and the PHY can only
+      work in 100base-fx (full and half duplex) modes.
+
+  micrel,led-mode:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      LED mode value to set for PHYs with configurable LEDs.
+
+      Configure the LED mode with single value. The list of PHYs and the
+      bits that are currently supported:
+
+      KSZ8001: register 0x1e, bits 15..14
+      KSZ8041: register 0x1e, bits 15..14
+      KSZ8021: register 0x1f, bits 5..4
+      KSZ8031: register 0x1f, bits 5..4
+      KSZ8051: register 0x1f, bits 5..4
+      KSZ8081: register 0x1f, bits 5..4
+      KSZ8091: register 0x1f, bits 5..4
+
+      See the respective PHY datasheet for the mode values.
+    minimum: 0
+    maximum: 3
+
+allOf:
+  - $ref: ethernet-phy.yaml#
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: ethernet-phy-id0022.1510
+    then:
+      properties:
+        micrel,fiber-mode: false
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - ethernet-phy-id0022.1510
+                - ethernet-phy-id0022.1555
+                - ethernet-phy-id0022.1556
+                - ethernet-phy-id0022.1550
+                - ethernet-phy-id0022.1560
+                - ethernet-phy-id0022.161a
+    then:
+      properties:
+        micrel,led-mode: false
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ethernet-phy-id0022.1555
+              - ethernet-phy-id0022.1556
+              - ethernet-phy-id0022.1560
+    then:
+      properties:
+        clock-names:
+          const: rmii-ref
+          description:
+            The RMII reference input clock. Used to determine the XI input
+            clock.
+        micrel,rmii-reference-clock-select-25-mhz:
+          type: boolean
+          description: |
+            RMII Reference Clock Select bit selects 25 MHz mode
+
+            Setting the RMII Reference Clock Select bit enables 25 MHz rather
+            than 50 MHz clock mode.
+
+dependentRequired:
+  micrel,rmii-reference-clock-select-25-mhz: [ clock-names ]
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        ethernet-phy@5 {
+            compatible = "ethernet-phy-id0022.1510";
+            reg = <5>;
+            micrel,led-mode = <2>;
+            micrel,fiber-mode;
+        };
+    };
index 5491d0775edeacc927b625638baafd2a02d4b2bf..75c7c8d1f411ba9f0749a47bee8be79f3bba8abd 100644 (file)
@@ -151,10 +151,23 @@ properties:
 
         required:
           - reg
-          - phys
           - phy-mode
           - microchip,bandwidth
 
+        if:
+          not:
+            properties:
+              phy-mode:
+                contains:
+                  enum:
+                    - rgmii
+                    - rgmii-id
+                    - rgmii-rxid
+                    - rgmii-txid
+        then:
+          required:
+            - phys
+
         oneOf:
           - required:
               - phy-handle
index 792f26b06b060e2c8dca64be195c9ad8a97d283a..2207b33aee760e16bbf3181e9bee752707ae05e6 100644 (file)
@@ -14,9 +14,14 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - mscc,ocelot-miim
-      - microchip,lan966x-miim
+    oneOf:
+      - enum:
+          - mscc,ocelot-miim
+          - microchip,lan966x-miim
+      - items:
+          - enum:
+              - microchip,lan9691-miim
+          - const: mscc,ocelot-miim
 
   "#address-cells":
     const: 1
index 2bd3efff2485ef69f0321501adf815943aa37d06..215f14d1897d21b84eae1c27dc1abfbc02891c85 100644 (file)
@@ -42,7 +42,7 @@ properties:
       - const: mgbe
       - const: mac
       - const: mac-divider
-      - const: ptp-ref
+      - const: ptp_ref
       - const: rx-input-m
       - const: rx-input
       - const: tx
@@ -133,7 +133,7 @@ examples:
                  <&bpmp TEGRA234_CLK_MGBE0_RX_PCS_M>,
                  <&bpmp TEGRA234_CLK_MGBE0_RX_PCS>,
                  <&bpmp TEGRA234_CLK_MGBE0_TX_PCS>;
-        clock-names = "mgbe", "mac", "mac-divider", "ptp-ref", "rx-input-m",
+        clock-names = "mgbe", "mac", "mac-divider", "ptp_ref", "rx-input-m",
                       "rx-input", "tx", "eee-pcs", "rx-pcs-input", "rx-pcs-m",
                       "rx-pcs", "tx-pcs";
         resets = <&bpmp TEGRA234_RESET_MGBE0_MAC>,
index 2b8b74c5feec8378750358e1b9335cc2c2762bb6..1b2934f3c87ca21ec67369fc34b3234cc3d9d60c 100644 (file)
@@ -32,6 +32,18 @@ properties:
       - description: Main GMAC registers
       - description: GMAC PHY mode control register
 
+  nxp,phy-sel:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to the GPR syscon node
+          - description: offset of PHY selection register
+    description:
+      This phandle points to the GMAC_0_CTRL_STS register which controls the
+      GMAC_0 configuration options.  The register lets you select the PHY
+      interface and the PHY mode.  It also controls if the FTM_0 or FTM_1
+      FlexTimer Modules connect to GMAC_0.
+
   interrupts:
     maxItems: 1
 
@@ -74,6 +86,7 @@ examples:
         compatible = "nxp,s32g2-dwmac";
         reg = <0x0 0x4033c000 0x0 0x2000>, /* gmac IP */
               <0x0 0x4007c004 0x0 0x4>;    /* GMAC_0_CTRL_STS */
+        nxp,phy-sel = <&gpr 0x4>;
         interrupt-parent = <&gic>;
         interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
         interrupt-names = "macirq";
index 1bacc0eeff7573bb190d87a52103bf2ce1df7374..b8478416f8eff257b7b7985601ff78c96db6c07a 100644 (file)
@@ -39,12 +39,17 @@ properties:
     const: 1
 
   mediatek,pnswap:
-    description: Invert polarity of the SGMII data lanes
+    description:
+      Invert polarity of the SGMII data lanes.
+      This property is deprecated, for details please refer to
+      Documentation/devicetree/bindings/phy/phy-common-props.yaml.
     type: boolean
+    deprecated: true
 
   pcs:
     type: object
     description: MediaTek LynxI HSGMII PCS
+    $ref: /schemas/phy/phy-common-props.yaml#
     properties:
       compatible:
         const: mediatek,mt7988-sgmii
index 3adbcf56d2be3fb11541012b7f74095f4ade3c74..f9d39114e6672f63d1a2c61134a3a45c77fdf9c2 100644 (file)
@@ -86,6 +86,13 @@ patternProperties:
           and include/dt-bindings/net/renesas,r9a09g077-pcs-miic.h for RZ/N2H, RZ/T2H SoCs.
         $ref: /schemas/types.yaml#/definitions/uint32
 
+      renesas,miic-phy-link-active-low:
+        type: boolean
+        description: Indicates that the PHY-link signal provided by the Ethernet switch,
+          EtherCAT, or SERCOS3 interface is active low. When present, this property
+          sets the corresponding signal polarity to active low. When omitted, the signal
+          defaults to active high.
+
     required:
       - reg
       - renesas,miic-input
index bd53ab300f5003ea1f951d3957cefc702301217a..2125b5ddf73dadd8b0d372e83a6b5c4624f5e648 100644 (file)
@@ -26,6 +26,9 @@ select:
 properties:
   compatible:
     oneOf:
+      - items:
+          - const: renesas,r9a08g046-gbeth # RZ/G3L
+          - const: snps,dwmac-5.30a
       - items:
           - enum:
               - renesas,r9a09g047-gbeth # RZ/G3E
@@ -47,13 +50,19 @@ properties:
   clocks:
     oneOf:
       - items:
-          - description: CSR clock
-          - description: AXI system clock
+          - description: CSR/Register access clock
+          - description: AXI system/Main clock
           - description: PTP clock
           - description: TX clock
           - description: RX clock
           - description: TX clock phase-shifted by 180 degrees
           - description: RX clock phase-shifted by 180 degrees
+          - description: RMII clock
+          - description: RMII TX clock
+          - description: RMII RX clock
+
+        minItems: 7
+
       - items:
           - description: CSR clock
           - description: AXI system clock
@@ -69,6 +78,12 @@ properties:
           - const: rx
           - const: tx-180
           - const: rx-180
+          - const: rmii
+          - const: rmii_tx
+          - const: rmii_rx
+
+        minItems: 7
+
       - items:
           - const: stmmaceth
           - const: pclk
@@ -88,6 +103,22 @@ properties:
           - const: tx-queue-1
           - const: tx-queue-2
           - const: tx-queue-3
+      - items:
+          - const: macirq
+          - const: eth_wake_irq
+          - const: eth_lpi
+          - const: rx-queue-0
+          - const: rx-queue-1
+          - const: rx-queue-2
+          - const: rx-queue-3
+          - const: tx-queue-0
+          - const: tx-queue-1
+          - const: tx-queue-2
+          - const: tx-queue-3
+          - const: ptp-pps-0
+          - const: ptp-pps-1
+          - const: ptp-pps-2
+          - const: ptp-pps-3
       - items:
           - const: macirq
           - const: eth_wake_irq
@@ -135,6 +166,27 @@ required:
 allOf:
   - $ref: snps,dwmac.yaml#
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a08g046-gbeth
+    then:
+      properties:
+        clocks:
+          minItems: 10
+
+        clock-names:
+          minItems: 10
+
+        interrupts:
+          minItems: 15
+          maxItems: 15
+
+        interrupt-names:
+          minItems: 15
+          maxItems: 15
+
   - if:
       properties:
         compatible:
@@ -163,12 +215,26 @@ allOf:
       required:
         - reset-names
     else:
+      properties:
+        resets:
+          maxItems: 1
+
+        pcs-handle: false
+
+        reset-names: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,rzv2h-gbeth
+    then:
       properties:
         clocks:
-          minItems: 7
+          maxItems: 7
 
         clock-names:
-          minItems: 7
+          maxItems: 7
 
         interrupts:
           minItems: 11
@@ -178,13 +244,6 @@ allOf:
           minItems: 11
           maxItems: 11
 
-        resets:
-          maxItems: 1
-
-        pcs-handle: false
-
-        reset-names: false
-
 unevaluatedProperties: false
 
 examples:
index d17112527dab0a5104ffaf2627fdcb73603d5db7..80c252845349c4533deff85b052157984d0e2f23 100644 (file)
@@ -85,6 +85,8 @@ properties:
         - clk_mac_refout
         - clk_mac_speed
 
+  dma-coherent: true
+
   clock_in_out:
     description:
       For RGMII, it must be "input", means main clock(125MHz)
index dd3c72e8363e70d101ed2702e2ea3235ee38e2a0..38bc34dc4f09b75f8f78ffa383f7e5ae6be9fb72 100644 (file)
@@ -75,6 +75,7 @@ properties:
         - qcom,sc8280xp-ethqos
         - qcom,sm8150-ethqos
         - renesas,r9a06g032-gmac
+        - renesas,r9a08g046-gbeth
         - renesas,r9a09g077-gbeth
         - renesas,rzn1-gmac
         - renesas,rzv2h-gbeth
@@ -142,6 +143,8 @@ properties:
           pattern: '^rx-queue-[0-7]$'
         - description: Per channel transmit completion interrupt
           pattern: '^tx-queue-[0-7]$'
+        - description: PPS interrupt
+          pattern: '^ptp-pps-[0-3]$'
 
   clocks:
     minItems: 1
index 28a0bddb9af940e79a7a768a35ef588e28ec5bd4..23c70d863c3982f80a9410439b13ea31d1890cc7 100644 (file)
@@ -47,6 +47,9 @@ properties:
        is disabled.
        In fiber mode, auto-negotiation is disabled and the PHY can only work in
        100base-fx (full and half duplex) modes.
+       This property is deprecated, for details please refer to
+       Documentation/devicetree/bindings/net/ethernet-connector.yaml
+    deprecated: true
 
   rx-internal-delay-ps:
     description: |
@@ -141,7 +144,11 @@ examples:
         tx-internal-delay-ps = <1>;
         ti,gpio2-clk-out = "xi";
         mac-termination-ohms = <43>;
+        mdi {
+          connector-0 {
+            media = "BaseF";
+          };
+        };
       };
     };
-
 ...
index e34d42a30192b80311a4c6bb41bd3c8ffc66375f..0162e365798b7e5b9fa7ae5430208b3b26f279a7 100644 (file)
@@ -37,6 +37,7 @@ properties:
 
   firmware-name:
     maxItems: 1
+    deprecated: true
     description:
       If present, a board or platform specific string used to lookup
       usecase-specific firmware files for the device.
index c089677702cf17f3016b054d21494d2a7706ce5d..0cc1dbf2beefa2f87af72bac21353eedd2b7e042 100644 (file)
@@ -214,15 +214,6 @@ allOf:
             - const: wbm2host-tx-completions-ring2
             - const: wbm2host-tx-completions-ring1
             - const: tcl2host-status-ring
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,ipq8074-wifi
-              - qcom,ipq6018-wifi
-    then:
       required:
         - interrupt-names
 
diff --git a/Bindings/nvmem/google,gs101-otp.yaml b/Bindings/nvmem/google,gs101-otp.yaml
new file mode 100644 (file)
index 0000000..99e322c
--- /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/nvmem/google,gs101-otp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google GS101 OTP Controller
+
+maintainers:
+  - Tudor Ambarus <tudor.ambarus@linaro.org>
+
+description: |
+  OTP controller drives a NVMEM memory where system or user specific data
+  can be stored. The OTP controller register space is of interest as well
+  because it contains dedicated registers where it stores the Product ID
+  and the Chip ID (apart other things like TMU or ASV info).
+
+allOf:
+  - $ref: nvmem.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: google,gs101-otp
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: pclk
+
+  interrupts:
+    maxItems: 1
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/google,gs101.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    efuse@10000000 {
+        compatible = "google,gs101-otp";
+        reg = <0x10000000 0xf084>;
+        clocks = <&cmu_misc CLK_GOUT_MISC_OTP_CON_TOP_PCLK>;
+        clock-names = "pclk";
+        interrupts = <GIC_SPI 752 IRQ_TYPE_LEVEL_HIGH>;
+    };
index c9bf34ee0efb663308484da63009671a6f3e1b3e..f9323b3ecfc83e942ecb4e13330295ca8e2095e5 100644 (file)
@@ -28,6 +28,7 @@ properties:
           - enum:
               - mediatek,mt8188-efuse
               - mediatek,mt8189-efuse
+              - mediatek,mt8196-efuse
           - const: mediatek,mt8186-efuse
       - const: mediatek,mt8186-efuse
 
index 7d1612acca48d24c3b54c4d25fa8a210176d3bb5..839513d4b499d57345f97ad37b34de1817ccf0a6 100644 (file)
@@ -55,6 +55,7 @@ properties:
           - qcom,sm8450-qfprom
           - qcom,sm8550-qfprom
           - qcom,sm8650-qfprom
+          - qcom,sm8750-qfprom
           - qcom,x1e80100-qfprom
       - const: qcom,qfprom
 
diff --git a/Bindings/pci/aspeed,ast2600-pcie.yaml b/Bindings/pci/aspeed,ast2600-pcie.yaml
new file mode 100644 (file)
index 0000000..d947824
--- /dev/null
@@ -0,0 +1,182 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/aspeed,ast2600-pcie.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ASPEED PCIe Root Complex Controller
+
+maintainers:
+  - Jacky Chou <jacky_chou@aspeedtech.com>
+
+description:
+  The ASPEED PCIe Root Complex controller provides PCI Express Root Complex
+  functionality for ASPEED SoCs, such as the AST2600 and AST2700.
+  This controller enables connectivity to PCIe endpoint devices, supporting
+  memory and I/O windows, MSI and INTx interrupts, and integration with
+  the SoC's clock, reset, and pinctrl subsystems. On AST2600, the PCIe Root
+  Port device number is always 8.
+
+properties:
+  compatible:
+    enum:
+      - aspeed,ast2600-pcie
+      - aspeed,ast2700-pcie
+
+  reg:
+    maxItems: 1
+
+  ranges:
+    minItems: 2
+    maxItems: 2
+
+  interrupts:
+    maxItems: 1
+    description: INTx and MSI interrupt
+
+  resets:
+    items:
+      - description: PCIe controller reset
+
+  reset-names:
+    items:
+      - const: h2x
+
+  aspeed,ahbc:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the ASPEED AHB Controller (AHBC) syscon node.
+      This reference is used by the PCIe controller to access
+      system-level configuration registers related to the AHB bus.
+      To enable AHB access for the PCIe controller.
+
+  aspeed,pciecfg:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the ASPEED PCIe configuration syscon node.
+      This reference allows the PCIe controller to access
+      SoC-specific PCIe configuration registers. There are the others
+      functions such PCIe RC and PCIe EP will use this common register
+      to configure the SoC interfaces.
+
+  interrupt-controller: true
+
+patternProperties:
+  "^pcie@[0-9a-f]+,0$":
+    type: object
+    $ref: /schemas/pci/pci-pci-bridge.yaml#
+
+    properties:
+      reg:
+        maxItems: 1
+
+      resets:
+        items:
+          - description: PERST# signal
+
+      reset-names:
+        items:
+          - const: perst
+
+      clocks:
+        maxItems: 1
+
+      phys:
+        maxItems: 1
+
+    required:
+      - resets
+      - reset-names
+      - clocks
+      - phys
+      - ranges
+
+    unevaluatedProperties: false
+
+allOf:
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
+  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: aspeed,ast2600-pcie
+    then:
+      required:
+        - aspeed,ahbc
+    else:
+      properties:
+        aspeed,ahbc: false
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: aspeed,ast2700-pcie
+    then:
+      required:
+        - aspeed,pciecfg
+    else:
+      properties:
+        aspeed,pciecfg: false
+
+required:
+  - reg
+  - interrupts
+  - bus-range
+  - ranges
+  - resets
+  - reset-names
+  - msi-controller
+  - interrupt-controller
+  - interrupt-map-mask
+  - interrupt-map
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/ast2600-clock.h>
+
+    pcie0: pcie@1e770000 {
+      compatible = "aspeed,ast2600-pcie";
+      device_type = "pci";
+      reg = <0x1e770000 0x100>;
+      #address-cells = <3>;
+      #size-cells = <2>;
+      interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+      bus-range = <0x00 0xff>;
+
+      ranges = <0x01000000 0x0 0x00018000 0x00018000 0x0 0x00008000
+                0x02000000 0x0 0x60000000 0x60000000 0x0 0x20000000>;
+
+      resets = <&syscon ASPEED_RESET_H2X>;
+      reset-names = "h2x";
+
+      #interrupt-cells = <1>;
+      msi-controller;
+
+      aspeed,ahbc = <&ahbc>;
+
+      interrupt-controller;
+      interrupt-map-mask = <0 0 0 7>;
+      interrupt-map = <0 0 0 1 &pcie0 0>,
+                      <0 0 0 2 &pcie0 1>,
+                      <0 0 0 3 &pcie0 2>,
+                      <0 0 0 4 &pcie0 3>;
+
+      pcie@8,0 {
+        compatible = "pciclass,0604";
+        reg = <0x00004000 0 0 0 0>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+        device_type = "pci";
+        resets = <&syscon ASPEED_RESET_PCIE_RC_O>;
+        reset-names = "perst";
+        clocks = <&syscon ASPEED_CLK_GATE_BCLK>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_pcierc1_default>;
+        phys = <&pcie_phy1>;
+        ranges;
+      };
+    };
index ca5f2970f217c34b7f6de7e9162a25cd1424e396..12a01f7a57443dd1519d136db57afd59b2c6b095 100644 (file)
@@ -44,7 +44,7 @@ properties:
 
   clock-names:
     minItems: 3
-    maxItems: 5
+    maxItems: 6
 
   interrupts:
     minItems: 1
@@ -212,14 +212,17 @@ allOf:
     then:
       properties:
         clocks:
-          maxItems: 5
+          minItems: 5
+          maxItems: 6
         clock-names:
+          minItems: 5
           items:
             - const: pcie
             - const: pcie_bus
             - const: pcie_phy
             - const: pcie_aux
             - const: ref
+            - const: extref  # Optional
 
 unevaluatedProperties: false
 
index e5bba63aa9479ca7a503abac90bc5b0d2afa8b90..26e77218b9013a4176b079990787a25b437d76df 100644 (file)
@@ -32,6 +32,8 @@ properties:
     minItems: 1
     maxItems: 3
 
+  msi-parent: true
+
 required:
   - compatible
   - reg
index d286b77921e0fd7d2149b346673064481d546f88..8f5d330503481fafd8f25ad7a9f09aae7aa4d7f3 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Mobiveil AXI PCIe Host Bridge
 
 maintainers:
-  - Frank Li <Frank Li@nxp.com>
+  - Frank Li <Frank.Li@nxp.com>
 
 description:
   Mobiveil's GPEX 4.0 is a PCIe Gen4 host bridge IP. This configurable IP
index 0278845701ce8fd0a3439357aec5aca696888432..4db700fc36ba7b1cecfa21f355ed9ad99dd8fe37 100644 (file)
@@ -48,6 +48,7 @@ properties:
     oneOf:
       - items:
           - enum:
+              - mediatek,mt7981-pcie
               - mediatek,mt7986-pcie
               - mediatek,mt8188-pcie
               - mediatek,mt8195-pcie
diff --git a/Bindings/pci/qcom,pcie-apq8064.yaml b/Bindings/pci/qcom,pcie-apq8064.yaml
new file mode 100644 (file)
index 0000000..eb5b81d
--- /dev/null
@@ -0,0 +1,170 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-apq8064.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm APQ8064/IPQ8064 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-apq8064
+      - qcom,pcie-ipq8064
+      - qcom,pcie-ipq8064-v2
+
+  reg:
+    maxItems: 4
+
+  reg-names:
+    items:
+      - const: dbi
+      - const: elbi
+      - const: parf
+      - const: config
+
+  clocks:
+    minItems: 3
+    maxItems: 5
+
+  clock-names:
+    minItems: 3
+    items:
+      - const: core # Clocks the pcie hw block
+      - const: iface # Configuration AHB clock
+      - const: phy
+      - const: aux
+      - const: ref
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-names:
+    items:
+      - const: msi
+
+  resets:
+    minItems: 5
+    maxItems: 6
+
+  reset-names:
+    minItems: 5
+    items:
+      - const: axi
+      - const: ahb
+      - const: por
+      - const: pci
+      - const: phy
+      - const: ext
+
+  vdda-supply:
+    description: A phandle to the core analog power supply
+
+  vdda_phy-supply:
+    description: A phandle to the core analog power supply for PHY
+
+  vdda_refclk-supply:
+    description: A phandle to the core analog power supply for IC which generates reference clock
+
+required:
+  - resets
+  - reset-names
+  - vdda-supply
+  - vdda_phy-supply
+  - vdda_refclk-supply
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,pcie-apq8064
+    then:
+      properties:
+        clocks:
+          maxItems: 3
+        clock-names:
+          maxItems: 3
+        resets:
+          maxItems: 5
+        reset-names:
+          maxItems: 5
+    else:
+      properties:
+        clocks:
+          minItems: 5
+        clock-names:
+          minItems: 5
+        resets:
+          minItems: 6
+        reset-names:
+          minItems: 6
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-msm8960.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/reset/qcom,gcc-msm8960.h>
+
+    pcie@1b500000 {
+        compatible = "qcom,pcie-apq8064";
+        reg = <0x1b500000 0x1000>,
+              <0x1b502000 0x80>,
+              <0x1b600000 0x100>,
+              <0x0ff00000 0x100000>;
+        reg-names = "dbi", "elbi", "parf", "config";
+        ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00100000>, /* I/O */
+                 <0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* mem */
+
+        device_type = "pci";
+        linux,pci-domain = <0>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        clocks = <&gcc PCIE_A_CLK>,
+                 <&gcc PCIE_H_CLK>,
+                 <&gcc PCIE_PHY_REF_CLK>;
+        clock-names = "core", "iface", "phy";
+
+        interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi";
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                        <0 0 0 2 &intc GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                        <0 0 0 3 &intc GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                        <0 0 0 4 &intc GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+        resets = <&gcc PCIE_ACLK_RESET>,
+                 <&gcc PCIE_HCLK_RESET>,
+                 <&gcc PCIE_POR_RESET>,
+                 <&gcc PCIE_PCI_RESET>,
+                 <&gcc PCIE_PHY_RESET>;
+        reset-names = "axi", "ahb", "por", "pci", "phy";
+
+        perst-gpios = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
+        vdda-supply = <&pm8921_s3>;
+        vdda_phy-supply = <&pm8921_lvs6>;
+        vdda_refclk-supply = <&v3p3_fixed>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-apq8084.yaml b/Bindings/pci/qcom,pcie-apq8084.yaml
new file mode 100644 (file)
index 0000000..a6403a3
--- /dev/null
@@ -0,0 +1,109 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-apq8084.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm APQ8084 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-apq8084
+
+  reg:
+    minItems: 4
+    maxItems: 5
+
+  reg-names:
+    minItems: 4
+    items:
+      - const: parf
+      - const: dbi
+      - const: elbi
+      - const: config
+      - const: mhi
+
+  clocks:
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: iface # Configuration AHB clock
+      - const: master_bus # Master AXI clock
+      - const: slave_bus # Slave AXI clock
+      - const: aux
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-names:
+    items:
+      - const: msi
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: core
+
+  vdda-supply:
+    description: A phandle to the core analog power supply
+
+required:
+  - power-domains
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/gpio/gpio.h>
+    pcie@fc520000 {
+      compatible = "qcom,pcie-apq8084";
+      reg = <0xfc520000 0x2000>,
+            <0xff000000 0x1000>,
+            <0xff001000 0x1000>,
+            <0xff002000 0x2000>;
+      reg-names = "parf", "dbi", "elbi", "config";
+      device_type = "pci";
+      linux,pci-domain = <0>;
+      bus-range = <0x00 0xff>;
+      num-lanes = <1>;
+      #address-cells = <3>;
+      #size-cells = <2>;
+      ranges = <0x81000000 0 0          0xff200000 0 0x00100000>,
+               <0x82000000 0 0x00300000 0xff300000 0 0x00d00000>;
+      interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
+      interrupt-names = "msi";
+      #interrupt-cells = <1>;
+      interrupt-map-mask = <0 0 0 0x7>;
+      interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>,
+                      <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>,
+                      <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>,
+                      <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&gcc 324>,
+               <&gcc 325>,
+               <&gcc 327>,
+               <&gcc 323>;
+      clock-names = "iface", "master_bus", "slave_bus", "aux";
+      resets = <&gcc 81>;
+      reset-names = "core";
+      power-domains = <&gcc 1>;
+      vdda-supply = <&pma8084_l3>;
+      phys = <&pciephy0>;
+      phy-names = "pciephy";
+      perst-gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
+      pinctrl-0 = <&pcie0_pins_default>;
+      pinctrl-names = "default";
+    };
diff --git a/Bindings/pci/qcom,pcie-ipq4019.yaml b/Bindings/pci/qcom,pcie-ipq4019.yaml
new file mode 100644 (file)
index 0000000..fd6ecd1
--- /dev/null
@@ -0,0 +1,146 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq4019.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm IPQ4019 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-ipq4019
+
+  reg:
+    maxItems: 4
+
+  reg-names:
+    items:
+      - const: dbi
+      - const: elbi
+      - const: parf
+      - const: config
+
+  clocks:
+    maxItems: 3
+
+  clock-names:
+    items:
+      - const: aux
+      - const: master_bus # Master AXI clock
+      - const: slave_bus # Slave AXI clock
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-names:
+    items:
+      - const: msi
+
+  resets:
+    maxItems: 12
+
+  reset-names:
+    items:
+      - const: axi_m # AXI master reset
+      - const: axi_s # AXI slave reset
+      - const: pipe
+      - const: axi_m_vmid
+      - const: axi_s_xpu
+      - const: parf
+      - const: phy
+      - const: axi_m_sticky # AXI master sticky reset
+      - const: pipe_sticky
+      - const: pwr
+      - const: ahb
+      - const: phy_ahb
+
+required:
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-ipq4019.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    pcie@40000000 {
+        compatible = "qcom,pcie-ipq4019";
+        reg = <0x40000000 0xf1d>,
+              <0x40000f20 0xa8>,
+              <0x80000 0x2000>,
+              <0x40100000 0x1000>;
+        reg-names = "dbi", "elbi", "parf", "config";
+        ranges = <0x81000000 0x0 0x00000000 0x40200000 0x0 0x00100000>,
+                 <0x82000000 0x0 0x40300000 0x40300000 0x0 0x00d00000>;
+
+        device_type = "pci";
+        linux,pci-domain = <0>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        clocks = <&gcc GCC_PCIE_AHB_CLK>,
+                 <&gcc GCC_PCIE_AXI_M_CLK>,
+                 <&gcc GCC_PCIE_AXI_S_CLK>;
+        clock-names = "aux",
+                      "master_bus",
+                      "slave_bus";
+
+        interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi";
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                        <0 0 0 2 &intc GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                        <0 0 0 3 &intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                        <0 0 0 4 &intc GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+        resets = <&gcc PCIE_AXI_M_ARES>,
+                 <&gcc PCIE_AXI_S_ARES>,
+                 <&gcc PCIE_PIPE_ARES>,
+                 <&gcc PCIE_AXI_M_VMIDMT_ARES>,
+                 <&gcc PCIE_AXI_S_XPU_ARES>,
+                 <&gcc PCIE_PARF_XPU_ARES>,
+                 <&gcc PCIE_PHY_ARES>,
+                 <&gcc PCIE_AXI_M_STICKY_ARES>,
+                 <&gcc PCIE_PIPE_STICKY_ARES>,
+                 <&gcc PCIE_PWR_ARES>,
+                 <&gcc PCIE_AHB_ARES>,
+                 <&gcc PCIE_PHY_AHB_ARES>;
+        reset-names = "axi_m",
+                      "axi_s",
+                      "pipe",
+                      "axi_m_vmid",
+                      "axi_s_xpu",
+                      "parf",
+                      "phy",
+                      "axi_m_sticky",
+                      "pipe_sticky",
+                      "pwr",
+                      "ahb",
+                      "phy_ahb";
+
+        perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-ipq5018.yaml b/Bindings/pci/qcom,pcie-ipq5018.yaml
new file mode 100644 (file)
index 0000000..20c2c94
--- /dev/null
@@ -0,0 +1,189 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq5018.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm IPQ5018 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-ipq5018
+
+  reg:
+    minItems: 5
+    maxItems: 6
+
+  reg-names:
+    minItems: 5
+    items:
+      - const: dbi
+      - const: elbi
+      - const: atu
+      - const: parf
+      - const: config
+      - const: mhi
+
+  clocks:
+    maxItems: 6
+
+  clock-names:
+    items:
+      - const: iface # PCIe to SysNOC BIU clock
+      - const: axi_m # AXI Master clock
+      - const: axi_s # AXI Slave clock
+      - const: ahb
+      - const: aux
+      - const: axi_bridge
+
+  interrupts:
+    maxItems: 9
+
+  interrupt-names:
+    items:
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: global
+
+  resets:
+    maxItems: 8
+
+  reset-names:
+    items:
+      - const: pipe
+      - const: sleep
+      - const: sticky # Core sticky reset
+      - const: axi_m # AXI master reset
+      - const: axi_s # AXI slave reset
+      - const: ahb
+      - const: axi_m_sticky # AXI master sticky reset
+      - const: axi_s_sticky # AXI slave sticky reset
+
+required:
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-ipq5018.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/reset/qcom,gcc-ipq5018.h>
+
+    pcie@a0000000 {
+        compatible = "qcom,pcie-ipq5018";
+        reg = <0xa0000000 0xf1d>,
+              <0xa0000f20 0xa8>,
+              <0xa0001000 0x1000>,
+              <0x00080000 0x3000>,
+              <0xa0100000 0x1000>,
+              <0x00083000 0x1000>;
+        reg-names = "dbi",
+                    "elbi",
+                    "atu",
+                    "parf",
+                    "config",
+                    "mhi";
+        ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>,
+                 <0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>;
+
+        device_type = "pci";
+        linux,pci-domain = <0>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <2>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        /* The controller supports Gen3, but the connected PHY is Gen2-capable */
+        max-link-speed = <2>;
+
+        clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
+                 <&gcc GCC_PCIE0_AXI_M_CLK>,
+                 <&gcc GCC_PCIE0_AXI_S_CLK>,
+                 <&gcc GCC_PCIE0_AHB_CLK>,
+                 <&gcc GCC_PCIE0_AUX_CLK>,
+                 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>;
+        clock-names = "iface",
+                      "axi_m",
+                      "axi_s",
+                      "ahb",
+                      "aux",
+                      "axi_bridge";
+
+        msi-map = <0x0 &v2m0 0x0 0xff8>;
+
+        interrupts = <GIC_SPI 52 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 59 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi0",
+                          "msi1",
+                          "msi2",
+                          "msi3",
+                          "msi4",
+                          "msi5",
+                          "msi6",
+                          "msi7",
+                          "global";
+
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc 0 GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
+                        <0 0 0 2 &intc 0 GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
+                        <0 0 0 3 &intc 0 GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
+                        <0 0 0 4 &intc 0 GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+
+        phys = <&pcie0_phy>;
+        phy-names = "pciephy";
+
+        resets = <&gcc GCC_PCIE0_PIPE_ARES>,
+                 <&gcc GCC_PCIE0_SLEEP_ARES>,
+                 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
+                 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
+                 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
+                 <&gcc GCC_PCIE0_AHB_ARES>,
+                 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
+                 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
+        reset-names = "pipe",
+                      "sleep",
+                      "sticky",
+                      "axi_m",
+                      "axi_s",
+                      "ahb",
+                      "axi_m_sticky",
+                      "axi_s_sticky";
+
+        perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
+        wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-ipq6018.yaml b/Bindings/pci/qcom,pcie-ipq6018.yaml
new file mode 100644 (file)
index 0000000..6843570
--- /dev/null
@@ -0,0 +1,179 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq6018.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm IPQ6018 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-ipq6018
+      - qcom,pcie-ipq8074-gen3
+
+  reg:
+    minItems: 5
+    maxItems: 6
+
+  reg-names:
+    minItems: 5
+    items:
+      - const: dbi
+      - const: elbi
+      - const: atu
+      - const: parf
+      - const: config
+      - const: mhi
+
+  clocks:
+    maxItems: 5
+
+  clock-names:
+    items:
+      - const: iface # PCIe to SysNOC BIU clock
+      - const: axi_m # AXI Master clock
+      - const: axi_s # AXI Slave clock
+      - const: axi_bridge
+      - const: rchng
+
+  interrupts:
+    maxItems: 9
+
+  interrupt-names:
+    items:
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: global
+
+  resets:
+    maxItems: 8
+
+  reset-names:
+    items:
+      - const: pipe
+      - const: sleep
+      - const: sticky # Core sticky reset
+      - const: axi_m # AXI master reset
+      - const: axi_s # AXI slave reset
+      - const: ahb
+      - const: axi_m_sticky # AXI master sticky reset
+      - const: axi_s_sticky # AXI slave sticky reset
+
+required:
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-ipq6018.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/reset/qcom,gcc-ipq6018.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        pcie@20000000 {
+            compatible = "qcom,pcie-ipq6018";
+            reg = <0x0 0x20000000 0x0 0xf1d>,
+                  <0x0 0x20000f20 0x0 0xa8>,
+                  <0x0 0x20001000 0x0 0x1000>,
+                  <0x0 0x80000 0x0 0x4000>,
+                  <0x0 0x20100000 0x0 0x1000>;
+            reg-names = "dbi", "elbi", "atu", "parf", "config";
+            ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
+                     <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
+
+            device_type = "pci";
+            linux,pci-domain = <0>;
+            bus-range = <0x00 0xff>;
+            num-lanes = <1>;
+            max-link-speed = <3>;
+            #address-cells = <3>;
+            #size-cells = <2>;
+
+            clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
+                     <&gcc GCC_PCIE0_AXI_M_CLK>,
+                     <&gcc GCC_PCIE0_AXI_S_CLK>,
+                     <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
+                     <&gcc PCIE0_RCHNG_CLK>;
+            clock-names = "iface",
+                          "axi_m",
+                          "axi_s",
+                          "axi_bridge",
+                          "rchng";
+
+            interrupts = <GIC_SPI 52 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 59 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "msi0",
+                              "msi1",
+                              "msi2",
+                              "msi3",
+                              "msi4",
+                              "msi5",
+                              "msi6",
+                              "msi7",
+                              "global";
+
+            #interrupt-cells = <1>;
+            interrupt-map-mask = <0 0 0 0x7>;
+            interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                            <0 0 0 2 &intc 0 0 GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                            <0 0 0 3 &intc 0 0 GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                            <0 0 0 4 &intc 0 0 GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+            phys = <&pcie_phy>;
+            phy-names = "pciephy";
+
+            resets = <&gcc GCC_PCIE0_PIPE_ARES>,
+                     <&gcc GCC_PCIE0_SLEEP_ARES>,
+                     <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
+                     <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
+                     <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
+                     <&gcc GCC_PCIE0_AHB_ARES>,
+                     <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
+                     <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
+            reset-names = "pipe",
+                          "sleep",
+                          "sticky",
+                          "axi_m",
+                          "axi_s",
+                          "ahb",
+                          "axi_m_sticky",
+                          "axi_s_sticky";
+
+            pcie@0 {
+                device_type = "pci";
+                reg = <0x0 0x0 0x0 0x0 0x0>;
+                bus-range = <0x01 0xff>;
+
+                #address-cells = <3>;
+                #size-cells = <2>;
+                ranges;
+            };
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-ipq8074.yaml b/Bindings/pci/qcom,pcie-ipq8074.yaml
new file mode 100644 (file)
index 0000000..da975f9
--- /dev/null
@@ -0,0 +1,165 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq8074.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm IPQ8074 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-ipq8074
+
+  reg:
+    maxItems: 4
+
+  reg-names:
+    items:
+      - const: dbi
+      - const: elbi
+      - const: parf
+      - const: config
+
+  clocks:
+    maxItems: 5
+
+  clock-names:
+    items:
+      - const: iface # PCIe to SysNOC BIU clock
+      - const: axi_m # AXI Master clock
+      - const: axi_s # AXI Slave clock
+      - const: ahb
+      - const: aux
+
+  interrupts:
+    maxItems: 9
+
+  interrupt-names:
+    items:
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: global
+
+  resets:
+    maxItems: 7
+
+  reset-names:
+    items:
+      - const: pipe
+      - const: sleep
+      - const: sticky # Core sticky reset
+      - const: axi_m # AXI master reset
+      - const: axi_s # AXI slave reset
+      - const: ahb
+      - const: axi_m_sticky # AXI master sticky reset
+
+required:
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-ipq8074.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    pcie@10000000 {
+        compatible = "qcom,pcie-ipq8074";
+        reg = <0x10000000 0xf1d>,
+              <0x10000f20 0xa8>,
+              <0x00088000 0x2000>,
+              <0x10100000 0x1000>;
+        reg-names = "dbi", "elbi", "parf", "config";
+        ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>,   /* I/O */
+                 <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
+
+        device_type = "pci";
+        linux,pci-domain = <1>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+        max-link-speed = <2>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
+                 <&gcc GCC_PCIE1_AXI_M_CLK>,
+                 <&gcc GCC_PCIE1_AXI_S_CLK>,
+                 <&gcc GCC_PCIE1_AHB_CLK>,
+                 <&gcc GCC_PCIE1_AUX_CLK>;
+        clock-names = "iface",
+                      "axi_m",
+                      "axi_s",
+                      "ahb",
+                      "aux";
+
+        interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi0",
+                          "msi1",
+                          "msi2",
+                          "msi3",
+                          "msi4",
+                          "msi5",
+                          "msi6",
+                          "msi7",
+                          "global";
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc 0 GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                        <0 0 0 2 &intc 0 GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                        <0 0 0 3 &intc 0 GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                        <0 0 0 4 &intc 0 GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+        phys = <&pcie_qmp1>;
+        phy-names = "pciephy";
+
+        resets = <&gcc GCC_PCIE1_PIPE_ARES>,
+                 <&gcc GCC_PCIE1_SLEEP_ARES>,
+                 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
+                 <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
+                 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
+                 <&gcc GCC_PCIE1_AHB_ARES>,
+                 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>;
+        reset-names = "pipe",
+                      "sleep",
+                      "sticky",
+                      "axi_m",
+                      "axi_s",
+                      "ahb",
+                      "axi_m_sticky";
+
+        perst-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-ipq9574.yaml b/Bindings/pci/qcom,pcie-ipq9574.yaml
new file mode 100644 (file)
index 0000000..4be342c
--- /dev/null
@@ -0,0 +1,183 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq9574.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm IPQ9574 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - qcom,pcie-ipq9574
+      - items:
+          - enum:
+              - qcom,pcie-ipq5332
+              - qcom,pcie-ipq5424
+          - const: qcom,pcie-ipq9574
+
+  reg:
+    maxItems: 6
+
+  reg-names:
+    items:
+      - const: dbi
+      - const: elbi
+      - const: atu
+      - const: parf
+      - const: config
+      - const: mhi
+
+  clocks:
+    maxItems: 6
+
+  clock-names:
+    items:
+      - const: axi_m # AXI Master clock
+      - const: axi_s # AXI Slave clock
+      - const: axi_bridge
+      - const: rchng
+      - const: ahb
+      - const: aux
+
+  interrupts:
+    minItems: 8
+    maxItems: 9
+
+  interrupt-names:
+    minItems: 8
+    items:
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: global
+
+  resets:
+    maxItems: 8
+
+  reset-names:
+    items:
+      - const: pipe
+      - const: sticky # Core sticky reset
+      - const: axi_s_sticky # AXI Slave Sticky reset
+      - const: axi_s # AXI slave reset
+      - const: axi_m_sticky # AXI Master Sticky reset
+      - const: axi_m # AXI master reset
+      - const: aux
+      - const: ahb
+
+required:
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interconnect/qcom,ipq9574.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/reset/qcom,ipq9574-gcc.h>
+
+    pcie@10000000 {
+        compatible = "qcom,pcie-ipq9574";
+        reg = <0x10000000 0xf1d>,
+              <0x10000f20 0xa8>,
+              <0x10001000 0x1000>,
+              <0x000f8000 0x4000>,
+              <0x10100000 0x1000>,
+              <0x000fe000 0x1000>;
+        reg-names = "dbi",
+                "elbi",
+                "atu",
+                "parf",
+                "config",
+                "mhi";
+        ranges = <0x01000000 0x0 0x00000000 0x10200000 0x0 0x100000>,
+                 <0x02000000 0x0 0x10300000 0x10300000 0x0 0x7d00000>;
+
+        device_type = "pci";
+        linux,pci-domain = <1>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        clocks = <&gcc GCC_PCIE1_AXI_M_CLK>,
+                 <&gcc GCC_PCIE1_AXI_S_CLK>,
+                 <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>,
+                 <&gcc GCC_PCIE1_RCHNG_CLK>,
+                 <&gcc GCC_PCIE1_AHB_CLK>,
+                 <&gcc GCC_PCIE1_AUX_CLK>;
+        clock-names = "axi_m",
+                      "axi_s",
+                      "axi_bridge",
+                      "rchng",
+                      "ahb",
+                      "aux";
+
+        interconnects = <&gcc MASTER_ANOC_PCIE1 &gcc SLAVE_ANOC_PCIE1>,
+                        <&gcc MASTER_SNOC_PCIE1 &gcc SLAVE_SNOC_PCIE1>;
+        interconnect-names = "pcie-mem", "cpu-pcie";
+
+        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi0",
+                          "msi1",
+                          "msi2",
+                          "msi3",
+                          "msi4",
+                          "msi5",
+                          "msi6",
+                          "msi7";
+
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                        <0 0 0 2 &intc 0 GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                        <0 0 0 3 &intc 0 GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
+                        <0 0 0 4 &intc 0 GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+
+        resets = <&gcc GCC_PCIE1_PIPE_ARES>,
+                 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
+                 <&gcc GCC_PCIE1_AXI_S_STICKY_ARES>,
+                 <&gcc GCC_PCIE1_AXI_S_ARES>,
+                 <&gcc GCC_PCIE1_AXI_M_STICKY_ARES>,
+                 <&gcc GCC_PCIE1_AXI_M_ARES>,
+                 <&gcc GCC_PCIE1_AUX_ARES>,
+                 <&gcc GCC_PCIE1_AHB_ARES>;
+        reset-names = "pipe",
+                      "sticky",
+                      "axi_s_sticky",
+                      "axi_s",
+                      "axi_m_sticky",
+                      "axi_m",
+                      "aux",
+                      "ahb";
+
+        phys = <&pcie1_phy>;
+        phy-names = "pciephy";
+
+        perst-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
+        wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
+    };
diff --git a/Bindings/pci/qcom,pcie-msm8996.yaml b/Bindings/pci/qcom,pcie-msm8996.yaml
new file mode 100644 (file)
index 0000000..f2081ae
--- /dev/null
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-msm8996.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm MSM8996 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - qcom,pcie-msm8996
+      - items:
+          - const: qcom,pcie-msm8998
+          - const: qcom,pcie-msm8996
+
+  reg:
+    minItems: 4
+    maxItems: 5
+
+  reg-names:
+    minItems: 4
+    items:
+      - const: parf
+      - const: dbi
+      - const: elbi
+      - const: config
+      - const: mhi
+
+  clocks:
+    maxItems: 5
+
+  clock-names:
+    items:
+      - const: pipe # Pipe Clock driving internal logic
+      - const: aux
+      - const: cfg
+      - const: bus_master # Master AXI clock
+      - const: bus_slave # Slave AXI clock
+
+  interrupts:
+    minItems: 8
+    maxItems: 9
+
+  interrupt-names:
+    minItems: 8
+    items:
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: global
+
+  vdda-supply:
+    description: A phandle to the core analog power supply
+
+  vddpe-3v3-supply:
+    description: A phandle to the PCIe endpoint power supply
+
+required:
+  - power-domains
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-msm8996.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    pcie@600000 {
+        compatible = "qcom,pcie-msm8996";
+        reg = <0x00600000 0x2000>,
+              <0x0c000000 0xf1d>,
+              <0x0c000f20 0xa8>,
+              <0x0c100000 0x100000>;
+        reg-names = "parf", "dbi", "elbi", "config";
+        ranges = <0x01000000 0x0 0x00000000 0x0c200000 0x0 0x100000>,
+                 <0x02000000 0x0 0x0c300000 0x0c300000 0x0 0xd00000>;
+
+        device_type = "pci";
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+        linux,pci-domain = <0>;
+
+        clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                 <&gcc GCC_PCIE_0_AUX_CLK>,
+                 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
+        clock-names = "pipe",
+                     "aux",
+                     "cfg",
+                     "bus_master",
+                     "bus_slave";
+
+        interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi0",
+                          "msi1",
+                          "msi2",
+                          "msi3",
+                          "msi4",
+                          "msi5",
+                          "msi6",
+                          "msi7";
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                        <0 0 0 2 &intc GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                        <0 0 0 3 &intc GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                        <0 0 0 4 &intc GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+        pinctrl-names = "default", "sleep";
+        pinctrl-0 = <&pcie0_state_on>;
+        pinctrl-1 = <&pcie0_state_off>;
+
+        phys = <&pciephy_0>;
+        phy-names = "pciephy";
+
+        power-domains = <&gcc PCIE0_GDSC>;
+
+        perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+        vddpe-3v3-supply = <&wlan_en>;
+        vdda-supply = <&vreg_l28a_0p925>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-qcs404.yaml b/Bindings/pci/qcom,pcie-qcs404.yaml
new file mode 100644 (file)
index 0000000..99b3ed4
--- /dev/null
@@ -0,0 +1,131 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-qcs404.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QCS404 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-qcs404
+
+  reg:
+    maxItems: 4
+
+  reg-names:
+    items:
+      - const: dbi
+      - const: elbi
+      - const: parf
+      - const: config
+
+  clocks:
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: iface # AHB clock
+      - const: aux
+      - const: master_bus # AXI Master clock
+      - const: slave_bus # AXI Slave clock
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-names:
+    items:
+      - const: msi
+
+  resets:
+    maxItems: 6
+
+  reset-names:
+    items:
+      - const: axi_m # AXI Master reset
+      - const: axi_s # AXI Slave reset
+      - const: axi_m_sticky # AXI Master Sticky reset
+      - const: pipe_sticky
+      - const: pwr
+      - const: ahb
+
+required:
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-qcs404.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    pcie@10000000 {
+        compatible = "qcom,pcie-qcs404";
+        reg = <0x10000000 0xf1d>,
+              <0x10000f20 0xa8>,
+              <0x07780000 0x2000>,
+              <0x10001000 0x2000>;
+        reg-names = "dbi", "elbi", "parf", "config";
+        ranges = <0x81000000 0x0 0x00000000 0x10003000 0x0 0x00010000>, /* I/O */
+                 <0x82000000 0x0 0x10013000 0x10013000 0x0 0x007ed000>; /* memory */
+
+        device_type = "pci";
+        linux,pci-domain = <0>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                 <&gcc GCC_PCIE_0_AUX_CLK>,
+                 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
+        clock-names = "iface", "aux", "master_bus", "slave_bus";
+
+        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi";
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                        <0 0 0 2 &intc GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                        <0 0 0 3 &intc GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                        <0 0 0 4 &intc GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+        phys = <&pcie_phy>;
+        phy-names = "pciephy";
+
+        perst-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
+
+        resets = <&gcc GCC_PCIE_0_AXI_MASTER_ARES>,
+                 <&gcc GCC_PCIE_0_AXI_SLAVE_ARES>,
+                 <&gcc GCC_PCIE_0_AXI_MASTER_STICKY_ARES>,
+                 <&gcc GCC_PCIE_0_CORE_STICKY_ARES>,
+                 <&gcc GCC_PCIE_0_BCR>,
+                 <&gcc GCC_PCIE_0_AHB_ARES>;
+        reset-names = "axi_m",
+                      "axi_s",
+                      "axi_m_sticky",
+                      "pipe_sticky",
+                      "pwr",
+                      "ahb";
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-sc8180x.yaml b/Bindings/pci/qcom,pcie-sc8180x.yaml
deleted file mode 100644 (file)
index 6a7c410..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/pci/qcom,pcie-sc8180x.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Qualcomm SC8180x PCI Express Root Complex
-
-maintainers:
-  - Bjorn Andersson <andersson@kernel.org>
-  - Manivannan Sadhasivam <mani@kernel.org>
-
-description:
-  Qualcomm SC8180x SoC PCIe root complex controller is based on the Synopsys
-  DesignWare PCIe IP.
-
-properties:
-  compatible:
-    const: qcom,pcie-sc8180x
-
-  reg:
-    minItems: 5
-    maxItems: 6
-
-  reg-names:
-    minItems: 5
-    items:
-      - const: parf # Qualcomm specific registers
-      - const: dbi # DesignWare PCIe registers
-      - const: elbi # External local bus interface registers
-      - const: atu # ATU address space
-      - const: config # PCIe configuration space
-      - const: mhi # MHI registers
-
-  clocks:
-    minItems: 6
-    maxItems: 6
-
-  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
-
-  interrupts:
-    minItems: 8
-    maxItems: 9
-
-  interrupt-names:
-    minItems: 8
-    items:
-      - const: msi0
-      - const: msi1
-      - const: msi2
-      - const: msi3
-      - const: msi4
-      - const: msi5
-      - const: msi6
-      - const: msi7
-      - const: global
-
-  resets:
-    maxItems: 1
-
-  reset-names:
-    items:
-      - const: pci
-
-allOf:
-  - $ref: qcom,pcie-common.yaml#
-
-unevaluatedProperties: false
-
-examples:
-  - |
-    #include <dt-bindings/clock/qcom,gcc-sc8180x.h>
-    #include <dt-bindings/interconnect/qcom,sc8180x.h>
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-
-    soc {
-        #address-cells = <2>;
-        #size-cells = <2>;
-
-        pcie@1c00000 {
-            compatible = "qcom,pcie-sc8180x";
-            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";
-            ranges = <0x01000000 0x0 0x60200000 0x0 0x60200000 0x0 0x100000>,
-                     <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>;
-
-            bus-range = <0x00 0xff>;
-            device_type = "pci";
-            linux,pci-domain = <0>;
-            num-lanes = <2>;
-
-            #address-cells = <3>;
-            #size-cells = <2>;
-
-            assigned-clocks = <&gcc GCC_PCIE_0_AUX_CLK>;
-            assigned-clock-rates = <19200000>;
-
-            clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
-                     <&gcc GCC_PCIE_0_AUX_CLK>,
-                     <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
-                     <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
-                     <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
-                     <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>;
-            clock-names = "pipe",
-                          "aux",
-                          "cfg",
-                          "bus_master",
-                          "bus_slave",
-                          "slave_q2a";
-
-            dma-coherent;
-
-            interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
-            interrupt-names = "msi0",
-                          "msi1",
-                          "msi2",
-                          "msi3",
-                          "msi4",
-                          "msi5",
-                          "msi6",
-                          "msi7",
-                          "global";
-            #interrupt-cells = <1>;
-            interrupt-map-mask = <0 0 0 0x7>;
-            interrupt-map = <0 0 0 1 &intc 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
-                            <0 0 0 2 &intc 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
-                            <0 0 0 3 &intc 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
-                            <0 0 0 4 &intc 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
-
-            interconnects = <&aggre2_noc MASTER_PCIE 0 &mc_virt SLAVE_EBI_CH0 0>,
-                            <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
-            interconnect-names = "pcie-mem", "cpu-pcie";
-
-            iommu-map = <0x0 &apps_smmu 0x1d80 0x1>,
-                        <0x100 &apps_smmu 0x1d81 0x1>;
-
-            phys = <&pcie0_phy>;
-            phy-names = "pciephy";
-
-            power-domains = <&gcc PCIE_0_GDSC>;
-
-            resets = <&gcc GCC_PCIE_0_BCR>;
-            reset-names = "pci";
-        };
-    };
diff --git a/Bindings/pci/qcom,pcie-sdm845.yaml b/Bindings/pci/qcom,pcie-sdm845.yaml
new file mode 100644 (file)
index 0000000..1ec9e4f
--- /dev/null
@@ -0,0 +1,190 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-sdm845.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDM845 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-sdm845
+
+  reg:
+    minItems: 4
+    maxItems: 5
+
+  reg-names:
+    minItems: 4
+    items:
+      - const: parf
+      - const: dbi
+      - const: elbi
+      - const: config
+      - const: mhi
+
+  clocks:
+    minItems: 7
+    maxItems: 8
+
+  clock-names:
+    minItems: 7
+    items:
+      - const: pipe
+      - const: aux
+      - const: cfg
+      - const: bus_master # Master AXI clock
+      - const: bus_slave # Slave AXI clock
+      - const: slave_q2a
+      - enum: [ ref, tbu ]
+      - const: tbu
+
+  interrupts:
+    minItems: 8
+    maxItems: 9
+
+  interrupt-names:
+    minItems: 8
+    items:
+      - const: msi0
+      - const: msi1
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: global
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: pci
+
+required:
+  - power-domains
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        pcie@1c00000 {
+            compatible = "qcom,pcie-sdm845";
+            reg = <0x0 0x01c00000 0x0 0x2000>,
+                  <0x0 0x60000000 0x0 0xf1d>,
+                  <0x0 0x60000f20 0x0 0xa8>,
+                  <0x0 0x60100000 0x0 0x100000>,
+                  <0x0 0x01c07000 0x0 0x1000>;
+            reg-names = "parf", "dbi", "elbi", "config", "mhi";
+            ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
+                     <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0xd00000>;
+
+            device_type = "pci";
+            linux,pci-domain = <0>;
+            bus-range = <0x00 0xff>;
+            num-lanes = <1>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+
+            clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                     <&gcc GCC_PCIE_0_AUX_CLK>,
+                     <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                     <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                     <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                     <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+                     <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+            clock-names = "pipe",
+                          "aux",
+                          "cfg",
+                          "bus_master",
+                          "bus_slave",
+                          "slave_q2a",
+                          "tbu";
+
+            interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "msi0",
+                              "msi1",
+                              "msi2",
+                              "msi3",
+                              "msi4",
+                              "msi5",
+                              "msi6",
+                              "msi7",
+                              "global";
+            #interrupt-cells = <1>;
+            interrupt-map-mask = <0 0 0 0x7>;
+            interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                            <0 0 0 2 &intc 0 0 GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                            <0 0 0 3 &intc 0 0 GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                            <0 0 0 4 &intc 0 0 GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+            iommu-map = <0x0 &apps_smmu 0x1c10 0x1>,
+                        <0x100 &apps_smmu 0x1c11 0x1>,
+                        <0x200 &apps_smmu 0x1c12 0x1>,
+                        <0x300 &apps_smmu 0x1c13 0x1>,
+                        <0x400 &apps_smmu 0x1c14 0x1>,
+                        <0x500 &apps_smmu 0x1c15 0x1>,
+                        <0x600 &apps_smmu 0x1c16 0x1>,
+                        <0x700 &apps_smmu 0x1c17 0x1>,
+                        <0x800 &apps_smmu 0x1c18 0x1>,
+                        <0x900 &apps_smmu 0x1c19 0x1>,
+                        <0xa00 &apps_smmu 0x1c1a 0x1>,
+                        <0xb00 &apps_smmu 0x1c1b 0x1>,
+                        <0xc00 &apps_smmu 0x1c1c 0x1>,
+                        <0xd00 &apps_smmu 0x1c1d 0x1>,
+                        <0xe00 &apps_smmu 0x1c1e 0x1>,
+                        <0xf00 &apps_smmu 0x1c1f 0x1>;
+
+            power-domains = <&gcc PCIE_0_GDSC>;
+
+            phys = <&pcie0_phy>;
+            phy-names = "pciephy";
+
+            resets = <&gcc GCC_PCIE_0_BCR>;
+            reset-names = "pci";
+
+            perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+            wake-gpios = <&tlmm 134 GPIO_ACTIVE_HIGH>;
+
+            vddpe-3v3-supply = <&pcie0_3p3v_dual>;
+
+            pcie@0 {
+                device_type = "pci";
+                reg = <0x0 0x0 0x0 0x0 0x0>;
+                bus-range = <0x01 0xff>;
+
+                #address-cells = <3>;
+                #size-cells = <2>;
+                ranges;
+            };
+        };
+    };
diff --git a/Bindings/pci/qcom,pcie-sdx55.yaml b/Bindings/pci/qcom,pcie-sdx55.yaml
new file mode 100644 (file)
index 0000000..7f6fd81
--- /dev/null
@@ -0,0 +1,172 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-sdx55.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDX55 PCI Express Root Complex
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - qcom,pcie-sdx55
+
+  reg:
+    minItems: 5
+    maxItems: 6
+
+  reg-names:
+    minItems: 5
+    items:
+      - const: parf
+      - const: dbi
+      - const: elbi
+      - const: atu
+      - const: config
+      - const: mhi
+
+  clocks:
+    maxItems: 7
+
+  clock-names:
+    items:
+      - const: pipe
+      - const: aux
+      - const: cfg
+      - const: bus_master # Master AXI clock
+      - const: bus_slave # Slave AXI clock
+      - const: slave_q2a
+      - const: sleep
+
+  interrupts:
+    maxItems: 8
+
+  interrupt-names:
+    items:
+      - const: msi
+      - const: msi2
+      - const: msi3
+      - const: msi4
+      - const: msi5
+      - const: msi6
+      - const: msi7
+      - const: msi8
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: pci
+
+required:
+  - power-domains
+  - resets
+  - reset-names
+
+allOf:
+  - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-sdx55.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    pcie@1c00000 {
+        compatible = "qcom,pcie-sdx55";
+        reg = <0x01c00000 0x3000>,
+              <0x40000000 0xf1d>,
+              <0x40000f20 0xc8>,
+              <0x40001000 0x1000>,
+              <0x40100000 0x100000>;
+        reg-names = "parf",
+                    "dbi",
+                    "elbi",
+                    "atu",
+                    "config";
+        ranges = <0x01000000 0x0 0x00000000 0x40200000 0x0 0x100000>,
+                 <0x02000000 0x0 0x40300000 0x40300000 0x0 0x3fd00000>;
+
+        device_type = "pci";
+        linux,pci-domain = <0>;
+        bus-range = <0x00 0xff>;
+        num-lanes = <1>;
+
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "msi",
+                          "msi2",
+                          "msi3",
+                          "msi4",
+                          "msi5",
+                          "msi6",
+                          "msi7",
+                          "msi8";
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0 0 0 0x7>;
+        interrupt-map = <0 0 0 1 &intc GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                        <0 0 0 2 &intc GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                        <0 0 0 3 &intc GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                        <0 0 0 4 &intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+        clocks = <&gcc GCC_PCIE_PIPE_CLK>,
+                 <&gcc GCC_PCIE_AUX_CLK>,
+                 <&gcc GCC_PCIE_CFG_AHB_CLK>,
+                 <&gcc GCC_PCIE_MSTR_AXI_CLK>,
+                 <&gcc GCC_PCIE_SLV_AXI_CLK>,
+                 <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
+                 <&gcc GCC_PCIE_SLEEP_CLK>;
+        clock-names = "pipe",
+                      "aux",
+                      "cfg",
+                      "bus_master",
+                      "bus_slave",
+                      "slave_q2a",
+                      "sleep";
+
+        assigned-clocks = <&gcc GCC_PCIE_AUX_CLK>;
+        assigned-clock-rates = <19200000>;
+
+        iommu-map = <0x0 &apps_smmu 0x0200 0x1>,
+                    <0x100 &apps_smmu 0x0201 0x1>,
+                    <0x200 &apps_smmu 0x0202 0x1>,
+                    <0x300 &apps_smmu 0x0203 0x1>,
+                    <0x400 &apps_smmu 0x0204 0x1>;
+
+        power-domains = <&gcc PCIE_GDSC>;
+
+        phys = <&pcie_phy>;
+        phy-names = "pciephy";
+
+        resets = <&gcc GCC_PCIE_BCR>;
+        reset-names = "pci";
+
+        perst-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
+        wake-gpios = <&tlmm 53 GPIO_ACTIVE_HIGH>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            bus-range = <0x01 0xff>;
+
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+        };
+    };
index 6a5421e4f19d41d953ac71091ba7054c5cd3809e..ea29d0900a25c1cbd744f77c41deda52b8cc15b7 100644 (file)
@@ -17,6 +17,7 @@ description:
 properties:
   compatible:
     oneOf:
+      - const: qcom,pcie-sc8180x
       - const: qcom,pcie-sm8150
       - items:
           - enum:
index 62c674ca0cf74530cef10624750434f08477a13f..3d3b9f309a7386fa50ada09a385ba48a3d1423c7 100644 (file)
@@ -16,7 +16,12 @@ description:
 
 properties:
   compatible:
-    const: qcom,pcie-x1e80100
+    oneOf:
+      - const: qcom,pcie-x1e80100
+      - items:
+          - enum:
+              - qcom,glymur-pcie
+          - const: qcom,pcie-x1e80100
 
   reg:
     minItems: 6
diff --git a/Bindings/pci/qcom,pcie.yaml b/Bindings/pci/qcom,pcie.yaml
deleted file mode 100644 (file)
index c619304..0000000
+++ /dev/null
@@ -1,782 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Qualcomm PCI express root complex
-
-maintainers:
-  - Bjorn Andersson <bjorn.andersson@linaro.org>
-  - Manivannan Sadhasivam <mani@kernel.org>
-
-description: |
-  Qualcomm PCIe root complex controller is based on the Synopsys DesignWare
-  PCIe IP.
-
-properties:
-  compatible:
-    oneOf:
-      - enum:
-          - qcom,pcie-apq8064
-          - qcom,pcie-apq8084
-          - qcom,pcie-ipq4019
-          - qcom,pcie-ipq5018
-          - qcom,pcie-ipq6018
-          - qcom,pcie-ipq8064
-          - qcom,pcie-ipq8064-v2
-          - qcom,pcie-ipq8074
-          - qcom,pcie-ipq8074-gen3
-          - qcom,pcie-ipq9574
-          - qcom,pcie-msm8996
-          - qcom,pcie-qcs404
-          - qcom,pcie-sdm845
-          - qcom,pcie-sdx55
-      - items:
-          - enum:
-              - qcom,pcie-ipq5332
-              - qcom,pcie-ipq5424
-          - const: qcom,pcie-ipq9574
-      - items:
-          - const: qcom,pcie-msm8998
-          - const: qcom,pcie-msm8996
-
-  reg:
-    minItems: 4
-    maxItems: 6
-
-  reg-names:
-    minItems: 4
-    maxItems: 6
-
-  interrupts:
-    minItems: 1
-    maxItems: 9
-
-  interrupt-names:
-    minItems: 1
-    maxItems: 9
-
-  iommu-map:
-    minItems: 1
-    maxItems: 16
-
-  # Common definitions for clocks, clock-names and reset.
-  # Platform constraints are described later.
-  clocks:
-    minItems: 3
-    maxItems: 13
-
-  clock-names:
-    minItems: 3
-    maxItems: 13
-
-  dma-coherent: true
-
-  interconnects:
-    maxItems: 2
-
-  interconnect-names:
-    items:
-      - const: pcie-mem
-      - const: cpu-pcie
-
-  resets:
-    minItems: 1
-    maxItems: 12
-
-  reset-names:
-    minItems: 1
-    maxItems: 12
-
-  vdda-supply:
-    description: A phandle to the core analog power supply
-
-  vdda_phy-supply:
-    description: A phandle to the core analog power supply for PHY
-
-  vdda_refclk-supply:
-    description: A phandle to the core analog power supply for IC which generates reference clock
-
-  vddpe-3v3-supply:
-    description: A phandle to the PCIe endpoint power supply
-
-  phys:
-    maxItems: 1
-
-  phy-names:
-    items:
-      - const: pciephy
-
-  power-domains:
-    maxItems: 1
-
-  perst-gpios:
-    description: GPIO controlled connection to PERST# signal
-    maxItems: 1
-
-  required-opps:
-    maxItems: 1
-
-  wake-gpios:
-    description: GPIO controlled connection to WAKE# signal
-    maxItems: 1
-
-required:
-  - compatible
-  - reg
-  - reg-names
-  - interrupt-map-mask
-  - interrupt-map
-  - clocks
-  - clock-names
-
-anyOf:
-  - required:
-      - interrupts
-      - interrupt-names
-      - "#interrupt-cells"
-  - required:
-      - msi-map
-
-allOf:
-  - $ref: /schemas/pci/pci-host-bridge.yaml#
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-apq8064
-              - qcom,pcie-ipq4019
-              - qcom,pcie-ipq8064
-              - qcom,pcie-ipq8064v2
-              - qcom,pcie-ipq8074
-              - qcom,pcie-qcs404
-    then:
-      properties:
-        reg:
-          minItems: 4
-          maxItems: 4
-        reg-names:
-          items:
-            - const: dbi # DesignWare PCIe registers
-            - const: elbi # External local bus interface registers
-            - const: parf # Qualcomm specific registers
-            - const: config # PCIe configuration space
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq5018
-              - qcom,pcie-ipq6018
-              - qcom,pcie-ipq8074-gen3
-              - qcom,pcie-ipq9574
-    then:
-      properties:
-        reg:
-          minItems: 5
-          maxItems: 6
-        reg-names:
-          minItems: 5
-          items:
-            - const: dbi # DesignWare PCIe registers
-            - const: elbi # External local bus interface registers
-            - const: atu # ATU address space
-            - const: parf # Qualcomm specific registers
-            - const: config # PCIe configuration space
-            - const: mhi # MHI registers
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-apq8084
-              - qcom,pcie-msm8996
-              - qcom,pcie-sdm845
-    then:
-      properties:
-        reg:
-          minItems: 4
-          maxItems: 5
-        reg-names:
-          minItems: 4
-          items:
-            - const: parf # Qualcomm specific registers
-            - const: dbi # DesignWare PCIe registers
-            - const: elbi # External local bus interface registers
-            - const: config # PCIe configuration space
-            - const: mhi # MHI registers
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-sdx55
-    then:
-      properties:
-        reg:
-          minItems: 5
-          maxItems: 6
-        reg-names:
-          minItems: 5
-          items:
-            - const: parf # Qualcomm specific registers
-            - const: dbi # DesignWare PCIe registers
-            - const: elbi # External local bus interface registers
-            - const: atu # ATU address space
-            - const: config # PCIe configuration space
-            - const: mhi # MHI registers
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-apq8064
-              - qcom,pcie-ipq8064
-              - qcom,pcie-ipq8064v2
-    then:
-      properties:
-        clocks:
-          minItems: 3
-          maxItems: 5
-        clock-names:
-          minItems: 3
-          items:
-            - const: core # Clocks the pcie hw block
-            - const: iface # Configuration AHB clock
-            - const: phy # Clocks the pcie PHY block
-            - const: aux # Clocks the pcie AUX block, not on apq8064
-            - const: ref # Clocks the pcie ref block, not on apq8064
-        resets:
-          minItems: 5
-          maxItems: 6
-        reset-names:
-          minItems: 5
-          items:
-            - const: axi # AXI reset
-            - const: ahb # AHB reset
-            - const: por # POR reset
-            - const: pci # PCI reset
-            - const: phy # PHY reset
-            - const: ext # EXT reset, not on apq8064
-      required:
-        - vdda-supply
-        - vdda_phy-supply
-        - vdda_refclk-supply
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-apq8084
-    then:
-      properties:
-        clocks:
-          minItems: 4
-          maxItems: 4
-        clock-names:
-          items:
-            - const: iface # Configuration AHB clock
-            - const: master_bus # Master AXI clock
-            - const: slave_bus # Slave AXI clock
-            - const: aux # Auxiliary (AUX) clock
-        resets:
-          maxItems: 1
-        reset-names:
-          items:
-            - const: core # Core reset
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq4019
-    then:
-      properties:
-        clocks:
-          minItems: 3
-          maxItems: 3
-        clock-names:
-          items:
-            - const: aux # Auxiliary (AUX) clock
-            - const: master_bus # Master AXI clock
-            - const: slave_bus # Slave AXI clock
-        resets:
-          minItems: 12
-          maxItems: 12
-        reset-names:
-          items:
-            - const: axi_m # AXI master reset
-            - const: axi_s # AXI slave reset
-            - const: pipe # PIPE reset
-            - const: axi_m_vmid # VMID reset
-            - const: axi_s_xpu # XPU reset
-            - const: parf # PARF reset
-            - const: phy # PHY reset
-            - const: axi_m_sticky # AXI sticky reset
-            - const: pipe_sticky # PIPE sticky reset
-            - const: pwr # PWR reset
-            - const: ahb # AHB reset
-            - const: phy_ahb # PHY AHB reset
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq5018
-    then:
-      properties:
-        clocks:
-          minItems: 6
-          maxItems: 6
-        clock-names:
-          items:
-            - const: iface # PCIe to SysNOC BIU clock
-            - const: axi_m # AXI Master clock
-            - const: axi_s # AXI Slave clock
-            - const: ahb # AHB clock
-            - const: aux # Auxiliary clock
-            - const: axi_bridge # AXI bridge clock
-        resets:
-          minItems: 8
-          maxItems: 8
-        reset-names:
-          items:
-            - const: pipe # PIPE reset
-            - const: sleep # Sleep reset
-            - const: sticky # Core sticky reset
-            - const: axi_m # AXI master reset
-            - const: axi_s # AXI slave reset
-            - const: ahb # AHB reset
-            - const: axi_m_sticky # AXI master sticky reset
-            - const: axi_s_sticky # AXI slave sticky reset
-        interrupts:
-          minItems: 9
-          maxItems: 9
-        interrupt-names:
-          items:
-            - const: msi0
-            - const: msi1
-            - const: msi2
-            - const: msi3
-            - const: msi4
-            - const: msi5
-            - const: msi6
-            - const: msi7
-            - const: global
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-msm8996
-    then:
-      properties:
-        clocks:
-          minItems: 5
-          maxItems: 5
-        clock-names:
-          items:
-            - const: pipe # Pipe Clock driving internal logic
-            - const: aux # Auxiliary (AUX) clock
-            - const: cfg # Configuration clock
-            - const: bus_master # Master AXI clock
-            - const: bus_slave # Slave AXI clock
-        resets: false
-        reset-names: false
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq8074
-    then:
-      properties:
-        clocks:
-          minItems: 5
-          maxItems: 5
-        clock-names:
-          items:
-            - const: iface # PCIe to SysNOC BIU clock
-            - const: axi_m # AXI Master clock
-            - const: axi_s # AXI Slave clock
-            - const: ahb # AHB clock
-            - const: aux # Auxiliary clock
-        resets:
-          minItems: 7
-          maxItems: 7
-        reset-names:
-          items:
-            - const: pipe # PIPE reset
-            - const: sleep # Sleep reset
-            - const: sticky # Core Sticky reset
-            - const: axi_m # AXI Master reset
-            - const: axi_s # AXI Slave reset
-            - const: ahb # AHB Reset
-            - const: axi_m_sticky # AXI Master Sticky reset
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq6018
-              - qcom,pcie-ipq8074-gen3
-    then:
-      properties:
-        clocks:
-          minItems: 5
-          maxItems: 5
-        clock-names:
-          items:
-            - const: iface # PCIe to SysNOC BIU clock
-            - const: axi_m # AXI Master clock
-            - const: axi_s # AXI Slave clock
-            - const: axi_bridge # AXI bridge clock
-            - const: rchng
-        resets:
-          minItems: 8
-          maxItems: 8
-        reset-names:
-          items:
-            - const: pipe # PIPE reset
-            - const: sleep # Sleep reset
-            - const: sticky # Core Sticky reset
-            - const: axi_m # AXI Master reset
-            - const: axi_s # AXI Slave reset
-            - const: ahb # AHB Reset
-            - const: axi_m_sticky # AXI Master Sticky reset
-            - const: axi_s_sticky # AXI Slave Sticky reset
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq9574
-    then:
-      properties:
-        clocks:
-          minItems: 6
-          maxItems: 6
-        clock-names:
-          items:
-            - const: axi_m # AXI Master clock
-            - const: axi_s # AXI Slave clock
-            - const: axi_bridge
-            - const: rchng
-            - const: ahb
-            - const: aux
-
-        resets:
-          minItems: 8
-          maxItems: 8
-        reset-names:
-          items:
-            - const: pipe # PIPE reset
-            - const: sticky # Core Sticky reset
-            - const: axi_s_sticky # AXI Slave Sticky reset
-            - const: axi_s # AXI Slave reset
-            - const: axi_m_sticky # AXI Master Sticky reset
-            - const: axi_m # AXI Master reset
-            - const: aux # AUX Reset
-            - const: ahb # AHB Reset
-
-        interrupts:
-          minItems: 8
-        interrupt-names:
-          minItems: 8
-          items:
-            - const: msi0
-            - const: msi1
-            - const: msi2
-            - const: msi3
-            - const: msi4
-            - const: msi5
-            - const: msi6
-            - const: msi7
-            - const: global
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-qcs404
-    then:
-      properties:
-        clocks:
-          minItems: 4
-          maxItems: 4
-        clock-names:
-          items:
-            - const: iface # AHB clock
-            - const: aux # Auxiliary clock
-            - const: master_bus # AXI Master clock
-            - const: slave_bus # AXI Slave clock
-        resets:
-          minItems: 6
-          maxItems: 6
-        reset-names:
-          items:
-            - const: axi_m # AXI Master reset
-            - const: axi_s # AXI Slave reset
-            - const: axi_m_sticky # AXI Master Sticky reset
-            - const: pipe_sticky # PIPE sticky reset
-            - const: pwr # PWR reset
-            - const: ahb # AHB reset
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-sdm845
-    then:
-      oneOf:
-          # Unfortunately the "optional" ref clock is used in the middle of the list
-        - 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
-        - properties:
-            clocks:
-              minItems: 7
-              maxItems: 7
-            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
-      properties:
-        resets:
-          maxItems: 1
-        reset-names:
-          items:
-            - const: pci # PCIe core reset
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-sdx55
-    then:
-      properties:
-        clocks:
-          minItems: 7
-          maxItems: 7
-        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: sleep # PCIe Sleep clock
-        resets:
-          maxItems: 1
-        reset-names:
-          items:
-            - const: pci # PCIe core reset
-
-  - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              enum:
-                - qcom,pcie-apq8064
-                - qcom,pcie-ipq4019
-                - qcom,pcie-ipq5018
-                - qcom,pcie-ipq8064
-                - qcom,pcie-ipq8064v2
-                - qcom,pcie-ipq8074
-                - qcom,pcie-ipq8074-gen3
-                - qcom,pcie-ipq9574
-                - qcom,pcie-qcs404
-    then:
-      required:
-        - power-domains
-
-  - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              enum:
-                - qcom,pcie-msm8996
-    then:
-      required:
-        - resets
-        - reset-names
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-ipq6018
-              - qcom,pcie-ipq8074
-              - qcom,pcie-ipq8074-gen3
-              - qcom,pcie-msm8996
-              - qcom,pcie-msm8998
-              - qcom,pcie-sdm845
-    then:
-      oneOf:
-        - properties:
-            interrupts:
-              maxItems: 1
-            interrupt-names:
-              items:
-                - const: msi
-        - properties:
-            interrupts:
-              minItems: 8
-              maxItems: 9
-            interrupt-names:
-              minItems: 8
-              items:
-                - const: msi0
-                - const: msi1
-                - const: msi2
-                - const: msi3
-                - const: msi4
-                - const: msi5
-                - const: msi6
-                - const: msi7
-                - const: global
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,pcie-apq8064
-              - qcom,pcie-apq8084
-              - qcom,pcie-ipq4019
-              - qcom,pcie-ipq8064
-              - qcom,pcie-ipq8064-v2
-              - qcom,pcie-qcs404
-    then:
-      properties:
-        interrupts:
-          maxItems: 1
-        interrupt-names:
-          items:
-            - const: msi
-
-unevaluatedProperties: false
-
-examples:
-  - |
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-    pcie@1b500000 {
-      compatible = "qcom,pcie-ipq8064";
-      reg = <0x1b500000 0x1000>,
-            <0x1b502000 0x80>,
-            <0x1b600000 0x100>,
-            <0x0ff00000 0x100000>;
-      reg-names = "dbi", "elbi", "parf", "config";
-      device_type = "pci";
-      linux,pci-domain = <0>;
-      bus-range = <0x00 0xff>;
-      num-lanes = <1>;
-      #address-cells = <3>;
-      #size-cells = <2>;
-      ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000>,
-               <0x82000000 0 0 0x08000000 0 0x07e00000>;
-      interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
-      interrupt-names = "msi";
-      #interrupt-cells = <1>;
-      interrupt-map-mask = <0 0 0 0x7>;
-      interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>,
-                      <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>,
-                      <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>,
-                      <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>;
-      clocks = <&gcc 41>,
-               <&gcc 43>,
-               <&gcc 44>,
-               <&gcc 42>,
-               <&gcc 248>;
-      clock-names = "core", "iface", "phy", "aux", "ref";
-      resets = <&gcc 27>,
-               <&gcc 26>,
-               <&gcc 25>,
-               <&gcc 24>,
-               <&gcc 23>,
-               <&gcc 22>;
-      reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
-      pinctrl-0 = <&pcie_pins_default>;
-      pinctrl-names = "default";
-      vdda-supply = <&pm8921_s3>;
-      vdda_phy-supply = <&pm8921_lvs6>;
-      vdda_refclk-supply = <&ext_3p3v>;
-    };
-  - |
-    #include <dt-bindings/interrupt-controller/arm-gic.h>
-    #include <dt-bindings/gpio/gpio.h>
-    pcie@fc520000 {
-      compatible = "qcom,pcie-apq8084";
-      reg = <0xfc520000 0x2000>,
-            <0xff000000 0x1000>,
-            <0xff001000 0x1000>,
-            <0xff002000 0x2000>;
-      reg-names = "parf", "dbi", "elbi", "config";
-      device_type = "pci";
-      linux,pci-domain = <0>;
-      bus-range = <0x00 0xff>;
-      num-lanes = <1>;
-      #address-cells = <3>;
-      #size-cells = <2>;
-      ranges = <0x81000000 0 0          0xff200000 0 0x00100000>,
-               <0x82000000 0 0x00300000 0xff300000 0 0x00d00000>;
-      interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
-      interrupt-names = "msi";
-      #interrupt-cells = <1>;
-      interrupt-map-mask = <0 0 0 0x7>;
-      interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>,
-                      <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>,
-                      <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>,
-                      <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>;
-      clocks = <&gcc 324>,
-               <&gcc 325>,
-               <&gcc 327>,
-               <&gcc 323>;
-      clock-names = "iface", "master_bus", "slave_bus", "aux";
-      resets = <&gcc 81>;
-      reset-names = "core";
-      power-domains = <&gcc 1>;
-      vdda-supply = <&pma8084_l3>;
-      phys = <&pciephy0>;
-      phy-names = "pciephy";
-      perst-gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
-      pinctrl-0 = <&pcie0_pins_default>;
-      pinctrl-names = "default";
-    };
-...
diff --git a/Bindings/pci/qcom,sa8255p-pcie-ep.yaml b/Bindings/pci/qcom,sa8255p-pcie-ep.yaml
new file mode 100644 (file)
index 0000000..e338797
--- /dev/null
@@ -0,0 +1,110 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,sa8255p-pcie-ep.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm firmware managed PCIe Endpoint Controller
+
+description:
+  Qualcomm SA8255p SoC PCIe endpoint controller is based on the Synopsys
+  DesignWare PCIe IP which is managed by firmware.
+
+maintainers:
+  - Manivannan Sadhasivam <mani@kernel.org>
+
+properties:
+  compatible:
+    const: qcom,sa8255p-pcie-ep
+
+  reg:
+    items:
+      - description: Qualcomm-specific PARF configuration registers
+      - description: DesignWare PCIe registers
+      - description: External local bus interface registers
+      - description: Address Translation Unit (ATU) registers
+      - description: Memory region used to map remote RC address space
+      - description: BAR memory region
+      - description: DMA register space
+
+  reg-names:
+    items:
+      - const: parf
+      - const: dbi
+      - const: elbi
+      - const: atu
+      - const: addr_space
+      - const: mmio
+      - const: dma
+
+  interrupts:
+    items:
+      - description: PCIe Global interrupt
+      - description: PCIe Doorbell interrupt
+      - description: DMA interrupt
+
+  interrupt-names:
+    items:
+      - const: global
+      - const: doorbell
+      - const: dma
+
+  iommus:
+    maxItems: 1
+
+  reset-gpios:
+    description: GPIO used as PERST# input signal
+    maxItems: 1
+
+  wake-gpios:
+    description: GPIO used as WAKE# output signal
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  dma-coherent: true
+
+  num-lanes:
+    default: 2
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - interrupt-names
+  - reset-gpios
+  - power-domains
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+        pcie1_ep: pcie-ep@1c10000 {
+            compatible = "qcom,sa8255p-pcie-ep";
+            reg = <0x0 0x01c10000 0x0 0x3000>,
+                  <0x0 0x60000000 0x0 0xf20>,
+                  <0x0 0x60000f20 0x0 0xa8>,
+                  <0x0 0x60001000 0x0 0x4000>,
+                  <0x0 0x60200000 0x0 0x100000>,
+                  <0x0 0x01c13000 0x0 0x1000>,
+                  <0x0 0x60005000 0x0 0x2000>;
+            reg-names = "parf", "dbi", "elbi", "atu", "addr_space", "mmio", "dma";
+            interrupts = <GIC_SPI 518 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "global", "doorbell", "dma";
+            reset-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
+            wake-gpios = <&tlmm 5 GPIO_ACTIVE_LOW>;
+            dma-coherent;
+            iommus = <&pcie_smmu 0x80 0x7f>;
+            power-domains = <&scmi6_pd 1>;
+            num-lanes = <4>;
+        };
+    };
index 6339a76499b21affbc6d16da19c47cbaba9f0f56..2c4dc04f9984f3bf752f736e8fe6ab70e85b693d 100644 (file)
@@ -105,6 +105,12 @@ properties:
             define it with this name (for instance pipe, core and aux can
             be connected to a single source of the periodic signal).
           const: ref
+        - description:
+            Some dwc wrappers (like i.MX95 PCIes) have two reference clock
+            inputs, one from an internal PLL, the other from an off-chip crystal
+            oscillator. If present, 'extref' refers to a reference clock from
+            an external oscillator.
+          const: extref
         - description:
             Clock for the PHY registers interface. Originally this is
             a PHY-viewport-based interface, but some platform may have
index c07b0ed5161372bc9e4363557ad57809d8ae2e18..8a2f1eef51bddcb12d9608790b6d710e5beeecef 100644 (file)
@@ -51,7 +51,7 @@ properties:
   phy-names:
     const: pcie-phy
 
-  interrupt-controller:
+  legacy-interrupt-controller:
     type: object
     additionalProperties: false
 
@@ -111,7 +111,7 @@ examples:
                         <0 0 0  3  &pcie_intc 2>,
                         <0 0 0  4  &pcie_intc 3>;
 
-        pcie_intc: interrupt-controller {
+        pcie_intc: legacy-interrupt-controller {
             #address-cells = <0>;
             interrupt-controller;
             #interrupt-cells = <1>;
diff --git a/Bindings/phy/apple,atcphy.yaml b/Bindings/phy/apple,atcphy.yaml
new file mode 100644 (file)
index 0000000..0acac7e
--- /dev/null
@@ -0,0 +1,222 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/apple,atcphy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple Type-C PHY (ATCPHY)
+
+maintainers:
+  - Sven Peter <sven@kernel.org>
+
+description: >
+  The Apple Type-C PHY (ATCPHY) is a combined PHY for USB 2.0, USB 3.x,
+  USB4/Thunderbolt, and DisplayPort connectivity via Type-C ports found in
+  Apple Silicon SoCs.
+
+  The PHY handles muxing between these different protocols and also provides the
+  reset controller for the attached DWC3 USB controller.
+
+  It is designed for USB4 operation and does not handle individual differential
+  pairs as distinct DisplayPort lanes. Any reference to lane in this binding
+  hence refers to two differential pairs (RX and TX) as used in USB terminology.
+
+  In order to correctly setup these lanes for the various modes calibration
+  values copied from Apple's firmware and converted to the format described
+  below by our bootloader m1n1 are required. Without these only USB2 operation
+  is possible.
+
+allOf:
+  - $ref: /schemas/usb/usb-switch.yaml#
+
+$defs:
+  apple,tunable:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    items:
+      items:
+        - description: Register offset
+        - description: Mask to be applied to the register value
+        - description: Bits to be set after applying the mask
+    description: >
+      List of (register offset, mask, value) tuples copied from Apple's Device
+      Tree by our bootloader m1n1 and used to configure the PHY. These values
+      even vary for a single product/device and likely contain calibration
+      values determined by Apple at manufacturing time.
+      Unless otherwise noted these tunables are always applied to the core
+      register region.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - apple,t6000-atcphy
+              - apple,t6020-atcphy
+              - apple,t8112-atcphy
+          - const: apple,t8103-atcphy
+      - const: apple,t8103-atcphy
+
+  reg:
+    items:
+      - description: Common controls for all PHYs (USB2/3/4, DisplayPort, TBT)
+      - description: DisplayPort Alternate Mode PHY specific controls
+      - description: Type-C PHY AXI to Apple Fabric interconnect controls
+      - description: USB2 PHY specific controls
+      - description: USB3 PIPE interface controls
+
+  reg-names:
+    items:
+      - const: core
+      - const: lpdptx
+      - const: axi2af
+      - const: usb2phy
+      - const: pipehandler
+
+  "#phy-cells":
+    const: 1
+
+  "#reset-cells":
+    const: 0
+
+  mode-switch: true
+  orientation-switch: true
+
+  power-domains:
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Outgoing connection to the SS port of the Type-C connector.
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Incoming endpoint from the USB3 controller.
+
+      port@2:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Incoming endpoint from the DisplayPort controller.
+
+      port@3:
+        $ref: /schemas/graph.yaml#/properties/port
+        description: Incoming endpoint from the USB4/Thunderbolt controller.
+
+  apple,tunable-common-a:
+    $ref: "#/$defs/apple,tunable"
+    description: >
+      Common tunables required for all modes, applied before tunable-axi2af.
+
+  apple,tunable-axi2af:
+    $ref: "#/$defs/apple,tunable"
+    description: >
+      AXI to Apple Fabric tunables, required for all modes. Unlike all other
+      tunables these are applied to the axi2af region.
+
+  apple,tunable-common-b:
+    $ref: "#/$defs/apple,tunable"
+    description: >
+      Common tunables required for all modes, applied after tunable-axi2af.
+
+  apple,tunable-lane0-usb:
+    $ref: "#/$defs/apple,tunable"
+    description: USB3 tunables for lane 0.
+
+  apple,tunable-lane1-usb:
+    $ref: "#/$defs/apple,tunable"
+    description: USB3 tunables for lane 1.
+
+  apple,tunable-lane0-cio:
+    $ref: "#/$defs/apple,tunable"
+    description: USB4/Thunderbolt ("Converged IO") tunables for lane 0.
+
+  apple,tunable-lane1-cio:
+    $ref: "#/$defs/apple,tunable"
+    description: USB4/Thunderbolt ("Converged IO") tunables for lane 1.
+
+  apple,tunable-lane0-dp:
+    $ref: "#/$defs/apple,tunable"
+    description: >
+      DisplayPort tunables for lane 0.
+
+      Note that lane here refers to a USB RX and TX pair re-used for DisplayPort
+      and not to an individual DisplayPort differential lane.
+
+  apple,tunable-lane1-dp:
+    $ref: "#/$defs/apple,tunable"
+    description: >
+      DisplayPort tunables for lane 1.
+
+      Note that lane here refers to a USB RX and TX pair re-used for DisplayPort
+      and not to an individual DisplayPort differential lane.
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - "#phy-cells"
+  - "#reset-cells"
+  - orientation-switch
+  - mode-switch
+  - power-domains
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    phy@83000000 {
+      compatible = "apple,t8103-atcphy";
+      reg = <0x83000000 0x4c000>,
+            <0x83050000 0x8000>,
+            <0x80000000 0x4000>,
+            <0x82a90000 0x4000>,
+            <0x82a84000 0x4000>;
+      reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                  "pipehandler";
+
+      #phy-cells = <1>;
+      #reset-cells = <0>;
+
+      orientation-switch;
+      mode-switch;
+      power-domains = <&ps_atc0_usb>;
+
+      ports {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        port@0 {
+          reg = <0>;
+
+          endpoint {
+            remote-endpoint = <&typec_connector_ss>;
+          };
+        };
+
+        port@1 {
+          reg = <1>;
+
+          endpoint {
+            remote-endpoint = <&dwc3_ss_out>;
+          };
+        };
+
+        port@2 {
+          reg = <2>;
+
+          endpoint {
+            remote-endpoint = <&dcp_dp_out>;
+          };
+        };
+
+        port@3 {
+          reg = <3>;
+
+          endpoint {
+            remote-endpoint = <&acio_tbt_out>;
+          };
+        };
+      };
+    };
index ff9f9ca0f19ccd55e4b86bfa6c64dd866b194757..e96229c2f8fb738c761c5ef9e5673799057050f3 100644 (file)
@@ -20,6 +20,32 @@ properties:
   "#phy-cells":
     const: 1
 
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^phy@[0-7]$":
+    type: object
+    description: SerDes lane (single RX/TX differential pair)
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 7
+        description: Lane index as seen in register map
+
+      "#phy-cells":
+        const: 0
+
+    required:
+      - reg
+      - "#phy-cells"
+
+    additionalProperties: false
+
 required:
   - compatible
   - reg
@@ -32,9 +58,52 @@ examples:
     soc {
       #address-cells = <2>;
       #size-cells = <2>;
-      serdes_1: phy@1ea0000 {
+
+      serdes@1ea0000 {
         compatible = "fsl,lynx-28g";
         reg = <0x0 0x1ea0000 0x0 0x1e30>;
+        #address-cells = <1>;
+        #size-cells = <0>;
         #phy-cells = <1>;
+
+        phy@0 {
+          reg = <0>;
+          #phy-cells = <0>;
+        };
+
+        phy@1 {
+          reg = <1>;
+          #phy-cells = <0>;
+        };
+
+        phy@2 {
+          reg = <2>;
+          #phy-cells = <0>;
+        };
+
+        phy@3 {
+          reg = <3>;
+          #phy-cells = <0>;
+        };
+
+        phy@4 {
+          reg = <4>;
+          #phy-cells = <0>;
+        };
+
+        phy@5 {
+          reg = <5>;
+          #phy-cells = <0>;
+        };
+
+        phy@6 {
+          reg = <6>;
+          #phy-cells = <0>;
+        };
+
+        phy@7 {
+          reg = <7>;
+          #phy-cells = <0>;
+        };
       };
     };
diff --git a/Bindings/phy/google,lga-usb-phy.yaml b/Bindings/phy/google,lga-usb-phy.yaml
new file mode 100644 (file)
index 0000000..427e2e3
--- /dev/null
@@ -0,0 +1,133 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2025, Google LLC
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/google,lga-usb-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google Tensor Series G5 (Laguna) USB PHY
+
+maintainers:
+  - Roy Luo <royluo@google.com>
+
+description:
+  Describes the USB PHY interfaces integrated with the DWC3 USB controller on
+  Google Tensor SoCs, starting with the G5 generation (laguna).
+  Two specific PHY IPs from Synopsys are integrated, including eUSB 2.0 PHY IP
+  and USB3.2/DisplayPort combo PHY IP.
+
+properties:
+  compatible:
+    const: google,lga-usb-phy
+
+  reg:
+    items:
+      - description: USB3.2/DisplayPort combo PHY core registers.
+      - description: USB3.2/DisplayPort combo PHY Type-C Assist registers.
+      - description: eUSB 2.0 PHY core registers.
+      - description: Top-level wrapper registers for the integrated PHYs.
+
+  reg-names:
+    items:
+      - const: usb3_core
+      - const: usb3_tca
+      - const: usb2_core
+      - const: usbdp_top
+
+  "#phy-cells":
+    description: |
+      The phandle's argument in the PHY specifier selects one of the three
+      following PHY interfaces.
+      - 0 for USB high-speed.
+      - 1 for USB super-speed.
+      - 2 for DisplayPort.
+    const: 1
+
+  clocks:
+    items:
+      - description: USB2 PHY clock.
+      - description: USB2 PHY APB clock.
+      - description: USB3.2/DisplayPort combo PHY clock.
+      - description: USB3.2/DisplayPort combo PHY firmware clock.
+
+  clock-names:
+    items:
+      - const: usb2
+      - const: usb2_apb
+      - const: usb3
+      - const: usb3_fw
+
+  resets:
+    items:
+      - description: USB2 PHY reset.
+      - description: USB2 PHY APB reset.
+      - description: USB3.2/DisplayPort combo PHY reset.
+
+  reset-names:
+    items:
+      - const: usb2
+      - const: usb2_apb
+      - const: usb3
+
+  power-domains:
+    maxItems: 1
+
+  orientation-switch:
+    type: boolean
+    description:
+      Indicates the PHY as a handler of USB Type-C orientation changes
+
+  google,usb-cfg-csr:
+    description:
+      A phandle to a syscon node used to access the USB configuration
+      registers. These registers are the top-level wrapper of the USB
+      subsystem and provide control and status for the integrated USB
+      controller and USB PHY.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to the syscon node.
+          - description: USB2 PHY configuration register offset.
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - "#phy-cells"
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - power-domains
+  - orientation-switch
+  - google,usb-cfg-csr
+
+additionalProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        usb-phy@c410000 {
+            compatible = "google,lga-usb-phy";
+            reg = <0 0x0c410000 0 0x20000>,
+                  <0 0x0c430000 0 0x1000>,
+                  <0 0x0c440000 0 0x10000>,
+                  <0 0x0c637000 0 0xa0>;
+            reg-names = "usb3_core", "usb3_tca", "usb2_core", "usbdp_top";
+            #phy-cells = <1>;
+            clocks = <&hsion_usb2_phy_clk>, <&hsion_u2phy_apb_clk>,
+                     <&hsion_usb3_phy_clk>, <&hsion_usb3_phy_fw_clk>;
+            clock-names = "usb2", "usb2_apb", "usb3", "usb3_fw";
+            resets = <&hsion_resets_usb2_phy>,
+                     <&hsion_resets_u2phy_apb>,
+                     <&hsion_resets_usb3_phy>;
+            reset-names = "usb2", "usb2_apb", "usb3";
+            power-domains = <&hsio_n_usb_pd>;
+            orientation-switch;
+            google,usb-cfg-csr = <&usb_cfg_csr 0x14>;
+        };
+    };
+...
index f3a8b0b745d13ffc55d391570bff20830d925ed3..ac93069f48013b7f082f1b64ee0a6a60a3a912eb 100644 (file)
@@ -26,6 +26,10 @@ properties:
           - enum:
               - mediatek,mt7623-hdmi-phy
           - const: mediatek,mt2701-hdmi-phy
+      - items:
+          - enum:
+              - mediatek,mt8188-hdmi-phy
+          - const: mediatek,mt8195-hdmi-phy
       - const: mediatek,mt2701-hdmi-phy
       - const: mediatek,mt8173-hdmi-phy
       - const: mediatek,mt8195-hdmi-phy
@@ -34,16 +38,23 @@ properties:
     maxItems: 1
 
   clocks:
+    minItems: 1
     items:
       - description: PLL reference clock
+      - description: HDMI 26MHz clock
+      - description: HDMI PLL1 clock
+      - description: HDMI PLL2 clock
 
   clock-names:
+    minItems: 1
     items:
       - const: pll_ref
+      - const: 26m
+      - const: pll1
+      - const: pll2
 
   clock-output-names:
-    items:
-      - const: hdmitx_dig_cts
+    maxItems: 1
 
   "#phy-cells":
     const: 0
@@ -76,6 +87,20 @@ required:
   - "#phy-cells"
   - "#clock-cells"
 
+allOf:
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: mediatek,mt8195-hdmi-phy
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+        clock-names:
+          maxItems: 1
+
 additionalProperties: false
 
 examples:
diff --git a/Bindings/phy/phy-common-props.yaml b/Bindings/phy/phy-common-props.yaml
new file mode 100644 (file)
index 0000000..b2c709c
--- /dev/null
@@ -0,0 +1,157 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/phy-common-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common PHY and network PCS properties
+
+description:
+  Common PHY and network PCS properties, such as peak-to-peak transmit
+  amplitude.
+
+maintainers:
+  - Marek Behún <kabel@kernel.org>
+
+$defs:
+  protocol-names:
+    description:
+      Names of the PHY modes. If a value of 'default' is provided, the system
+      should use it for any PHY mode that is otherwise not defined here. If
+      'default' is not provided, the system should use manufacturer default value.
+    minItems: 1
+    maxItems: 16
+    uniqueItems: true
+    items:
+      enum:
+        - default
+
+        # ethernet modes
+        - sgmii
+        - qsgmii
+        - xgmii
+        - 1000base-x
+        - 2500base-x
+        - 5gbase-r
+        - rxaui
+        - xaui
+        - 10gbase-kr
+        - usxgmii
+        - 10gbase-r
+        - 25gbase-r
+
+        # PCIe modes
+        - pcie
+        - pcie1
+        - pcie2
+        - pcie3
+        - pcie4
+        - pcie5
+        - pcie6
+
+        # USB modes
+        - usb
+        - usb-ls
+        - usb-fs
+        - usb-hs
+        - usb-ss
+        - usb-ss+
+        - usb-4
+
+        # storage modes
+        - sata
+        - ufs-hs
+        - ufs-hs-a
+        - ufs-hs-b
+
+        # display modes
+        - lvds
+        - dp
+        - dp-rbr
+        - dp-hbr
+        - dp-hbr2
+        - dp-hbr3
+        - dp-uhbr-10
+        - dp-uhbr-13.5
+        - dp-uhbr-20
+
+        # camera modes
+        - mipi-dphy
+        - mipi-dphy-univ
+        - mipi-dphy-v2.5-univ
+
+properties:
+  tx-p2p-microvolt:
+    description:
+      Transmit amplitude voltages in microvolts, peak-to-peak. If this property
+      contains multiple values for various PHY modes, the
+      'tx-p2p-microvolt-names' property must be provided and contain
+      corresponding mode names.
+
+  tx-p2p-microvolt-names:
+    description:
+      Names of the modes corresponding to voltages in the 'tx-p2p-microvolt'
+      property. Required only if multiple voltages are provided.
+    $ref: "#/$defs/protocol-names"
+
+  rx-polarity:
+    description:
+      An array of values indicating whether the differential receiver's
+      polarity is inverted. Each value can be one of
+      PHY_POL_NORMAL (0) which means the negative signal is decoded from the
+      RXN input, and the positive signal from the RXP input;
+      PHY_POL_INVERT (1) which means the negative signal is decoded from the
+      RXP input, and the positive signal from the RXN input;
+      PHY_POL_AUTO (2) which means the receiver performs automatic polarity
+      detection and correction, which is a mandatory part of link training for
+      some protocols (PCIe, USB SS).
+
+      The values are defined in <dt-bindings/phy/phy.h>. If the property is
+      absent, the default value is undefined.
+
+      Note that the RXP and RXN inputs refer to the block that this property is
+      under, and do not necessarily directly translate to external pins.
+
+      If this property contains multiple values for various protocols, the
+      'rx-polarity-names' property must be provided.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 16
+    items:
+      enum: [0, 1, 2]
+
+  rx-polarity-names:
+    $ref: '#/$defs/protocol-names'
+
+  tx-polarity:
+    description:
+      Like 'rx-polarity', except it applies to differential transmitters,
+      and only the values of PHY_POL_NORMAL and PHY_POL_INVERT are possible.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 16
+    items:
+      enum: [0, 1]
+
+  tx-polarity-names:
+    $ref: '#/$defs/protocol-names'
+
+dependencies:
+  tx-p2p-microvolt-names: [ tx-p2p-microvolt ]
+  rx-polarity-names: [ rx-polarity ]
+  tx-polarity-names: [ tx-polarity ]
+
+additionalProperties: true
+
+examples:
+  - |
+    #include <dt-bindings/phy/phy.h>
+
+    phy: phy {
+      #phy-cells = <1>;
+      tx-p2p-microvolt = <915000>, <1100000>, <1200000>;
+      tx-p2p-microvolt-names = "2500base-x", "usb-hs", "usb-ss";
+      rx-polarity = <PHY_POL_AUTO>, <PHY_POL_NORMAL>;
+      rx-polarity-names = "usb-ss", "default";
+      tx-polarity = <PHY_POL_INVERT>;
+    };
index eb97181cbb9579893b4ee26a39c3559ad87b2fba..4a1daae3d8d47ca5f08d97a1864cfd615dcf108d 100644 (file)
@@ -18,6 +18,7 @@ properties:
   compatible:
     oneOf:
       - enum:
+          - qcom,glymur-dp-phy
           - qcom,sa8775p-edp-phy
           - qcom,sc7280-edp-phy
           - qcom,sc8180x-edp-phy
@@ -37,12 +38,15 @@ properties:
       - description: PLL register block
 
   clocks:
-    maxItems: 2
+    minItems: 2
+    maxItems: 3
 
   clock-names:
+    minItems: 2
     items:
       - const: aux
       - const: cfg_ahb
+      - const: ref
 
   "#clock-cells":
     const: 1
@@ -64,6 +68,30 @@ required:
   - "#clock-cells"
   - "#phy-cells"
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,glymur-dp-phy
+            - qcom,x1e80100-dp-phy
+    then:
+      properties:
+        clocks:
+          minItems: 3
+          maxItems: 3
+        clock-names:
+          minItems: 3
+          maxItems: 3
+    else:
+      properties:
+        clocks:
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          minItems: 2
+          maxItems: 2
+
 additionalProperties: false
 
 examples:
index c84c62d0e8cbd9fc1c0da6538f49149e5bc7e066..cd6b84213a7c81a74b02870abd166fd863c5f186 100644 (file)
@@ -15,9 +15,13 @@ description:
 
 properties:
   compatible:
-    items:
-      - enum:
-          - qcom,sm8750-m31-eusb2-phy
+    oneOf:
+      - items:
+          - enum:
+              - qcom,glymur-m31-eusb2-phy
+              - qcom,kaanapali-m31-eusb2-phy
+          - const: qcom,sm8750-m31-eusb2-phy
+      - const: qcom,sm8750-m31-eusb2-phy
 
   reg:
     maxItems: 1
diff --git a/Bindings/phy/qcom,qcs615-qmp-usb3dp-phy.yaml b/Bindings/phy/qcom,qcs615-qmp-usb3dp-phy.yaml
new file mode 100644 (file)
index 0000000..efb465c
--- /dev/null
@@ -0,0 +1,111 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/qcom,qcs615-qmp-usb3dp-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QMP USB3-DP PHY controller (DP, QCS615)
+
+maintainers:
+  - Xiangxu Yin <xiangxu.yin@oss.qualcomm.com>
+
+description:
+  The QMP PHY controller supports physical layer functionality for both USB3
+  and DisplayPort over USB-C. While it enables mode switching between USB3 and
+  DisplayPort, but does not support combo mode.
+
+properties:
+  compatible:
+    enum:
+      - qcom,qcs615-qmp-usb3-dp-phy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: aux
+      - const: ref
+      - const: cfg_ahb
+      - const: pipe
+
+  resets:
+    maxItems: 2
+
+  reset-names:
+    items:
+      - const: phy_phy
+      - const: dp_phy
+
+  vdda-phy-supply: true
+
+  vdda-pll-supply: true
+
+  "#clock-cells":
+    const: 1
+    description:
+      See include/dt-bindings/phy/phy-qcom-qmp.h
+
+  "#phy-cells":
+    const: 1
+    description:
+      See include/dt-bindings/phy/phy-qcom-qmp.h
+
+  qcom,tcsr-reg:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to TCSR hardware block
+          - description: offset of the VLS CLAMP register
+          - description: offset of the PHY mode register
+    description: Clamp and PHY mode register present in the TCSR
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - vdda-phy-supply
+  - vdda-pll-supply
+  - "#clock-cells"
+  - "#phy-cells"
+  - qcom,tcsr-reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,qcs615-gcc.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+
+    phy@88e8000 {
+      compatible = "qcom,qcs615-qmp-usb3-dp-phy";
+      reg = <0x88e8000 0x2000>;
+
+      clocks = <&gcc GCC_USB2_SEC_PHY_AUX_CLK>,
+               <&gcc GCC_USB3_SEC_CLKREF_CLK>,
+               <&gcc GCC_AHB2PHY_WEST_CLK>,
+               <&gcc GCC_USB2_SEC_PHY_PIPE_CLK>;
+      clock-names = "aux",
+                    "ref",
+                    "cfg_ahb",
+                    "pipe";
+
+      resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
+               <&gcc GCC_USB3_DP_PHY_SEC_BCR>;
+      reset-names = "phy_phy",
+                    "dp_phy";
+
+      vdda-phy-supply = <&vreg_l5a>;
+      vdda-pll-supply = <&vreg_l12a>;
+
+      #clock-cells = <1>;
+      #phy-cells = <1>;
+
+      qcom,tcsr-reg = <&tcsr 0xbff0 0xb24c>;
+    };
index f5068df20cfe6549c538b1ce17c1b968b883ef6d..3a35120a77ec0ceb814a1cdcacff32fef32b4f7b 100644 (file)
@@ -16,7 +16,9 @@ description:
 properties:
   compatible:
     enum:
+      - qcom,glymur-qmp-gen4x2-pcie-phy
       - qcom,glymur-qmp-gen5x4-pcie-phy
+      - qcom,kaanapali-qmp-gen3x2-pcie-phy
       - qcom,qcs615-qmp-gen3x1-pcie-phy
       - qcom,qcs8300-qmp-gen4x2-pcie-phy
       - qcom,sa8775p-qmp-gen4x2-pcie-phy
@@ -146,6 +148,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,kaanapali-qmp-gen3x2-pcie-phy
               - qcom,qcs615-qmp-gen3x1-pcie-phy
               - qcom,sar2130p-qmp-gen3x2-pcie-phy
               - qcom,sc8180x-qmp-pcie-phy
@@ -178,6 +181,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,glymur-qmp-gen4x2-pcie-phy
               - qcom,glymur-qmp-gen5x4-pcie-phy
               - qcom,qcs8300-qmp-gen4x2-pcie-phy
               - qcom,sa8775p-qmp-gen4x2-pcie-phy
@@ -202,7 +206,9 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,glymur-qmp-gen4x2-pcie-phy
               - qcom,glymur-qmp-gen5x4-pcie-phy
+              - qcom,kaanapali-qmp-gen3x2-pcie-phy
               - qcom,sm8550-qmp-gen4x2-pcie-phy
               - qcom,sm8650-qmp-gen4x2-pcie-phy
               - qcom,x1e80100-qmp-gen3x2-pcie-phy
index fba7b2549ddee7ee4e048277a11a7da053d52887..a1731b08c9d14236f4e2456e09f4e1b0f9f8563f 100644 (file)
@@ -20,6 +20,10 @@ properties:
           - enum:
               - qcom,qcs615-qmp-ufs-phy
           - const: qcom,sm6115-qmp-ufs-phy
+      - items:
+          - enum:
+              - qcom,x1e80100-qmp-ufs-phy
+          - const: qcom,sm8550-qmp-ufs-phy
       - items:
           - enum:
               - qcom,qcs8300-qmp-ufs-phy
@@ -29,6 +33,7 @@ properties:
               - qcom,kaanapali-qmp-ufs-phy
           - const: qcom,sm8750-qmp-ufs-phy
       - enum:
+          - qcom,milos-qmp-ufs-phy
           - qcom,msm8996-qmp-ufs-phy
           - qcom,msm8998-qmp-ufs-phy
           - qcom,sa8775p-qmp-ufs-phy
@@ -98,6 +103,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,milos-qmp-ufs-phy
               - qcom,msm8998-qmp-ufs-phy
               - qcom,sa8775p-qmp-ufs-phy
               - qcom,sc7180-qmp-ufs-phy
index 863a1a446739e54ab43955e3a008bad03ca1dade..623c2f8c7d2206d0ad681bdde1b7a8861f8820f7 100644 (file)
@@ -16,6 +16,7 @@ description:
 properties:
   compatible:
     enum:
+      - qcom,glymur-qmp-usb3-uni-phy
       - qcom,ipq5424-qmp-usb3-phy
       - qcom,ipq6018-qmp-usb3-phy
       - qcom,ipq8074-qmp-usb3-phy
@@ -61,6 +62,8 @@ properties:
 
   vdda-pll-supply: true
 
+  refgen-supply: true
+
   "#clock-cells":
     const: 0
 
@@ -113,6 +116,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,glymur-qmp-usb3-uni-phy
               - qcom,qcs8300-qmp-usb3-uni-phy
               - qcom,qdu1000-qmp-usb3-uni-phy
               - qcom,sa8775p-qmp-usb3-uni-phy
@@ -156,6 +160,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,glymur-qmp-usb3-uni-phy
               - qcom,sa8775p-qmp-usb3-uni-phy
               - qcom,sc8180x-qmp-usb3-uni-phy
               - qcom,sc8280xp-qmp-usb3-uni-phy
@@ -164,6 +169,19 @@ allOf:
       required:
         - power-domains
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,glymur-qmp-usb3-uni-phy
+    then:
+      required:
+        - refgen-supply
+    else:
+      properties:
+        refgen-supply: false
+
 additionalProperties: false
 
 examples:
index e0ec45b96bf5d7f8a46dd1b75f0f74b2d602eeef..3d537b7f9985980b006d0f9c32bdb461b5310f20 100644 (file)
@@ -15,22 +15,28 @@ description:
 
 properties:
   compatible:
-    enum:
-      - qcom,sar2130p-qmp-usb3-dp-phy
-      - qcom,sc7180-qmp-usb3-dp-phy
-      - qcom,sc7280-qmp-usb3-dp-phy
-      - qcom,sc8180x-qmp-usb3-dp-phy
-      - qcom,sc8280xp-qmp-usb43dp-phy
-      - qcom,sdm845-qmp-usb3-dp-phy
-      - qcom,sm6350-qmp-usb3-dp-phy
-      - qcom,sm8150-qmp-usb3-dp-phy
-      - qcom,sm8250-qmp-usb3-dp-phy
-      - 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,sm8750-qmp-usb3-dp-phy
-      - qcom,x1e80100-qmp-usb3-dp-phy
+    oneOf:
+      - items:
+          - enum:
+              - qcom,kaanapali-qmp-usb3-dp-phy
+          - const: qcom,sm8750-qmp-usb3-dp-phy
+      - enum:
+          - qcom,glymur-qmp-usb3-dp-phy
+          - qcom,sar2130p-qmp-usb3-dp-phy
+          - qcom,sc7180-qmp-usb3-dp-phy
+          - qcom,sc7280-qmp-usb3-dp-phy
+          - qcom,sc8180x-qmp-usb3-dp-phy
+          - qcom,sc8280xp-qmp-usb43dp-phy
+          - qcom,sdm845-qmp-usb3-dp-phy
+          - qcom,sm6350-qmp-usb3-dp-phy
+          - qcom,sm8150-qmp-usb3-dp-phy
+          - qcom,sm8250-qmp-usb3-dp-phy
+          - 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,sm8750-qmp-usb3-dp-phy
+          - qcom,x1e80100-qmp-usb3-dp-phy
 
   reg:
     maxItems: 1
@@ -63,6 +69,8 @@ properties:
 
   vdda-pll-supply: true
 
+  refgen-supply: true
+
   "#clock-cells":
     const: 1
     description:
@@ -194,14 +202,16 @@ allOf:
   - if:
       properties:
         compatible:
-          enum:
-            - qcom,sar2130p-qmp-usb3-dp-phy
-            - qcom,sc8280xp-qmp-usb43dp-phy
-            - qcom,sm6350-qmp-usb3-dp-phy
-            - qcom,sm8550-qmp-usb3-dp-phy
-            - qcom,sm8650-qmp-usb3-dp-phy
-            - qcom,sm8750-qmp-usb3-dp-phy
-            - qcom,x1e80100-qmp-usb3-dp-phy
+          contains:
+            enum:
+              - qcom,glymur-qmp-usb3-dp-phy
+              - qcom,sar2130p-qmp-usb3-dp-phy
+              - qcom,sc8280xp-qmp-usb43dp-phy
+              - qcom,sm6350-qmp-usb3-dp-phy
+              - qcom,sm8550-qmp-usb3-dp-phy
+              - qcom,sm8650-qmp-usb3-dp-phy
+              - qcom,sm8750-qmp-usb3-dp-phy
+              - qcom,x1e80100-qmp-usb3-dp-phy
     then:
       required:
         - power-domains
@@ -209,6 +219,18 @@ allOf:
       properties:
         power-domains: false
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,glymur-qmp-usb3-dp-phy
+    then:
+      required:
+        - refgen-supply
+    else:
+      properties:
+        refgen-supply: false
+
 additionalProperties: false
 
 examples:
index 5bf0d6c9c0256300d00f84307b7f6ccf669f17c4..f29fc335f3f5a9eebb00c218e31bd49b35ec7409 100644 (file)
@@ -24,6 +24,7 @@ properties:
           - qcom,pm8550b-eusb2-repeater
           - qcom,pmiv0104-eusb2-repeater
           - qcom,smb2360-eusb2-repeater
+          - qcom,smb2370-eusb2-repeater
 
   reg:
     maxItems: 1
@@ -59,6 +60,14 @@ properties:
     minimum: 0
     maximum: 7
 
+  qcom,squelch-detector-bp:
+    description:
+      This adjusts the voltage level for the threshold used to detect valid
+      high-speed data.
+    minimum: -6000
+    maximum: 1000
+    multipleOf: 1000
+
 required:
   - compatible
   - reg
index b86dc7a291a4993b18b14863724813e0957710e7..6d97e038a927baede6910929f53543ee9f28b658 100644 (file)
@@ -11,7 +11,14 @@ maintainers:
 
 properties:
   compatible:
-    const: renesas,r9a09g047-usb3-phy
+    oneOf:
+      - const: renesas,r9a09g047-usb3-phy # RZ/G3E
+
+      - items:
+          - enum:
+              - renesas,r9a09g056-usb3-phy # RZ/V2N
+              - renesas,r9a09g057-usb3-phy # RZ/V2H(P)
+          - const: renesas,r9a09g047-usb3-phy
 
   reg:
     maxItems: 1
index 2bbec8702a1e08431ac3eb25cc8e3d13f12078e4..9740e5b335f932f8e9e3b040d62f6bf67e3812da 100644 (file)
@@ -41,7 +41,9 @@ properties:
           - const: renesas,rzg2l-usb2-phy
 
       - items:
-          - const: renesas,usb2-phy-r9a09g056 # RZ/V2N
+          - enum:
+              - renesas,usb2-phy-r9a09g047 # RZ/G3E
+              - renesas,usb2-phy-r9a09g056 # RZ/V2N
           - const: renesas,usb2-phy-r9a09g057
 
       - const: renesas,usb2-phy-r9a09g077 # RZ/T2H
@@ -89,6 +91,12 @@ properties:
       Phandle to a regulator that provides power to the VBUS. This regulator
       will be managed during the PHY power on/off sequence.
 
+  vbus-regulator:
+    $ref: /schemas/regulator/regulator.yaml#
+    description: USB VBUS internal regulator
+    type: object
+    unevaluatedProperties: false
+
   renesas,no-otg-pins:
     $ref: /schemas/types.yaml#/definitions/flag
     description: |
@@ -96,6 +104,11 @@ properties:
 
   dr_mode: true
 
+  mux-states:
+    description:
+      phandle to a mux controller node that select the source for USB VBUS.
+    maxItems: 1
+
 if:
   properties:
     compatible:
index d70ffeb6e824bfc19668e0f678276acd879a6217..2b20c0a5e5094889eb3e80dcc21b505943c68523 100644 (file)
@@ -36,6 +36,9 @@ properties:
     minItems: 1
     maxItems: 4
 
+  power-domains:
+    maxItems: 1
+
   samsung,pmu-syscon:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     maxItems: 1
index ea1135c91fb74c01ba860b9588ca89e611701359..4562e0468f4f4c7337f36a134f3917835ffc345e 100644 (file)
@@ -34,6 +34,9 @@ properties:
       - samsung,exynos7870-usbdrd-phy
       - samsung,exynos850-usbdrd-phy
       - samsung,exynos990-usbdrd-phy
+      - samsung,exynosautov920-usb31drd-combo-ssphy
+      - samsung,exynosautov920-usbdrd-combo-hsphy
+      - samsung,exynosautov920-usbdrd-phy
 
   clocks:
     minItems: 1
@@ -51,6 +54,9 @@ properties:
           settings register.  For Exynos5420 this is given as 'sclk_usbphy30'
           in the CMU. It's not needed for Exynos2200.
 
+  power-domains:
+    maxItems: 1
+
   "#phy-cells":
     const: 1
 
@@ -110,6 +116,15 @@ properties:
   vddh-usbdp-supply:
     description: VDDh power supply for the USB DP phy.
 
+  dvdd-supply:
+    description: 0.75V power supply for the USB phy.
+
+  vdd18-supply:
+    description: 1.8V power supply for the USB phy.
+
+  vdd33-supply:
+    description: 3.3V power supply for the USB phy.
+
 required:
   - compatible
   - clocks
@@ -221,6 +236,9 @@ allOf:
               - samsung,exynos7870-usbdrd-phy
               - samsung,exynos850-usbdrd-phy
               - samsung,exynos990-usbdrd-phy
+              - samsung,exynosautov920-usb31drd-combo-ssphy
+              - samsung,exynosautov920-usbdrd-combo-hsphy
+              - samsung,exynosautov920-usbdrd-phy
     then:
       properties:
         clocks:
@@ -238,6 +256,39 @@ allOf:
         reg-names:
           maxItems: 1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,exynosautov920-usb31drd-combo-ssphy
+              - samsung,exynosautov920-usbdrd-combo-hsphy
+              - samsung,exynosautov920-usbdrd-phy
+    then:
+      required:
+        - dvdd-supply
+        - vdd18-supply
+
+    else:
+      properties:
+        dvdd-supply: false
+        vdd18-supply: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,exynosautov920-usbdrd-combo-hsphy
+              - samsung,exynosautov920-usbdrd-phy
+    then:
+      required:
+        - vdd33-supply
+
+    else:
+      properties:
+        vdd33-supply: false
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Bindings/phy/spacemit,k1-combo-phy.yaml b/Bindings/phy/spacemit,k1-combo-phy.yaml
new file mode 100644 (file)
index 0000000..b59476c
--- /dev/null
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/spacemit,k1-combo-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SpacemiT K1 PCIe/USB3 Combo PHY
+
+maintainers:
+  - Alex Elder <elder@riscstar.com>
+
+description: >
+  Of the three PHYs on the SpacemiT K1 SoC capable of being used for
+  PCIe, one is a combo PHY that can also be configured for use by a
+  USB 3 controller.  Using PCIe or USB 3 is a board design decision.
+
+  The combo PHY is also the only PCIe PHY that is able to determine
+  PCIe calibration values to use, and this must be determined before
+  the other two PCIe PHYs can be used.  This calibration must be
+  performed with the combo PHY in PCIe mode, and is this is done
+  when the combo PHY is probed.
+
+  The combo PHY uses an external oscillator as a reference clock.
+  During normal operation, the PCIe or USB port driver is responsible
+  for ensuring all other clocks needed by a PHY are enabled, and all
+  resets affecting the PHY are deasserted.  However, for the combo
+  PHY to perform calibration independent of whether it's later used
+  for PCIe or USB, all PCIe mode clocks and resets must be defined.
+
+properties:
+  compatible:
+    const: spacemit,k1-combo-phy
+
+  reg:
+    items:
+      - description: PHY control registers
+
+  clocks:
+    items:
+      - description: External oscillator used by the PHY PLL
+      - description: DWC PCIe Data Bus Interface (DBI) clock
+      - description: DWC PCIe application AXI-bus Master interface clock
+      - description: DWC PCIe application AXI-bus slave interface clock
+
+  clock-names:
+    items:
+      - const: refclk
+      - const: dbi
+      - const: mstr
+      - const: slv
+
+  resets:
+    items:
+      - description: PHY reset; remains deasserted after initialization
+      - description: DWC PCIe Data Bus Interface (DBI) reset
+      - description: DWC PCIe application AXI-bus Master interface reset
+      - description: DWC PCIe application AXI-bus slave interface reset
+
+  reset-names:
+    items:
+      - const: phy
+      - const: dbi
+      - const: mstr
+      - const: slv
+
+  spacemit,apmu:
+    description:
+      A phandle that refers to the APMU system controller, whose
+      regmap is used in setting the mode
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  "#phy-cells":
+    const: 1
+    description:
+      The argument value (PHY_TYPE_PCIE or PHY_TYPE_USB3) determines
+      whether the PHY operates in PCIe or USB3 mode.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - spacemit,apmu
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/spacemit,k1-syscon.h>
+    phy@c0b10000 {
+        compatible = "spacemit,k1-combo-phy";
+        reg = <0xc0b10000 0x1000>;
+        clocks = <&vctcxo_24m>,
+                 <&syscon_apmu CLK_PCIE0_DBI>,
+                 <&syscon_apmu CLK_PCIE0_MASTER>,
+                 <&syscon_apmu CLK_PCIE0_SLAVE>;
+        clock-names = "refclk",
+                      "dbi",
+                      "mstr",
+                      "slv";
+        resets = <&syscon_apmu RESET_PCIE0_GLOBAL>,
+                 <&syscon_apmu RESET_PCIE0_DBI>,
+                 <&syscon_apmu RESET_PCIE0_MASTER>,
+                 <&syscon_apmu RESET_PCIE0_SLAVE>;
+        reset-names = "phy",
+                      "dbi",
+                      "mstr",
+                      "slv";
+        spacemit,apmu = <&syscon_apmu>;
+        #phy-cells = <1>;
+    };
diff --git a/Bindings/phy/spacemit,k1-pcie-phy.yaml b/Bindings/phy/spacemit,k1-pcie-phy.yaml
new file mode 100644 (file)
index 0000000..019b283
--- /dev/null
@@ -0,0 +1,71 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/spacemit,k1-pcie-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SpacemiT K1 PCIe PHY
+
+maintainers:
+  - Alex Elder <elder@riscstar.com>
+
+description: >
+  Two PHYs on the SpacemiT K1 SoC used for only for PCIe.  These
+  PHYs must be configured using calibration values that are
+  determined by a third "combo PHY".  The combo PHY determines
+  these calibration values during probe so they can be used for
+  the two PCIe-only PHYs.
+
+  The PHY uses an external oscillator as a reference clock.  During
+  normal operation, the PCIe host driver is responsible for ensuring
+  all other clocks needed by a PHY are enabled, and all resets
+  affecting the PHY are deasserted.
+
+properties:
+  compatible:
+    const: spacemit,k1-pcie-phy
+
+  reg:
+    items:
+      - description: PHY control registers
+
+  clocks:
+    items:
+      - description: External oscillator used by the PHY PLL
+
+  clock-names:
+    const: refclk
+
+  resets:
+    items:
+      - description: PHY reset; remains deasserted after initialization
+
+  reset-names:
+    const: phy
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/spacemit,k1-syscon.h>
+    phy@c0c10000 {
+        compatible = "spacemit,k1-pcie-phy";
+        reg = <0xc0c10000 0x1000>;
+        clocks = <&vctcxo_24m>;
+        clock-names = "refclk";
+        resets = <&syscon_apmu RESET_PCIE1_GLOBAL>;
+        reset-names = "phy";
+        #phy-cells = <0>;
+    };
diff --git a/Bindings/phy/spacemit,usb2-phy.yaml b/Bindings/phy/spacemit,usb2-phy.yaml
new file mode 100644 (file)
index 0000000..43eaca9
--- /dev/null
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/spacemit,usb2-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SpacemiT K1 SoC USB 2.0 PHY
+
+maintainers:
+  - Ze Huang <huang.ze@linux.dev>
+
+properties:
+  compatible:
+    const: spacemit,k1-usb2-phy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    usb-phy@c09c0000 {
+        compatible = "spacemit,k1-usb2-phy";
+        reg = <0xc09c0000 0x200>;
+        clocks = <&syscon_apmu 15>;
+        #phy-cells = <0>;
+    };
diff --git a/Bindings/phy/ti,control-phy-otghs.yaml b/Bindings/phy/ti,control-phy-otghs.yaml
new file mode 100644 (file)
index 0000000..4ecb161
--- /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/phy/ti,control-phy-otghs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI OMAP Control PHY Module
+
+maintainers:
+  - Roger Quadros <rogerq@ti.com>
+
+description:
+  The TI OMAP Control PHY module is a hardware block within the system
+  control module (SCM) of Texas Instruments OMAP SoCs. It provides
+  centralized control over power, configuration, and auxiliary features
+  for multiple on-chip PHYs. This module is essential for proper PHY
+  operation in power-constrained embedded systems.
+
+properties:
+  $nodename:
+    pattern: "^phy@[0-9a-f]+$"
+
+  compatible:
+    enum:
+      - ti,control-phy-otghs
+      - ti,control-phy-pcie
+      - ti,control-phy-pipe3
+      - ti,control-phy-usb2
+      - ti,control-phy-usb2-am437
+      - ti,control-phy-usb2-dra7
+
+  reg:
+    minItems: 1
+    maxItems: 3
+
+  reg-names:
+    minItems: 1
+    maxItems: 3
+    items:
+      enum: [otghs_control, power, pcie_pcs, control_sma]
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,control-phy-otghs
+    then:
+      properties:
+        reg-names:
+          const: otghs_control
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,control-phy-pcie
+    then:
+      properties:
+        reg:
+          minItems: 3
+
+        reg-names:
+          items:
+            - const: power
+            - const: pcie_pcs
+            - const: control_sma
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,control-phy-usb2
+              - ti,control-phy-usb2-dra7
+              - ti,control-phy-usb2-am437
+              - ti,control-phy-pipe3
+    then:
+      properties:
+        reg-names:
+          const: power
+
+required:
+  - reg
+  - compatible
+  - reg-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    phy@4a00233c {
+        compatible = "ti,control-phy-otghs";
+        reg = <0x4a00233c 0x4>;
+        reg-names = "otghs_control";
+    };
+...
diff --git a/Bindings/phy/ti,phy-usb3.yaml b/Bindings/phy/ti,phy-usb3.yaml
new file mode 100644 (file)
index 0000000..84f538a
--- /dev/null
@@ -0,0 +1,138 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI PIPE3 PHY Module
+
+maintainers:
+  - Roger Quadros <rogerq@ti.com>
+
+description:
+  The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer)
+  transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs.
+  It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3
+  interface standard, which defines a common physical layer for
+  high-speed serial interfaces.
+
+properties:
+  $nodename:
+    pattern: "^(pcie-phy|usb3-phy|phy)@[0-9a-f]+$"
+
+  compatible:
+    enum:
+      - ti,omap-usb3
+      - ti,phy-pipe3-pcie
+      - ti,phy-pipe3-sata
+      - ti,phy-usb3
+
+  reg:
+    minItems: 2
+    maxItems: 3
+
+  reg-names:
+    minItems: 2
+    items:
+      - const: phy_rx
+      - const: phy_tx
+      - const: pll_ctrl
+
+  "#phy-cells":
+    const: 0
+
+  clocks:
+    minItems: 2
+    maxItems: 7
+
+  clock-names:
+    minItems: 2
+    maxItems: 7
+    items:
+      enum: [wkupclk, sysclk, refclk, dpll_ref,
+             dpll_ref_m2, phy-div, div-clk]
+
+  syscon-phy-power:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    maxItems: 1
+    items:
+      items:
+        - description: Phandle to the system control module
+        - description: Register offset controlling PHY power
+
+  syscon-pllreset:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    maxItems: 1
+    items:
+      items:
+        - description: Phandle to the system control module
+        - description: Register offset of CTRL_CORE_SMA_SW_0
+
+  syscon-pcs:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    maxItems: 1
+    items:
+      items:
+        - description: Phandle to the system control module
+        - description: Register offset for PCS delay programming
+
+  ctrl-module:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle of control module for PHY power on.
+    deprecated: true
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,phy-pipe3-sata
+    then:
+      properties:
+        syscon-pllreset: true
+    else:
+      properties:
+        syscon-pllreset: false
+
+required:
+  - reg
+  - compatible
+  - reg-names
+  - "#phy-cells"
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    /* TI PIPE3 USB3 PHY */
+    usb3-phy@4a084400 {
+        compatible = "ti,phy-usb3";
+        reg = <0x4a084400 0x80>,
+              <0x4a084800 0x64>,
+              <0x4a084c00 0x40>;
+        reg-names = "phy_rx", "phy_tx", "pll_ctrl";
+        #phy-cells = <0>;
+        clocks = <&usb_phy_cm_clk32k>,
+                 <&sys_clkin>,
+                 <&usb_otg_ss_refclk960m>;
+        clock-names = "wkupclk", "sysclk", "refclk";
+        ctrl-module = <&omap_control_usb>;
+    };
+
+  - |
+    /* TI PIPE3 SATA PHY */
+    phy@4a096000 {
+        compatible = "ti,phy-pipe3-sata";
+        reg = <0x4a096000 0x80>,  /* phy_rx */
+              <0x4a096400 0x64>,  /* phy_tx */
+              <0x4a096800 0x40>;  /* pll_ctrl */
+        reg-names = "phy_rx", "phy_tx", "pll_ctrl";
+        clocks = <&sys_clkin1>, <&sata_ref_clk>;
+        clock-names = "sysclk", "refclk";
+        syscon-pllreset = <&scm_conf 0x3fc>;
+        #phy-cells = <0>;
+    };
+...
index c686d06f5f5619552bf041c951e36b71cb68c2a0..9f5c37ca6496a11121b91b6e4fc631da2f1791f9 100644 (file)
@@ -20,6 +20,9 @@ properties:
               - microchip,ata6561
               - ti,tcan1051
           - const: ti,tcan1042
+      - items:
+          - const: ti,tcan1046
+          - const: nxp,tja1048
       - enum:
           - ti,tcan1042
           - ti,tcan1043
diff --git a/Bindings/phy/ti-phy.txt b/Bindings/phy/ti-phy.txt
deleted file mode 100644 (file)
index 7c7936b..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-TI PHY: DT DOCUMENTATION FOR PHYs in TI PLATFORMs
-
-OMAP CONTROL PHY
-
-Required properties:
- - compatible: Should be one of
- "ti,control-phy-otghs" - if it has otghs_control mailbox register as on OMAP4.
- "ti,control-phy-usb2" - if it has Power down bit in control_dev_conf register
-                        e.g. USB2_PHY on OMAP5.
- "ti,control-phy-pipe3" - if it has DPLL and individual Rx & Tx power control
-                        e.g. USB3 PHY and SATA PHY on OMAP5.
- "ti,control-phy-pcie" - for pcie to support external clock for pcie and to
-                       set PCS delay value.
-                       e.g. PCIE PHY in DRA7x
- "ti,control-phy-usb2-dra7" - if it has power down register like USB2 PHY on
-                        DRA7 platform.
- "ti,control-phy-usb2-am437" - if it has power down register like USB2 PHY on
-                        AM437 platform.
- - reg : register ranges as listed in the reg-names property
- - reg-names: "otghs_control" for control-phy-otghs
-             "power", "pcie_pcs" and "control_sma" for control-phy-pcie
-             "power" for all other types
-
-omap_control_usb: omap-control-usb@4a002300 {
-        compatible = "ti,control-phy-otghs";
-        reg = <0x4a00233c 0x4>;
-        reg-names = "otghs_control";
-};
-
-TI PIPE3 PHY
-
-Required properties:
- - compatible: Should be "ti,phy-usb3", "ti,phy-pipe3-sata" or
-   "ti,phy-pipe3-pcie. "ti,omap-usb3" is deprecated.
- - reg : Address and length of the register set for the device.
- - reg-names: The names of the register addresses corresponding to the registers
-   filled in "reg".
- - #phy-cells: determine the number of cells that should be given in the
-   phandle while referencing this phy.
- - clocks: a list of phandles and clock-specifier pairs, one for each entry in
-   clock-names.
- - clock-names: should include:
-   * "wkupclk" - wakeup clock.
-   * "sysclk" - system clock.
-   * "refclk" - reference clock.
-   * "dpll_ref" - external dpll ref clk
-   * "dpll_ref_m2" - external dpll ref clk
-   * "phy-div" - divider for apll
-   * "div-clk" - apll clock
-
-Optional properties:
- - id: If there are multiple instance of the same type, in order to
-   differentiate between each instance "id" can be used (e.g., multi-lane PCIe
-   PHY). If "id" is not provided, it is set to default value of '1'.
- - syscon-pllreset: Handle to system control region that contains the
-   CTRL_CORE_SMA_SW_0 register and register offset to the CTRL_CORE_SMA_SW_0
-   register that contains the SATA_PLL_SOFT_RESET bit. Only valid for sata_phy.
- - syscon-pcs : phandle/offset pair. Phandle to the system control module and the
-   register offset to write the PCS delay value.
-
-Deprecated properties:
- - ctrl-module : phandle of the control module used by PHY driver to power on
-   the PHY.
-
-Recommended properties:
- - syscon-phy-power : phandle/offset pair. Phandle to the system control
-   module and the register offset to power on/off the PHY.
-
-This is usually a subnode of ocp2scp to which it is connected.
-
-usb3phy@4a084400 {
-       compatible = "ti,phy-usb3";
-       reg = <0x4a084400 0x80>,
-             <0x4a084800 0x64>,
-             <0x4a084c00 0x40>;
-       reg-names = "phy_rx", "phy_tx", "pll_ctrl";
-       ctrl-module = <&omap_control_usb>;
-       #phy-cells = <0>;
-       clocks = <&usb_phy_cm_clk32k>,
-                <&sys_clkin>,
-                <&usb_otg_ss_refclk960m>;
-       clock-names =   "wkupclk",
-                       "sysclk",
-                       "refclk";
-};
-
-sata_phy: phy@4a096000 {
-       compatible = "ti,phy-pipe3-sata";
-       reg = <0x4A096000 0x80>, /* phy_rx */
-             <0x4A096400 0x64>, /* phy_tx */
-             <0x4A096800 0x40>; /* pll_ctrl */
-       reg-names = "phy_rx", "phy_tx", "pll_ctrl";
-       ctrl-module = <&omap_control_sata>;
-       clocks = <&sys_clkin1>, <&sata_ref_clk>;
-       clock-names = "sysclk", "refclk";
-       syscon-pllreset = <&scm_conf 0x3fc>;
-       #phy-cells = <0>;
-};
diff --git a/Bindings/phy/transmit-amplitude.yaml b/Bindings/phy/transmit-amplitude.yaml
deleted file mode 100644 (file)
index 617f3c0..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/phy/transmit-amplitude.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Common PHY and network PCS transmit amplitude property
-
-description:
-  Binding describing the peak-to-peak transmit amplitude for common PHYs
-  and network PCSes.
-
-maintainers:
-  - Marek Behún <kabel@kernel.org>
-
-properties:
-  tx-p2p-microvolt:
-    description:
-      Transmit amplitude voltages in microvolts, peak-to-peak. If this property
-      contains multiple values for various PHY modes, the
-      'tx-p2p-microvolt-names' property must be provided and contain
-      corresponding mode names.
-
-  tx-p2p-microvolt-names:
-    description: |
-      Names of the modes corresponding to voltages in the 'tx-p2p-microvolt'
-      property. Required only if multiple voltages are provided.
-
-      If a value of 'default' is provided, the system should use it for any PHY
-      mode that is otherwise not defined here. If 'default' is not provided, the
-      system should use manufacturer default value.
-    minItems: 1
-    maxItems: 16
-    items:
-      enum:
-        - default
-
-        # ethernet modes
-        - sgmii
-        - qsgmii
-        - xgmii
-        - 1000base-x
-        - 2500base-x
-        - 5gbase-r
-        - rxaui
-        - xaui
-        - 10gbase-kr
-        - usxgmii
-        - 10gbase-r
-        - 25gbase-r
-
-        # PCIe modes
-        - pcie
-        - pcie1
-        - pcie2
-        - pcie3
-        - pcie4
-        - pcie5
-        - pcie6
-
-        # USB modes
-        - usb
-        - usb-ls
-        - usb-fs
-        - usb-hs
-        - usb-ss
-        - usb-ss+
-        - usb-4
-
-        # storage modes
-        - sata
-        - ufs-hs
-        - ufs-hs-a
-        - ufs-hs-b
-
-        # display modes
-        - lvds
-        - dp
-        - dp-rbr
-        - dp-hbr
-        - dp-hbr2
-        - dp-hbr3
-        - dp-uhbr-10
-        - dp-uhbr-13.5
-        - dp-uhbr-20
-
-        # camera modes
-        - mipi-dphy
-        - mipi-dphy-univ
-        - mipi-dphy-v2.5-univ
-
-dependencies:
-  tx-p2p-microvolt-names: [ tx-p2p-microvolt ]
-
-additionalProperties: true
-
-examples:
-  - |
-    phy: phy {
-      #phy-cells = <1>;
-      tx-p2p-microvolt = <915000>, <1100000>, <1200000>;
-      tx-p2p-microvolt-names = "2500base-x", "usb-hs", "usb-ss";
-    };
index 990b7876542788601657afe91ade09af76d2356d..45b7a0b6c626d8d7ced542a4b0cfc31decad9aad 100644 (file)
@@ -106,7 +106,7 @@ patternProperties:
   #     the pin numbers then,
   #   - Finally, the name will end with either -pin or pins.
 
-  "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$":
+  "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z0-9][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$":
     type: object
 
     properties:
index 005d95a9e4d6a01990c2b94a0f9dd149169d0703..ec98481923514e5803af62d89caec4b3e695237a 100644 (file)
@@ -33,7 +33,7 @@ properties:
   interrupts:
     description:
       Specifies the interrupt lines to be used by the controller.
-      Each interrupt line is shared by upto 4 GPIO lines.
+      Each interrupt line is shared by up to 4 GPIO lines.
     maxItems: 8
 
   interrupt-controller: true
diff --git a/Bindings/pinctrl/microchip,mpfs-pinctrl-mssio.yaml b/Bindings/pinctrl/microchip,mpfs-pinctrl-mssio.yaml
new file mode 100644 (file)
index 0000000..fe05196
--- /dev/null
@@ -0,0 +1,109 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/microchip,mpfs-pinctrl-mssio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip Polarfire SoC MSSIO pinctrl
+
+maintainers:
+  - Conor Dooley <conor.dooley@microchip.com>
+
+properties:
+  compatible:
+    oneOf:
+      - const: microchip,mpfs-pinctrl-mssio
+      - items:
+          - const: microchip,pic64gx-pinctrl-mssio
+          - const: microchip,mpfs-pinctrl-mssio
+
+  reg:
+    maxItems: 1
+
+  pinctrl-use-default: true
+
+patternProperties:
+  '-cfg$':
+    type: object
+    additionalProperties: false
+
+    patternProperties:
+      '-pins$':
+        type: object
+        additionalProperties: false
+
+        allOf:
+          - $ref: pincfg-node.yaml#
+          - $ref: pinmux-node.yaml#
+
+        properties:
+          pins:
+            description:
+              The list of IOs that properties in the pincfg node apply to.
+
+          function:
+            description:
+              A string containing the name of the function to mux for these
+              pins. The "reserved" function tristates a pin.
+            enum: [ sd, emmc, qspi, spi, usb, uart, i2c, can, mdio, misc
+                    reserved, gpio, fabric-test, tied-low, tied-high, tristate ]
+
+          bias-bus-hold: true
+          bias-disable: true
+          bias-pull-down: true
+          bias-pull-up: true
+          input-schmitt-enable: true
+          low-power-enable: true
+
+          drive-strength:
+            enum: [ 2, 4, 6, 8, 10, 12, 16, 20 ]
+
+          power-source:
+            description:
+              Which bank voltage to use. This cannot differ for pins in a
+              given bank, the whole bank uses the same voltage.
+            enum: [ 1200000, 1500000, 1800000, 2500000, 3300000 ]
+
+          microchip,clamp-diode:
+            $ref: /schemas/types.yaml#/definitions/flag
+            description:
+              Reflects the "Clamp Diode" setting in the MSS Configurator for
+              this pin. This setting controls whether or not input voltage
+              clamping should be enabled.
+
+          microchip,ibufmd:
+            $ref: /schemas/types.yaml#/definitions/uint32
+            default: 0
+            description:
+              Reflects the "IBUFMD" bits in the MSS Configurator output files
+              for this pin.
+
+        required:
+          - pins
+          - function
+          - power-source
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    pinctrl@204 {
+      compatible = "microchip,mpfs-pinctrl-mssio";
+      reg = <0x204 0x7c>;
+
+      ikrd-spi1-cfg {
+        spi1-pins {
+          pins = <30>, <31>, <32>, <33>;
+          function = "spi";
+          bias-pull-up;
+          drive-strength = <8>;
+          power-source = <3300000>;
+          microchip,ibufmd = <0x1>;
+        };
+      };
+    };
+...
index fa47732d7cef80e0aaac9e1c6388ebde31088c8d..9fbbafcdc0635815e679d88ec22f797e003994ea 100644 (file)
@@ -21,10 +21,15 @@ properties:
     pattern: '^gpio@[0-9a-f]+$'
 
   compatible:
-    enum:
-      - microchip,sparx5-sgpio
-      - mscc,ocelot-sgpio
-      - mscc,luton-sgpio
+    oneOf:
+      - enum:
+          - microchip,sparx5-sgpio
+          - mscc,ocelot-sgpio
+          - mscc,luton-sgpio
+      - items:
+          - enum:
+              - microchip,lan9691-sgpio
+          - const: microchip,sparx5-sgpio
 
   '#address-cells':
     const: 1
@@ -80,7 +85,12 @@ patternProperties:
     type: object
     properties:
       compatible:
-        const: microchip,sparx5-sgpio-bank
+        oneOf:
+          - items:
+              - enum:
+                  - microchip,lan9691-sgpio-bank
+              - const: microchip,sparx5-sgpio-bank
+          - const: microchip,sparx5-sgpio-bank
 
       reg:
         description: |
index 31bc30a8175299554459cffd1f540be7387e310b..930955caacd165bcf62cb6c1f45e5335776f118f 100644 (file)
@@ -14,6 +14,7 @@ properties:
   compatible:
     oneOf:
       - enum:
+          - microchip,lan96455f-pinctrl
           - microchip,lan966x-pinctrl
           - microchip,lan9691-pinctrl
           - microchip,sparx5-pinctrl
@@ -30,6 +31,11 @@ properties:
               - microchip,lan9693-pinctrl
               - microchip,lan9692-pinctrl
           - const: microchip,lan9691-pinctrl
+      - items:
+          - enum:
+              - microchip,lan96457f-pinctrl
+              - microchip,lan96459f-pinctrl
+          - const: microchip,lan96455f-pinctrl
 
   reg:
     items:
index d2b0cfeffb501e0b22c616e5debf52c960afcbd5..2836a1a105798a8bb5a38244f7cbf8db350b755e 100644 (file)
@@ -10,14 +10,16 @@ maintainers:
   - Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
 
 description:
-  Top Level Mode Multiplexer pin controller in Qualcomm Glymur SoC.
+  Top Level Mode Multiplexer pin controller in Qualcomm Glymur and Mahua SoC.
 
 allOf:
   - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
 
 properties:
   compatible:
-    const: qcom,glymur-tlmm
+    enum:
+      - qcom,glymur-tlmm
+      - qcom,mahua-tlmm
 
   reg:
     maxItems: 1
index 36d6659714842464a47ff701d639341e040e68c7..f049013a4e0c958932db66605052775020914f57 100644 (file)
@@ -49,6 +49,17 @@ properties:
   gpio-ranges:
     maxItems: 1
 
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 2
+    description:
+      The first cell contains the global GPIO port index, constructed using the
+      RZT2H_GPIO() helper macro from <dt-bindings/pinctrl/renesas,r9a09g077-pinctrl.h>
+      and the second cell is used to specify the flag.
+      E.g. "interrupts = <RZT2H_GPIO(8, 6) IRQ_TYPE_EDGE_FALLING>;" if P08_6 is
+      being used as an interrupt.
+
   clocks:
     maxItems: 1
 
@@ -139,6 +150,8 @@ examples:
         gpio-controller;
         #gpio-cells = <2>;
         gpio-ranges = <&pinctrl 0 0 288>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
         power-domains = <&cpg>;
 
         serial0-pins {
index f3c433015b125e53846e31f9c8eb961366f795cd..2b88f25e80a6db2d288fed40e3b353128e55533f 100644 (file)
@@ -48,6 +48,7 @@ properties:
           - enum:
               - google,gs101-wakeup-eint
               - samsung,exynos2200-wakeup-eint
+              - samsung,exynos9610-wakeup-eint
               - samsung,exynos9810-wakeup-eint
               - samsung,exynos990-wakeup-eint
               - samsung,exynosautov9-wakeup-eint
index ddc5e2efff21faf6b80282f149d53e9156039670..7b006009ca0e762401644eaec60978501a22367c 100644 (file)
@@ -55,6 +55,7 @@ properties:
       - samsung,exynos850-pinctrl
       - samsung,exynos8890-pinctrl
       - samsung,exynos8895-pinctrl
+      - samsung,exynos9610-pinctrl
       - samsung,exynos9810-pinctrl
       - samsung,exynos990-pinctrl
       - samsung,exynosautov9-pinctrl
index d80e88aa07b45f4a3d90e8217caf93d32655927d..3e734aeb01cc9da5953ac29417c73790f05134cf 100644 (file)
@@ -11,7 +11,9 @@ maintainers:
 
 properties:
   compatible:
-    const: spacemit,k1-pinctrl
+    enum:
+      - spacemit,k1-pinctrl
+      - spacemit,k3-pinctrl
 
   reg:
     items:
@@ -30,6 +32,10 @@ properties:
   resets:
     maxItems: 1
 
+  spacemit,apbc:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: Phandle to syscon that access the protected register
+
 patternProperties:
   '-cfg$':
     type: object
@@ -72,10 +78,20 @@ patternProperties:
             enum: [ 0, 1 ]
 
           drive-strength:
-            description: |
-              typical current when output high level.
-              1.8V output: 11, 21, 32, 42 (mA)
-              3.3V output: 7, 10, 13, 16, 19, 23, 26, 29 (mA)
+            description:
+              typical current (in mA) when the output at high level.
+            anyOf:
+              - enum: [ 11, 21, 32, 42 ]
+                description: For K1 SoC, 1.8V voltage output
+
+              - enum: [ 7, 10, 13, 16, 19, 23, 26, 29 ]
+                description: For K1 SoC, 3.3V voltage output
+
+              - enum: [ 2, 4, 6, 7, 9, 11, 13, 14, 21, 23, 25, 26, 28, 30, 31, 33 ]
+                description: For K3 SoC, 1.8V voltage output
+
+              - enum: [ 3, 5, 7, 9, 11, 13, 15, 17, 25, 27, 29, 31, 33, 35, 37, 38 ]
+                description: For K3 SoC, 3.3V voltage output
 
           input-schmitt:
             description: |
@@ -126,6 +142,7 @@ examples:
             clocks = <&syscon_apbc 42>,
                      <&syscon_apbc 94>;
             clock-names = "func", "bus";
+            spacemit,apbc = <&syscon_apbc>;
 
             uart0_2_cfg: uart0-2-cfg {
                 uart0-2-pins {
index 9de3fe73c1eb65035aa83f03925524f166f487c7..d49a5130b87c7998f612af149b2922d8a0d677ca 100644 (file)
@@ -38,6 +38,9 @@ properties:
   reg:
     maxItems: 1
 
+  "#address-cells":
+    const: 0
+
   interrupts:
     maxItems: 1
 
index f8a13928f615b8946b6ca249dfeed9597fe050e7..9507b342a7ee64d0fe53930a9f88fcc3cb64dd43 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Mediatek Power Domains Controller
 
 maintainers:
-  - MandyJH Liu <mandyjh.liu@mediatek.com>
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
   - Matthias Brugger <mbrugger@suse.com>
 
 description: |
index d342b113fca278eed84fb1f2d03967eea5b93975..b5e92b5007648bd9366012f54d8388a6be3fbc4f 100644 (file)
@@ -23,6 +23,9 @@ properties:
   compatible:
     const: syscon-poweroff
 
+  reg:
+    maxItems: 1
+
   mask:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: Update only the register bits defined by the mask (32 bit).
@@ -44,7 +47,10 @@ properties:
 
 required:
   - compatible
-  - offset
+
+anyOf:
+  - required: [offset]
+  - required: [reg]
 
 additionalProperties: false
 
index ccd5558700943ef56f5e1c866400bcc21c0115f0..b1c0bcb1e25dc2806267d430de52e000c377ead0 100644 (file)
@@ -79,7 +79,7 @@ allOf:
         required:
           - value
 
-      oneOf:
+      anyOf:
         - required: [offset]
         - required: [reg]
 
index 491488e7b970397b409c248fb0c2a524301686a9..8ebf05d9497c43388712fd1008716d1650b0c985 100644 (file)
@@ -64,7 +64,16 @@ properties:
     description: battery design capacity
 
   trickle-charge-current-microamp:
-    description: current for trickle-charge phase
+    description: current for trickle-charge phase.
+      Please note that the trickle-charging here, refers "wake-up" or
+      "pre-pre" -charging, for very empty batteries. Similar term is also
+      used for "maintenance" or "top-off" -charging of batteries (like
+      NiMh bq24400) - that is different and not controlled by this
+      property.
+
+  tricklecharge-upper-limit-microvolt:
+    description: limit when to change to precharge from trickle charge
+      Trickle-charging here refers "wake-up" or "pre-pre" -charging.
 
   precharge-current-microamp:
     description: current for pre-charge phase
@@ -119,6 +128,21 @@ properties:
       - description: alert when battery temperature is lower than this value
       - description: alert when battery temperature is higher than this value
 
+  # The volt-drop* -properties describe voltage-drop for a battery, described
+  # as VDROP in:
+  # https://patentimages.storage.googleapis.com/6c/f5/17/c1d901c220f6a9/US20150032394A1.pdf
+  volt-drop-thresh-microvolt:
+    description: Threshold for starting the VDR correction
+    maximum: 48000000
+
+  volt-drop-soc-bp:
+    description: Table of capacity values matching the values in VDR tables.
+      The value should be given as basis points, 1/100 of a percent.
+
+  volt-drop-temperatures-millicelsius:
+    description: An array containing the temperature in milli celsius, for each
+      of the VDR lookup table.
+
 required:
   - compatible
 
@@ -137,6 +161,13 @@ patternProperties:
         - description: battery capacity percent
           maximum: 100
 
+  '^volt-drop-[0-9]-microvolt':
+    description: Table of the voltage drop rate (VDR) values. Each entry in the
+      table should match a capacity value in the volt-drop-soc table.
+      Furthermore, the values should be obtained for the temperature given in
+      volt-drop-temperatures-millicelsius table at index matching the
+      number in this table's name.
+
 additionalProperties: false
 
 examples:
diff --git a/Bindings/power/supply/google,goldfish-battery.yaml b/Bindings/power/supply/google,goldfish-battery.yaml
new file mode 100644 (file)
index 0000000..634327c
--- /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/power/supply/google,goldfish-battery.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Battery
+
+maintainers:
+  - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+allOf:
+  - $ref: power-supply.yaml#
+
+description:
+  Android goldfish battery device generated by Android emulator.
+
+properties:
+  compatible:
+    const: google,goldfish-battery
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    battery@9020000 {
+        compatible = "google,goldfish-battery";
+        reg = <0x9020000 0x1000>;
+        interrupts = <3>;
+    };
diff --git a/Bindings/powerpc/fsl/fsl,mpc83xx.yaml b/Bindings/powerpc/fsl/fsl,mpc83xx.yaml
new file mode 100644 (file)
index 0000000..9e37d15
--- /dev/null
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/powerpc/fsl/fsl,mpc83xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale PowerQUICC II Pro (MPC83xx) platforms
+
+maintainers:
+  - J. Neuschäfer <j.ne@posteo.net>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: MPC83xx Reference Design Boards
+        items:
+          - enum:
+              - fsl,mpc8308rdb
+              - fsl,mpc8315erdb
+              - fsl,mpc8360rdk
+              - fsl,mpc8377rdb
+              - fsl,mpc8377wlan
+              - fsl,mpc8378rdb
+              - fsl,mpc8379rdb
+
+      - description: MPC8313E Reference Design Board
+        items:
+          - const: MPC8313ERDB
+          - const: MPC831xRDB
+          - const: MPC83xxRDB
+
+      - description: MPC8323E Reference Design Board
+        items:
+          - const: MPC8323ERDB
+          - const: MPC832xRDB
+          - const: MPC83xxRDB
+
+      - description: MPC8349E-mITX(-GP) Reference Design Platform
+        items:
+          - enum:
+              - MPC8349EMITX
+              - MPC8349EMITXGP
+          - const: MPC834xMITX
+          - const: MPC83xxMITX
+
+      - description: Keymile KMETER1 board
+        const: keymile,KMETER1
+
+      - description: MPC8308 P1M board
+        const: denx,mpc8308_p1m
+
+patternProperties:
+  "^soc@.*$":
+    type: object
+    properties:
+      compatible:
+        oneOf:
+          - items:
+              - enum:
+                  - fsl,mpc8315-immr
+                  - fsl,mpc8308-immr
+              - const: simple-bus
+          - items:
+              - const: fsl,mpc8360-immr
+              - const: fsl,immr
+              - const: fsl,soc
+              - const: simple-bus
+          - const: simple-bus
+
+additionalProperties: true
+
+examples:
+  - |
+    / {
+        compatible = "fsl,mpc8315erdb";
+        model = "MPC8315E-RDB";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        soc@e0000000 {
+            compatible = "fsl,mpc8315-immr", "simple-bus";
+            reg = <0xe0000000 0x00000200>;
+            #address-cells = <1>;
+            #size-cells = <1>;
+            device_type = "soc";
+            ranges = <0 0xe0000000 0x00100000>;
+            bus-frequency = <0>;
+        };
+    };
+
+...
diff --git a/Bindings/ptp/amazon,vmclock.yaml b/Bindings/ptp/amazon,vmclock.yaml
new file mode 100644 (file)
index 0000000..357790d
--- /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/ptp/amazon,vmclock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Virtual Machine Clock
+
+maintainers:
+  - David Woodhouse <dwmw2@infradead.org>
+
+description:
+  The vmclock device provides a precise clock source and allows for
+  accurate timekeeping across live migration and snapshot/restore
+  operations. The full specification of the shared data structure is
+  available at https://uapi-group.org/specifications/specs/vmclock/
+
+properties:
+  compatible:
+    const: amazon,vmclock
+
+  reg:
+    description:
+      Specifies the shared memory region containing the vmclock_abi structure.
+    maxItems: 1
+
+  interrupts:
+    description:
+      Interrupt used to notify when the contents of the vmclock_abi structure
+      have been updated.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    ptp@80000000 {
+      compatible = "amazon,vmclock";
+      reg = <0x80000000 0x1000>;
+      interrupts = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>;
+    };
index d8ebb0735c96e7c25bfe19df4a4beaff4da74ed9..cdd83ac29caf941dc7428b687aebd3fb076b9ba8 100644 (file)
@@ -27,6 +27,7 @@ properties:
 required:
   - compatible
   - reg
+  - clocks
   - '#pwm-cells'
 
 allOf:
@@ -36,9 +37,12 @@ unevaluatedProperties: false
 
 examples:
   - |
+    #include <dt-bindings/clock/lpc32xx-clock.h>
+
     pwm@4005c000 {
         compatible = "nxp,lpc3220-pwm";
         reg = <0x4005c000 0x4>;
+        clocks = <&clk LPC32XX_CLK_PWM1>;
         #pwm-cells = <3>;
     };
 
diff --git a/Bindings/regulator/adi,max77675.yaml b/Bindings/regulator/adi,max77675.yaml
new file mode 100644 (file)
index 0000000..c138e61
--- /dev/null
@@ -0,0 +1,184 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/adi,max77675.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX77675 PMIC Regulator
+
+maintainers:
+  - Joan Na <joan.na@analog.com>
+
+description:
+  The MAX77675 is a Power Management IC providing four switching buck
+  regulators (SBB0–SBB3) accessible via I2C. It supports configuration
+  of output voltages and enable controls for each regulator.
+
+allOf:
+  - $ref: /schemas/input/input.yaml
+  - $ref: /schemas/pinctrl/pincfg-node.yaml
+
+properties:
+  compatible:
+    const: adi,max77675
+
+  reg:
+    maxItems: 1
+
+  reset-time-sec:
+    description: Manual reset time in seconds
+    enum: [4, 8, 12, 16]
+    default: 4
+
+  bias-disable:
+    type: boolean
+    description: Disable internal pull-up for EN pin
+
+  input-debounce:
+    description: Debounce time for the enable pin, in microseconds
+    items:
+      - enum: [100, 30000]
+    default: 100
+
+  adi,en-mode:
+    description: |
+      Enable mode configuration.
+      The debounce time set by 'input-debounce' applies to
+      both push-button and slide-switch modes.
+      "push-button"  - A long press triggers power-on or power-down
+      "slide-switch" - Low : powers on, High : powers down
+      "logic"        - Low : powers on, High : powers down (no debounce time)
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [push-button, slide-switch, logic]
+    default: slide-switch
+
+  adi,voltage-change-latency-us:
+    description:
+      Specifies the delay (in microseconds) between an output voltage change
+      request and the start of the SBB voltage ramp.
+    enum: [10, 100]
+    default: 100
+
+  adi,drv-sbb-strength:
+    description: |
+      SIMO Buck-Boost Drive Strength Trim.
+      Controls the drive strength of the SIMO regulator's power MOSFETs.
+      This setting affects switching speed, impacting power efficiency and EMI.
+      "max"  – Maximum drive strength (~0.6 ns transition time)
+      "high" – High drive strength (~1.2 ns transition time)
+      "low"  – Low drive strength (~1.8 ns transition time)
+      "min"  – Minimum drive strength (~8 ns transition time)
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [max, high, low, min]
+    default: max
+
+  adi,dvs-slew-rate-mv-per-us:
+    description:
+      Dynamic rising slew rate for output voltage transitions, in mV/μs.
+      This setting is only used when 'adi,fixed-slew-rate' is not present.
+    enum: [5, 10]
+    default: 5
+
+  adi,bias-low-power-request:
+    type: boolean
+    description: Request low-power bias mode
+
+  adi,simo-ldo-always-on:
+    type: boolean
+    description: Set internal LDO to always supply 1.8V
+
+  regulators:
+    type: object
+    description: Regulator child nodes
+    patternProperties:
+      "^sbb[0-3]$":
+        type: object
+        $ref: regulator.yaml#
+        properties:
+          adi,fps-slot:
+            description: |
+              FPS (Flexible Power Sequencer) slot selection.
+              The Flexible Power Sequencer allows resources to power up under
+              hardware or software control. Additionally, each resource can
+              power up independently or among a group of other regulators with
+              adjustable power-up and power-down slots.
+              "slot0"   - Assign to FPS Slot 0
+              "slot1"   - Assign to FPS Slot 1
+              "slot2"   - Assign to FPS Slot 2
+              "slot3"   - Assign to FPS Slot 3
+              "default" - Use the default FPS slot value stored in register
+            $ref: /schemas/types.yaml#/definitions/string
+            enum: [slot0, slot1, slot2, slot3, default]
+            default: default
+
+          adi,fixed-slew-rate:
+            type: boolean
+            description:
+              When this property is present, the device uses a constant 2 mV/μs
+              slew rate and ignores any dynamic slew rate configuration.
+              When absent, the device uses the dynamic slew rate specified
+              by 'adi,dvs-slew-rate-mv-per-us'
+
+        unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - regulators
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      max77675: pmic@44 {
+        compatible = "adi,max77675";
+        reg = <0x44>;
+
+        reset-time-sec = <4>;
+        input-debounce = <100>;
+
+        adi,en-mode = "slide-switch";
+        adi,voltage-change-latency-us = <100>;
+        adi,drv-sbb-strength = "max";
+        adi,dvs-slew-rate-mv-per-us = <5>;
+
+        regulators {
+          sbb0: sbb0 {
+            regulator-name = "sbb0";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            adi,fps-slot = "default";
+            adi,fixed-slew-rate;
+          };
+
+          sbb1: sbb1 {
+            regulator-name = "sbb1";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            adi,fps-slot = "default";
+            adi,fixed-slew-rate;
+          };
+
+          sbb2: sbb2 {
+            regulator-name = "sbb2";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            adi,fps-slot = "default";
+            adi,fixed-slew-rate;
+          };
+
+          sbb3: sbb3 {
+            regulator-name = "sbb3";
+            regulator-min-microvolt = <500000>;
+            regulator-max-microvolt = <5500000>;
+            adi,fps-slot = "default";
+            adi,fixed-slew-rate;
+          };
+        };
+      };
+    };
+
index c654acf137682dab51411fd1e6bf2d282f55abe3..eb16e53cb5bf51d6acce6c6a20be3aa4122587fe 100644 (file)
@@ -40,13 +40,13 @@ patternProperties:
 
     unevaluatedProperties: false
 
-  "^ldo-v(dig18|emc33|ibr|mc|mch|mipi|rtc|sim1|sim2|sram|usb10)$":
+  "^ldo-v(dig18|emc33|ibr|io28|mc|mch|mipi|rtc|sim1|sim2|sram|usb10)$":
     type: object
     $ref: regulator.yaml#
 
     properties:
       regulator-name:
-        pattern: "^v(dig18|emc33|ibr|mc|mch|mipi|rtc|sim1|sim2|sram|usb)$"
+        pattern: "^v(dig18|emc33|ibr|io28|mc|mch|mipi|rtc|sim1|sim2|sram|usb)$"
 
     unevaluatedProperties: false
 
index d6b3b5a5c0b346eb346967dcbd016cfe8d1ce3ba..fe4ac9350ba0350a10e3c6739f67838221019a93 100644 (file)
@@ -287,7 +287,7 @@ examples:
           regulator-max-microvolt = <1700000>;
         };
         mt6359_vrfck_1_ldo_reg: ldo_vrfck_1 {
-          regulator-name = "vrfck";
+          regulator-name = "vrfck_1";
           regulator-min-microvolt = <1240000>;
           regulator-max-microvolt = <1600000>;
         };
@@ -309,7 +309,7 @@ examples:
           regulator-max-microvolt = <3300000>;
         };
         mt6359_vemc_1_ldo_reg: ldo_vemc_1 {
-          regulator-name = "vemc";
+          regulator-name = "vemc_1";
           regulator-min-microvolt = <2500000>;
           regulator-max-microvolt = <3300000>;
         };
diff --git a/Bindings/regulator/qcom,wcn3990-pmu.yaml b/Bindings/regulator/qcom,wcn3990-pmu.yaml
new file mode 100644 (file)
index 0000000..9a7abc8
--- /dev/null
@@ -0,0 +1,100 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/qcom,wcn3990-pmu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. WCN3990 PMU Regulators
+
+maintainers:
+  - Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
+
+description:
+  The WCN3990 package contains discrete modules for WLAN and Bluetooth. They
+  are powered by the Power Management Unit (PMU) that takes inputs from the
+  host and provides LDO outputs. This document describes this module.
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn3950-pmu
+      - qcom,wcn3988-pmu
+      - qcom,wcn3990-pmu
+      - qcom,wcn3991-pmu
+      - qcom,wcn3998-pmu
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  vddxo-supply:
+    description: VDD_XTAL supply regulator handle
+
+  vddrf-supply:
+    description: VDD_RF supply regulator handle
+
+  vddch0-supply:
+    description: chain 0 supply regulator handle
+
+  vddch1-supply:
+    description: chain 1 supply regulator handle
+
+  swctrl-gpios:
+    maxItems: 1
+    description: GPIO line indicating the state of the clock supply to the BT module
+
+  clocks:
+    maxItems: 1
+    description: Reference clock handle
+
+  regulators:
+    type: object
+    description:
+      LDO outputs of the PMU
+
+    patternProperties:
+      "^ldo[0-9]$":
+        $ref: regulator.yaml#
+        type: object
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - regulators
+  - vddio-supply
+  - vddxo-supply
+  - vddrf-supply
+  - vddch0-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    pmu {
+        compatible = "qcom,wcn3990-pmu";
+
+        vddio-supply = <&vreg_io>;
+        vddxo-supply = <&vreg_xo>;
+        vddrf-supply = <&vreg_rf>;
+        vddch0-supply = <&vreg_ch0>;
+
+        regulators {
+            vreg_pmu_io: ldo0 {
+                regulator-name = "vreg_pmu_io";
+            };
+
+            vreg_pmu_xo: ldo1 {
+                regulator-name = "vreg_pmu_xo";
+            };
+
+            vreg_pmu_rf: ldo2 {
+                regulator-name = "vreg_pmu_rf";
+            };
+
+            vreg_pmu_ch0: ldo3 {
+                regulator-name = "vreg_pmu_ch0";
+            };
+        };
+    };
index 41678400e63fa6f487a361544201cd76ef6ae95f..6c23f18a32c6c57367bf8c25828039984d6e2bb7 100644 (file)
@@ -24,6 +24,11 @@ properties:
   reg:
     maxItems: 1
 
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+
 additionalProperties: false
 
 required:
index 77573bcb6b791e4f90837d70309d1f32331f098a..019aeb664caeca96a8c8d7bc34d6768e3797055a 100644 (file)
@@ -168,7 +168,7 @@ properties:
       offset from voltage set to regulator.
 
   regulator-uv-protection-microvolt:
-    description: Set over under voltage protection limit. This is a limit where
+    description: Set under voltage protection limit. This is a limit where
       hardware performs emergency shutdown. Zero can be passed to disable
       protection and value '1' indicates that protection should be enabled but
       limit setting can be omitted. Limit is given as microvolt offset from
@@ -182,7 +182,7 @@ properties:
       is given as microvolt offset from voltage set to regulator.
 
   regulator-uv-warn-microvolt:
-    description: Set over under voltage warning limit. This is a limit where
+    description: Set under voltage warning limit. This is a limit where
       hardware is assumed still to be functional but approaching limit where
       it gets damaged. Recovery actions should be initiated. Zero can be passed
       to disable detection and value '1' indicates that detection should
@@ -274,6 +274,7 @@ patternProperties:
           suspend. This property is now deprecated, instead setting voltage
           for suspend mode via the API which regulator driver provides is
           recommended.
+        deprecated: true
 
       regulator-changeable-in-suspend:
         description: whether the default voltage and the regulator on/off
index e95e046e9ed609c78555db693aefcb932e8d4df4..983f4c1ce3806e9d0685f951882c1dd0d9fb3257 100644 (file)
@@ -15,6 +15,10 @@ description: |
   supply of 2.5V to 5.5V. It can provide up to 3.5A continuous current
   capability at over 80% high efficiency.
 
+  The RT8092 is similar type buck converter. Compared to RT5739, it can offer
+  up to 4A output current and more output voltage range to meet the application
+  on most mobile products.
+
 allOf:
   - $ref: regulator.yaml#
 
@@ -23,6 +27,7 @@ properties:
     enum:
       - richtek,rt5733
       - richtek,rt5739
+      - richtek,rt8092
 
   reg:
     maxItems: 1
diff --git a/Bindings/regulator/rohm,bd72720-regulator.yaml b/Bindings/regulator/rohm,bd72720-regulator.yaml
new file mode 100644 (file)
index 0000000..5518082
--- /dev/null
@@ -0,0 +1,148 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/rohm,bd72720-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD72720 Power Management Integrated Circuit regulators
+
+maintainers:
+  - Matti Vaittinen <mazziesaccount@gmail.com>
+
+description: |
+  This module is part of the ROHM BD72720 MFD device. For more details
+  see Documentation/devicetree/bindings/mfd/rohm,bd72720-pmic.yaml.
+
+  The regulator controller is represented as a sub-node of the PMIC node
+  on the device tree.
+
+  Regulator nodes should be named to BUCK_<number> and LDO_<number>.
+  The valid names for BD72720 regulator nodes are
+  buck1, buck2, buck3, buck4, buck5, buck6, buck7, buck8, buck9, buck10
+  ldo1, ldo2, ldo3, ldo4, ldo5, ldo6, ldo7, ldo8, ldo9, ldo10, ldo11
+
+patternProperties:
+  "^ldo([1-9]|1[0-1])$":
+    type: object
+    description:
+      Properties for single LDO regulator.
+    $ref: regulator.yaml#
+
+    properties:
+      regulator-name:
+        pattern: "^ldo([1-9]|1[0-1])$"
+
+      rohm,dvs-run-voltage:
+        description:
+          PMIC default "RUN" state voltage in uV. See below table for
+          LDOs which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+      rohm,dvs-idle-voltage:
+        description:
+          PMIC default "IDLE" state voltage in uV. See below table for
+          LDOs which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+      rohm,dvs-suspend-voltage:
+        description:
+          PMIC default "SUSPEND" state voltage in uV. See below table for
+          LDOs which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+      rohm,dvs-lpsr-voltage:
+        description:
+          PMIC default "deep-idle" state voltage in uV. See below table for
+          LDOs which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+        # Supported default DVS states:
+        #     ldo        |    run     |   idle    | suspend   | lpsr
+        # --------------------------------------------------------------
+        # 1, 2, 3, and 4 | supported  | supported | supported | supported
+        # --------------------------------------------------------------
+        # 5 - 11         |                    supported (*)
+        # --------------------------------------------------------------
+        #
+        # (*) All states use same voltage but have own enable / disable
+        #      settings. Voltage 0 can be specified for a state to make
+        #      regulator disabled on that state.
+
+    unevaluatedProperties: false
+
+  "^buck([1-9]|10)$":
+    type: object
+    description:
+      Properties for single BUCK regulator.
+    $ref: regulator.yaml#
+
+    properties:
+      regulator-name:
+        pattern: "^buck([1-9]|10)$"
+
+      rohm,ldon-head-microvolt:
+        description:
+          Set this on boards where BUCK10 is used to supply LDOs 1-4. The bucki
+          voltage will be changed by the PMIC to follow the LDO output voltages
+          with the offset voltage given here. This will improve the LDO efficiency.
+        minimum: 50000
+        maximum: 300000
+
+      rohm,dvs-run-voltage:
+        description:
+          PMIC default "RUN" state voltage in uV. See below table for
+          bucks which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+      rohm,dvs-idle-voltage:
+        description:
+          PMIC default "IDLE" state voltage in uV. See below table for
+          bucks which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+      rohm,dvs-suspend-voltage:
+        description:
+          PMIC default "SUSPEND" state voltage in uV. See below table for
+          bucks which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+      rohm,dvs-lpsr-voltage:
+        description:
+          PMIC default "deep-idle" state voltage in uV. See below table for
+          bucks which support this. 0 means disabled.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 3300000
+
+        # Supported default DVS states:
+        #     buck       |    run     |   idle    | suspend   | lpsr
+        # --------------------------------------------------------------
+        # 1, 2, 3, and 4 | supported  | supported | supported | supported
+        # --------------------------------------------------------------
+        # 5 - 10    |                    supported (*)
+        # --------------------------------------------------------------
+        #
+        # (*) All states use same voltage but have own enable / disable
+        #      settings. Voltage 0 can be specified for a state to make
+        #      regulator disabled on that state.
+
+    required:
+      - regulator-name
+
+    unevaluatedProperties: false
+
+additionalProperties: false
diff --git a/Bindings/regulator/samsung,s2mpg10-regulator.yaml b/Bindings/regulator/samsung,s2mpg10-regulator.yaml
new file mode 100644 (file)
index 0000000..7252f94
--- /dev/null
@@ -0,0 +1,158 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/samsung,s2mpg10-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S2MPG10 Power Management IC regulators
+
+maintainers:
+  - André Draszik <andre.draszik@linaro.org>
+
+description: |
+  This is part of the device tree bindings for the S2MG10 Power Management IC
+  (PMIC).
+
+  The S2MPG10 PMIC provides 10 buck and 31 LDO regulators.
+
+  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
+  additional information and example.
+
+properties:
+  # 1 LDO with possible (but limited) external control
+  ldo20m:
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single LDO regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg10-ext-control"
+
+    properties:
+      regulator-ramp-delay: false
+
+      samsung,ext-control:
+        minimum: 11
+
+patternProperties:
+  # 10 bucks
+  "^buck([1-9]|10)m$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single buck regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg10-ext-control"
+
+    properties:
+      regulator-ramp-delay:
+        enum: [6250, 12500, 25000]
+        default: 6250
+
+      samsung,ext-control:
+        maximum: 10
+
+  # 12 standard LDOs
+  "^ldo(2[1-9]?|3[0-1])m$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for single LDO regulator.
+
+    properties:
+      regulator-ramp-delay: false
+
+  # 12 LDOs with possible external control
+  "^ldo([3-689]|1[046-9])m$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single LDO regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg10-ext-control"
+
+    properties:
+      regulator-ramp-delay: false
+
+      samsung,ext-control:
+        maximum: 10
+
+  # 6 LDOs with ramp support, 5 out of those with possible external control
+  "^ldo(1[1235]?|7)m$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single LDO regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg10-ext-control"
+
+    properties:
+      regulator-ramp-delay:
+        enum: [6250, 12500]
+        default: 6250
+
+      samsung,ext-control:
+        maximum: 10
+
+$defs:
+  s2mpg10-ext-control:
+    properties:
+      samsung,ext-control:
+        description: |
+          These rails can be controlled via one of several possible external
+          (hardware) signals. If so, this property configures the signal the PMIC
+          should monitor. For S2MPG10 rails where external control is possible other
+          than ldo20m, the following values generally corresponding to the
+          respective on-chip pin are valid:
+            - 0 # S2MPG10_EXTCTRL_PWREN - PWREN pin
+            - 1 # S2MPG10_EXTCTRL_PWREN_MIF - PWREN_MIF pin
+            - 2 # S2MPG10_EXTCTRL_AP_ACTIVE_N - ~AP_ACTIVE_N pin
+            - 3 # S2MPG10_EXTCTRL_CPUCL1_EN - CPUCL1_EN pin
+            - 4 # S2MPG10_EXTCTRL_CPUCL1_EN2 - CPUCL1_EN & PWREN pins
+            - 5 # S2MPG10_EXTCTRL_CPUCL2_EN - CPUCL2_EN pin
+            - 6 # S2MPG10_EXTCTRL_CPUCL2_EN2 - CPUCL2_E2 & PWREN pins
+            - 7 # S2MPG10_EXTCTRL_TPU_EN - TPU_EN pin
+            - 8 # S2MPG10_EXTCTRL_TPU_EN2 - TPU_EN & ~AP_ACTIVE_N pins
+            - 9 # S2MPG10_EXTCTRL_TCXO_ON - TCXO_ON pin
+            - 10 # S2MPG10_EXTCTRL_TCXO_ON2 - TCXO_ON & ~AP_ACTIVE_N pins
+
+          For S2MPG10 ldo20m, the following values are valid
+            - 11 # S2MPG10_EXTCTRL_LDO20M_EN2 - VLDO20M_EN & LDO20M_SFR
+            - 12 # S2MPG10_EXTCTRL_LDO20M_EN - VLDO20M_EN pin
+
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 12
+
+      enable-gpios:
+        description:
+          For rails where external control is done via a GPIO, this optional
+          property describes the GPIO line used.
+
+    dependentRequired:
+      enable-gpios: [ "samsung,ext-control" ]
+
+allOf:
+  # Bucks 8, 9, and LDO 1 can not be controlled externally - above definition
+  # allows it and we deny it here. This approach reduces repetition.
+  - if:
+      anyOf:
+        - required: [buck8m]
+        - required: [buck9m]
+        - required: [ldo1m]
+    then:
+      patternProperties:
+        "^(buck[8-9]|ldo1)m$":
+          properties:
+            samsung,ext-control: false
+
+additionalProperties: false
diff --git a/Bindings/regulator/samsung,s2mpg11-regulator.yaml b/Bindings/regulator/samsung,s2mpg11-regulator.yaml
new file mode 100644 (file)
index 0000000..1193863
--- /dev/null
@@ -0,0 +1,136 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/samsung,s2mpg11-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung S2MPG11 Power Management IC regulators
+
+maintainers:
+  - André Draszik <andre.draszik@linaro.org>
+
+description: |
+  This is part of the device tree bindings for the S2MG11 Power Management IC
+  (PMIC).
+
+  The S2MPG11 PMIC provides 12 buck, 1 buck-boost, and 15 LDO regulators.
+
+  See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
+  additional information and example.
+
+properties:
+  buckboost:
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for the buck-boost regulator.
+
+    properties:
+      regulator-ramp-delay: false
+
+patternProperties:
+  # 12 bucks
+  "^buck(([1-9]|10)s|[ad])$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single buck regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg11-ext-control"
+
+    properties:
+      regulator-ramp-delay:
+        enum: [6250, 12500, 25000]
+        default: 6250
+
+  # 11 standard LDOs
+  "^ldo([3-79]|1[01245])s$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single LDO regulator.
+
+    properties:
+      regulator-ramp-delay: false
+
+  # 2 LDOs with possible external control
+  "^ldo(8|13)s$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for single LDO regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg11-ext-control"
+
+    properties:
+      regulator-ramp-delay: false
+
+  # 2 LDOs with ramp support and possible external control
+  "^ldo[12]s$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+    description:
+      Properties for a single LDO regulator.
+
+    allOf:
+      - $ref: "#/$defs/s2mpg11-ext-control"
+
+    properties:
+      regulator-ramp-delay:
+        enum: [6250, 12500]
+        default: 6250
+
+$defs:
+  s2mpg11-ext-control:
+    properties:
+      samsung,ext-control:
+        description: |
+          These rails can be controlled via one of several possible external
+          (hardware) signals. If so, this property configures the signal the PMIC
+          should monitor. The following values generally corresponding to the
+          respective on-chip pin are valid:
+            - 0 # S2MPG11_EXTCTRL_PWREN - PWREN pin
+            - 1 # S2MPG11_EXTCTRL_PWREN_MIF - PWREN_MIF pin
+            - 2 # S2MPG11_EXTCTRL_AP_ACTIVE_N - ~AP_ACTIVE_N pin
+            - 3 # S2MPG11_EXTCTRL_G3D_EN - G3D_EN pin
+            - 4 # S2MPG11_EXTCTRL_G3D_EN2 - G3D_EN & ~AP_ACTIVE_N pins
+            - 5 # S2MPG11_EXTCTRL_AOC_VDD - AOC_VDD pin
+            - 6 # S2MPG11_EXTCTRL_AOC_RET - AOC_RET pin
+            - 7 # S2MPG11_EXTCTRL_UFS_EN - UFS_EN pin
+            - 8 # S2MPG11_EXTCTRL_LDO13S_EN - VLDO13S_EN pin
+
+        $ref: /schemas/types.yaml#/definitions/uint32
+        minimum: 0
+        maximum: 8
+
+      enable-gpios:
+        description:
+          For rails where external control is done via a GPIO, this optional
+          property describes the GPIO line used.
+
+    dependentRequired:
+      enable-gpios: [ "samsung,ext-control" ]
+
+allOf:
+  # Bucks 4, 6, 7 and 10 can not be controlled externally - above definition
+  # allows it and we deny it here. This approach reduces repetition.
+  - if:
+      anyOf:
+        - required: [buck4s]
+        - required: [buck6s]
+        - required: [buck7s]
+        - required: [buck10s]
+    then:
+      patternProperties:
+        "^buck([467]|10)s$":
+          properties:
+            samsung,ext-control: false
+
+additionalProperties: false
diff --git a/Bindings/regulator/ti,tps65185.yaml b/Bindings/regulator/ti,tps65185.yaml
new file mode 100644 (file)
index 0000000..af0f638
--- /dev/null
@@ -0,0 +1,96 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/ti,tps65185.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI TPS65185 Power Management Integrated Circuit
+
+maintainers:
+  - Andreas Kemnade <andreas@kemnade.info>
+
+description:
+  TPS65185 is a Power Management IC to provide Power for EPDs with one 3.3V
+  switch, 2 symmetric LDOs behind 2 DC/DC converters, and one unsymmetric
+  regulator for a compensation voltage.
+
+properties:
+  compatible:
+    const: ti,tps65185
+
+  reg:
+    maxItems: 1
+
+  enable-gpios:
+    description:
+      PWRUP pin
+    maxItems: 1
+
+  pwr-good-gpios:
+    maxItems: 1
+
+  vcom-ctrl-gpios:
+    maxItems: 1
+
+  wakeup-gpios:
+    maxItems: 1
+
+  vin-supply: true
+
+  interrupts:
+    maxItems: 1
+
+  regulators:
+    type: object
+    additionalProperties: false
+    patternProperties:
+      "^(vcom|vposneg|v3p3)$":
+        unevaluatedProperties: false
+        type: object
+        $ref: /schemas/regulator/regulator.yaml
+
+required:
+  - compatible
+  - reg
+  - pwr-good-gpios
+  - vin-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@18 {
+            compatible = "ti,tps65185";
+            reg = <0x18>;
+            pinctrl-names = "default";
+            pinctrl-0 = <&pinctrl_tps65185_gpio>;
+            pwr-good-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+            vcom-ctrl-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
+            enable-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+            wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+            vin-supply = <&epdc_pmic_supply>;
+            interrupts-extended = <&gpio2 0 IRQ_TYPE_LEVEL_LOW>;
+
+            regulators {
+                vcom {
+                    regulator-name = "vcom";
+                };
+
+                vposneg {
+                    regulator-name = "vposneg";
+                    regulator-min-microvolt = <15000000>;
+                    regulator-max-microvolt = <15000000>;
+                };
+
+                v3p3 {
+                    regulator-name = "v3p3";
+                };
+            };
+        };
+    };
index 57d75acb0b5e52ca49d1361176fdebc18a0bf7a2..ce8ec0119469c8fc0979a192b6e3d3a03108d7d2 100644 (file)
@@ -28,6 +28,7 @@ properties:
       - fsl,imx8qxp-cm4
       - fsl,imx8ulp-cm33
       - fsl,imx93-cm33
+      - fsl,imx95-cm7
 
   clocks:
     maxItems: 1
index 179c98b33b4d9fac98bc890c1f173d39e9510626..bdbb12118da4358cac4a19bf88d21db35157dfe9 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Mediatek SCP
 
 maintainers:
-  - Tinghan Shen <tinghan.shen@mediatek.com>
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
 
 description:
   This binding provides support for ARM Cortex M4 Co-processor found on some
index 137f950283133536ac243cc3cfd33bd5b426b242..16a245fe2738d1c9506c6e67de7e73bf2118ca7a 100644 (file)
@@ -32,6 +32,8 @@ properties:
   reg:
     maxItems: 1
 
+  cx-supply: true
+
   px-supply:
     description: Phandle to the PX regulator
 
@@ -159,6 +161,9 @@ allOf:
           items:
             - const: lcx
             - const: lmx
+    else:
+      properties:
+        cx-supply: false
 
   - if:
       properties:
index 63a82e7a8bf8885a225d9ece8c8c2f652105f8f1..68c17bf18987c4da5f57aef4b6c9e971331ef4bd 100644 (file)
@@ -44,6 +44,9 @@ properties:
       - const: stop-ack
       - const: shutdown-ack
 
+  iommus:
+    maxItems: 1
+
   power-domains:
     minItems: 1
     maxItems: 3
index 2dd479cf48217a0799ab4e4318026d8b93c3c995..11b056d6a4808b95997af135fe6a59dd337e2cd7 100644 (file)
@@ -187,7 +187,6 @@ allOf:
             enum:
               - qcom,sm8550-adsp-pas
               - qcom,sm8650-adsp-pas
-              - qcom,sm8750-adsp-pas
               - qcom,x1e80100-adsp-pas
     then:
       properties:
diff --git a/Bindings/remoteproc/ti,hsm-m4fss.yaml b/Bindings/remoteproc/ti,hsm-m4fss.yaml
new file mode 100644 (file)
index 0000000..9244e60
--- /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/remoteproc/ti,hsm-m4fss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI K3 HSM M4F processor subsystems
+
+maintainers:
+  - Beleswar Padhi <b-padhi@ti.com>
+
+description: |
+  Some K3 family SoCs have a HSM (High Security Module) M4F core in the
+  Wakeup Voltage Domain which could be used to run secure services like
+  Authentication. Some of those are J721S2, J784S4, J722S, AM62X.
+
+$ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,hsm-m4fss
+
+  reg:
+    items:
+      - description: SRAM0_0 internal memory region
+      - description: SRAM0_1 internal memory region
+      - description: SRAM1 internal memory region
+
+  reg-names:
+    items:
+      - const: sram0_0
+      - const: sram0_1
+      - const: sram1
+
+  resets:
+    maxItems: 1
+
+  firmware-name:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - resets
+  - firmware-name
+  - ti,sci
+  - ti,sci-dev-id
+  - ti,sci-proc-ids
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        remoteproc@43c00000 {
+            compatible = "ti,hsm-m4fss";
+            reg = <0x00 0x43c00000 0x00 0x20000>,
+                  <0x00 0x43c20000 0x00 0x10000>,
+                  <0x00 0x43c30000 0x00 0x10000>;
+            reg-names = "sram0_0", "sram0_1", "sram1";
+            resets = <&k3_reset 225 1>;
+            firmware-name = "hsm.bin";
+            ti,sci = <&sms>;
+            ti,sci-dev-id = <225>;
+            ti,sci-proc-ids = <0x80 0xff>;
+        };
+    };
index 463a97c11eff34c729035c36507ced563e538656..91f0a3b0c0b20e587a9ed78685866b183a269b1d 100644 (file)
@@ -66,7 +66,7 @@ The following are the mandatory properties:
 - kick-gpios:          Should specify the gpio device needed for the virtio IPC
                        stack. This will be used to interrupt the remote processor.
                        The gpio device to be used is as per the bindings in,
-                       Documentation/devicetree/bindings/gpio/gpio-dsp-keystone.txt
+                       Documentation/devicetree/bindings/gpio/ti,keystone-dsp-gpio.yaml
 
 SoC-specific Required properties:
 ---------------------------------
index d733c0bd534fb63ed7c0eada97c42832431f1fc1..5feeb2203050ae1f1404100ab7ba93e224f72d97 100644 (file)
@@ -61,6 +61,7 @@ properties:
               - sifive,u7
               - sifive,u74
               - sifive,u74-mc
+              - spacemit,x100
               - spacemit,x60
               - thead,c906
               - thead,c908
index 5bab356addc848abf8240991ff525c619b9fc0dc..c6ec9290fe07f0799f1073f4d301b5db28f61d3a 100644 (file)
@@ -24,12 +24,6 @@ description: |
   ratified states, with the exception of the I, Zicntr & Zihpm extensions.
   See the "i" property for more information.
 
-select:
-  properties:
-    compatible:
-      contains:
-        const: riscv
-
 properties:
   riscv,isa:
     description:
@@ -109,6 +103,13 @@ properties:
             The standard C extension for compressed instructions, as ratified in
             the 20191213 version of the unprivileged ISA specification.
 
+        - const: b
+          description:
+            The standard B extension for bit manipulation instructions, as
+            ratified in the 20240411 version of the unprivileged ISA
+            specification. The B standard extension comprises instructions
+            provided by the Zba, Zbb, and Zbs extensions.
+
         - const: v
           description:
             The standard V extension for vector operations, as ratified
@@ -117,10 +118,62 @@ properties:
 
         - const: h
           description:
-            The standard H extension for hypervisors as ratified in the 20191213
-            version of the privileged ISA specification.
+            The standard H extension for hypervisors as ratified in the RISC-V
+            Instruction Set Manual, Volume II Privileged Architecture,
+            Document Version 20211203.
 
         # multi-letter extensions, sorted alphanumerically
+        - const: sha
+          description: |
+            The standard Sha extension for augmented hypervisor extension as
+            ratified in RVA23 Profiles Version 1.0, with commit 0273f3c921b6
+            ("rva23/rvb23 ratified").
+
+            Sha captures the full set of features that are mandated to be
+            supported along with the H extension. Sha comprises the following
+            extensions: H, Shcounterenw, Shgatpa, Shtvala, Shvsatpa, Shvstvala,
+            Shvstvecd, and Ssstateen.
+
+        - const: shcounterenw
+          description: |
+            The standard Shcounterenw extension for support writable enables
+            in hcounteren for any supported counter, as ratified in RISC-V
+            Profiles Version 1.0, with commit b1d806605f87 ("Updated to
+            ratified state.")
+
+        - const: shgatpa
+          description: |
+            The standard Shgatpa extension indicates that for each supported
+            virtual memory scheme SvNN supported in satp, the corresponding
+            hgatp SvNNx4 mode must be supported. The hgatp mode Bare must
+            also be supported. It is ratified in RISC-V Profiles Version 1.0,
+            with commit b1d806605f87 ("Updated to ratified state.")
+
+        - const: shtvala
+          description: |
+            The standard Shtvala extension for htval be written with the
+            faulting guest physical address in all circumstances permitted by
+            the ISA. It is ratified in RISC-V Profiles Version 1.0, with
+            commit b1d806605f87 ("Updated to ratified state.")
+
+        - const: shvsatpa
+          description: |
+            The standard Shvsatpa extension for vsatp supporting all translation
+            modes supported in satp, as ratified in RISC-V Profiles Version 1.0,
+            with commit b1d806605f87 ("Updated to ratified state.")
+
+        - const: shvstvala
+          description: |
+            The standard Shvstvala extension for vstval provides all needed
+            values as ratified in RISC-V Profiles Version 1.0, with commit
+            b1d806605f87 ("Updated to ratified state.")
+
+        - const: shvstvecd
+          description: |
+            The standard Shvstvecd extension for vstvec supporting Direct mode,
+            as ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
+            ("Updated to ratified state.")
+
         - const: smaia
           description: |
             The standard Smaia supervisor-level extension for the advanced
@@ -153,24 +206,62 @@ properties:
             behavioural changes to interrupts as frozen at commit ccbddab
             ("Merge pull request #42 from riscv/jhauser-2023-RC4") of riscv-aia.
 
+        - const: ssccptr
+          description: |
+            The standard Ssccptr extension for main memory (cacheability and
+            coherence) hardware page-table reads, as ratified in RISC-V
+            Profiles Version 1.0, with commit b1d806605f87 ("Updated to
+            ratified state.")
+
         - const: sscofpmf
           description: |
             The standard Sscofpmf supervisor-level extension for count overflow
             and mode-based filtering as ratified at commit 01d1df0 ("Add ability
             to manually trigger workflow. (#2)") of riscv-count-overflow.
 
+        - const: sscounterenw
+          description: |
+            The standard Sscounterenw extension for support writable enables
+            in scounteren for any supported counter, as ratified in RISC-V
+            Profiles Version 1.0, with commit b1d806605f87 ("Updated to
+            ratified state.")
+
         - const: ssnpm
           description: |
             The standard Ssnpm extension for next-mode pointer masking as
             ratified at commit d70011dde6c2 ("Update to ratified state")
             of riscv-j-extension.
 
+        - const: ssstateen
+          description: |
+            The standard Ssstateen extension for supervisor-mode view of the
+            state-enable extension, as ratified in RISC-V Profiles Version 1.0,
+            with commit b1d806605f87 ("Updated to ratified state.")
+
         - const: sstc
           description: |
             The standard Sstc supervisor-level extension for time compare as
             ratified at commit 3f9ed34 ("Add ability to manually trigger
             workflow. (#2)") of riscv-time-compare.
 
+        - const: sstvala
+          description: |
+            The standard Sstvala extension for stval provides all needed values
+            as ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
+            ("Updated to ratified state.")
+
+        - const: sstvecd
+          description: |
+            The standard Sstvecd extension for stvec supports Direct mode as
+            ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
+            ("Updated to ratified state.")
+
+        - const: ssu64xl
+          description: |
+            The standard Ssu64xl extension for UXLEN=64 must be supported, as
+            ratified in RISC-V Profiles Version 1.0, with commit b1d806605f87
+            ("Updated to ratified state.")
+
         - const: svade
           description: |
             The standard Svade supervisor-level extension for SW-managed PTE A/D
@@ -202,20 +293,22 @@ properties:
         - const: svinval
           description:
             The standard Svinval supervisor-level extension for fine-grained
-            address-translation cache invalidation as ratified in the 20191213
-            version of the privileged ISA specification.
+            address-translation cache invalidation as ratified in the RISC-V
+            Instruction Set Manual, Volume II Privileged Architecture,
+            Document Version 20211203.
 
         - const: svnapot
           description:
             The standard Svnapot supervisor-level extensions for napot
-            translation contiguity as ratified in the 20191213 version of the
-            privileged ISA specification.
+            translation contiguity as ratified in the RISC-V Instruction Set
+            Manual, Volume II Privileged Architecture, Document Version
+            20211203.
 
         - const: svpbmt
           description:
             The standard Svpbmt supervisor-level extensions for page-based
-            memory types as ratified in the 20191213 version of the privileged
-            ISA specification.
+            memory types as ratified in the RISC-V Instruction Set Manual,
+            Volume II Privileged Architecture, Document Version 20211203.
 
         - const: svrsw60t59b
           description:
@@ -230,6 +323,12 @@ properties:
             as ratified at commit 4a69197e5617 ("Update to ratified state") of
             riscv-svvptc.
 
+        - const: za64rs
+          description:
+            The standard Za64rs extension for reservation set size of at most
+            64 bytes, as ratified in RISC-V Profiles Version 1.0, with commit
+            b1d806605f87 ("Updated to ratified state.")
+
         - const: zaamo
           description: |
             The standard Zaamo extension for atomic memory operations as
@@ -371,6 +470,27 @@ properties:
             in commit 64074bc ("Update version numbers for Zfh/Zfinx") of
             riscv-isa-manual.
 
+        - const: ziccamoa
+          description:
+            The standard Ziccamoa extension for main memory (cacheability and
+            coherence) must support all atomics in A, as ratified in RISC-V
+            Profiles Version 1.0, with commit b1d806605f87 ("Updated to
+            ratified state.")
+
+        - const: ziccif
+          description:
+            The standard Ziccif extension for main memory (cacheability and
+            coherence) instruction fetch atomicity, as ratified in RISC-V
+            Profiles Version 1.0, with commit b1d806605f87 ("Updated to
+            ratified state.")
+
+        - const: zicclsm
+          description:
+            The standard Zicclsm extension for main memory (cacheability and
+            coherence) must support misaligned loads and stores, as ratified
+            in RISC-V Profiles Version 1.0, with commit b1d806605f87 ("Updated
+            to ratified state.")
+
         - const: ziccrse
           description:
             The standard Ziccrse extension which provides forward progress
@@ -469,6 +589,20 @@ properties:
             The standard Zicboz extension for cache-block zeroing as ratified
             in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs.
 
+        - const: zicfilp
+          description: |
+            The standard Zicfilp extension for enforcing forward edge
+            control-flow integrity as ratified in commit 3f8e450 ("merge
+            pull request #227 from ved-rivos/0709") of riscv-cfi
+            github repo.
+
+        - const: zicfiss
+          description: |
+            The standard Zicfiss extension for enforcing backward edge
+            control-flow integrity as ratified in commit 3f8e450 ("merge
+            pull request #227 from ved-rivos/0709") of riscv-cfi
+            github repo.
+
         - const: zicntr
           description:
             The standard Zicntr extension for base counters and timers, as
@@ -749,6 +883,42 @@ properties:
         then:
           contains:
             const: f
+      # B comprises Zba, Zbb, and Zbs
+      - if:
+          contains:
+            const: b
+        then:
+          allOf:
+            - contains:
+                const: zba
+            - contains:
+                const: zbb
+            - contains:
+                const: zbs
+      # Zba, Zbb, Zbs together require B
+      - if:
+          allOf:
+            - contains:
+                const: zba
+            - contains:
+                const: zbb
+            - contains:
+                const: zbs
+        then:
+          contains:
+            const: b
+      # Za64rs and Ziccrse depend on Zalrsc or A
+      - if:
+          contains:
+            anyOf:
+              - const: za64rs
+              - const: ziccrse
+        then:
+          oneOf:
+            - contains:
+                const: zalrsc
+            - contains:
+                const: a
       # Zcb depends on Zca
       - if:
           contains:
@@ -790,6 +960,16 @@ properties:
         then:
           contains:
             const: f
+      # Ziccamoa depends on Zaamo or A
+      - if:
+          contains:
+            const: ziccamoa
+        then:
+          oneOf:
+            - contains:
+                const: zaamo
+            - contains:
+                const: a
       # Zvfbfmin depends on V or Zve32f
       - if:
           contains:
index 9c49482002f768cd0cc59be6db02659a43fa31ce..b958b94a924deebc7bded87a185f12d7cd649f7a 100644 (file)
@@ -7,6 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: SpacemiT SoC-based boards
 
 maintainers:
+  - Guodong Xu <guodong@riscstar.com>
   - Yangyu Chen <cyy@cyyself.name>
   - Yixun Lan <dlan@gentoo.org>
 
@@ -26,6 +27,10 @@ properties:
               - xunlong,orangepi-r2s
               - xunlong,orangepi-rv2
           - const: spacemit,k1
+      - items:
+          - enum:
+              - spacemit,k3-pico-itx
+          - const: spacemit,k3
 
 additionalProperties: true
 
index 9253aab215188873407491bd7bb4154687d49725..8ba0e10b529ac8137df35935646c7c0dd02cff39 100644 (file)
@@ -41,6 +41,7 @@ properties:
               - starfive,visionfive-2-lite
               - starfive,visionfive-2-lite-emmc
           - const: starfive,jh7110s
+          - const: starfive,jh7110
 
 additionalProperties: true
 
index 1a71935d8a1906591439c03b7678538e656324b6..699831927932949a433fa5dca767ad366fb76f2c 100644 (file)
@@ -12,9 +12,13 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - samsung,exynos5250-trng
-      - samsung,exynos850-trng
+    oneOf:
+      - enum:
+          - samsung,exynos5250-trng
+          - samsung,exynos850-trng
+      - items:
+          - const: google,gs101-trng
+          - const: samsung,exynos850-trng
 
   clocks:
     minItems: 1
@@ -24,6 +28,9 @@ properties:
     minItems: 1
     maxItems: 2
 
+  power-domains:
+    maxItems: 1
+
   reg:
     maxItems: 1
 
diff --git a/Bindings/rtc/cpcap-rtc.txt b/Bindings/rtc/cpcap-rtc.txt
deleted file mode 100644 (file)
index 45750ff..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Motorola CPCAP PMIC RTC
------------------------
-
-This module is part of the CPCAP. For more details about the whole
-chip see Documentation/devicetree/bindings/mfd/motorola-cpcap.txt.
-
-Requires node properties:
-- compatible: should contain "motorola,cpcap-rtc"
-- interrupts: An interrupt specifier for alarm and 1 Hz irq
-
-Example:
-
-&cpcap {
-       cpcap_rtc: rtc {
-               compatible = "motorola,cpcap-rtc";
-               interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>;
-       };
-};
index f89c1f660aeee5a9f0fd4b4490a58198fecd5cd2..aac91c79ffdba5d20624dd22d890820932ba1c2f 100644 (file)
@@ -23,6 +23,7 @@ properties:
           - loongson,ls1b-rtc
           - loongson,ls1c-rtc
           - loongson,ls7a-rtc
+          - loongson,ls2k0300-rtc
           - loongson,ls2k1000-rtc
       - items:
           - enum:
@@ -42,6 +43,18 @@ required:
 
 unevaluatedProperties: false
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - loongson,ls1c-rtc
+          - loongson,ls2k0300-rtc
+
+then:
+  properties:
+    interrupts: false
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
diff --git a/Bindings/rtc/motorola,cpcap-rtc.yaml b/Bindings/rtc/motorola,cpcap-rtc.yaml
new file mode 100644 (file)
index 0000000..bf2efd4
--- /dev/null
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/motorola,cpcap-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Motorola CPCAP PMIC RTC
+
+maintainers:
+  - Svyatoslav Ryhel <clamor95@gmail.com>
+
+description:
+  This module is part of the Motorola CPCAP MFD device. For more details
+  see Documentation/devicetree/bindings/mfd/motorola,cpcap.yaml. The
+  RTC is represented as a sub-node of the PMIC node on the device tree.
+
+properties:
+  compatible:
+    const: motorola,cpcap-rtc
+
+  interrupts:
+    items:
+      - description: alarm interrupt
+      - description: 1 Hz interrupt
+
+required:
+  - compatible
+  - interrupts
+
+additionalProperties: false
+
+...
index ccb1638c35b9bf247c2da023cc128cd6ffd2dcd4..988bb9fa81434cf19c61c20c3885f29740401ede 100644 (file)
@@ -14,6 +14,7 @@ properties:
     items:
       - enum:
           - renesas,r9a08g045-rtca3 # RZ/G3S
+          - renesas,r9a09g056-rtca3 # RZ/V2N
           - renesas,r9a09g057-rtca3 # RZ/V2H
       - const: renesas,rz-rtca3
 
@@ -82,7 +83,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: renesas,r9a09g057-rtca3
+            enum:
+              - renesas,r9a09g056-rtca3
+              - renesas,r9a09g057-rtca3
     then:
       properties:
         resets:
index 167ddcbd880058b6dcea9ce33bd814ff8ba6b0f6..73851f19330d7f9fc254efcd32b5977feada0b07 100644 (file)
@@ -160,6 +160,7 @@ properties:
           - enum:
               - mrvl,mmp-uart
               - spacemit,k1-uart
+              - spacemit,k3-uart
           - const: intel,xscale-uart
       - items:
           - enum:
diff --git a/Bindings/serial/google,goldfish-tty.yaml b/Bindings/serial/google,goldfish-tty.yaml
new file mode 100644 (file)
index 0000000..0626ce5
--- /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/serial/google,goldfish-tty.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google Goldfish TTY
+
+maintainers:
+  - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+allOf:
+  - $ref: /schemas/serial/serial.yaml#
+
+description:
+  Android goldfish TTY device generated by Android emulator.
+
+properties:
+  compatible:
+    const: google,goldfish-tty
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial@1f004000 {
+        compatible = "google,goldfish-tty";
+        reg = <0x1f004000 0x1000>;
+        interrupts = <12>;
+    };
index 6b1f827a335b3724f141f32dc15b3d3a6dee775a..e059b14775ebc89350e9b0c458fcb3d91e60153f 100644 (file)
@@ -10,46 +10,78 @@ maintainers:
   - Geert Uytterhoeven <geert+renesas@glider.be>
   - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
 
-allOf:
-  - $ref: serial.yaml#
-
 properties:
   compatible:
     oneOf:
+      - enum:
+          - renesas,r9a09g047-rsci # RZ/G3E
+          - renesas,r9a09g077-rsci # RZ/T2H
+
       - items:
-          - const: renesas,r9a09g087-rsci # RZ/N2H
-          - const: renesas,r9a09g077-rsci # RZ/T2H
+          - enum:
+              - renesas,r9a09g056-rsci # RZ/V2N
+              - renesas,r9a09g057-rsci # RZ/V2H(P)
+          - const: renesas,r9a09g047-rsci
 
       - items:
+          - const: renesas,r9a09g087-rsci # RZ/N2H
           - const: renesas,r9a09g077-rsci # RZ/T2H
 
   reg:
     maxItems: 1
 
   interrupts:
+    minItems: 4
     items:
       - description: Error interrupt
       - description: Receive buffer full interrupt
       - description: Transmit buffer empty interrupt
       - description: Transmit end interrupt
+      - description: Active edge detection interrupt
+      - description: Break field detection interrupt
 
   interrupt-names:
+    minItems: 4
     items:
       - const: eri
       - const: rxi
       - const: txi
       - const: tei
+      - const: aed
+      - const: bfd
 
   clocks:
     minItems: 2
-    maxItems: 3
+    maxItems: 6
 
   clock-names:
-    minItems: 2
+    oneOf:
+      - items:
+          - const: operation
+          - const: bus
+          - const: sck # optional external clock input
+
+        minItems: 2
+
+      - items:
+          - const: pclk
+          - const: tclk
+          - const: tclk_div4
+          - const: tclk_div16
+          - const: tclk_div64
+          - const: sck # optional external clock input
+
+        minItems: 5
+
+  resets:
     items:
-      - const: operation
-      - const: bus
-      - const: sck # optional external clock input
+      - description: Input for resetting the APB clock
+      - description: Input for resetting TCLK
+
+  reset-names:
+    items:
+      - const: presetn
+      - const: tresetn
 
   power-domains:
     maxItems: 1
@@ -62,6 +94,57 @@ required:
   - clock-names
   - power-domains
 
+allOf:
+  - $ref: serial.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g077-rsci
+    then:
+      properties:
+        interrupts:
+          maxItems: 4
+
+        interrupt-names:
+          maxItems: 4
+
+        clocks:
+          minItems: 2
+          maxItems: 3
+
+        clock-names:
+          minItems: 2
+          maxItems: 3
+
+        resets: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g047-rsci
+    then:
+      properties:
+        interrupts:
+          minItems: 6
+
+        interrupt-names:
+          minItems: 6
+
+        clocks:
+          minItems: 5
+          maxItems: 6
+
+        clock-names:
+          minItems: 5
+          maxItems: 6
+
+      required:
+        - resets
+        - reset-names
+
 unevaluatedProperties: false
 
 examples:
index 72483bc3274d5582812c521d128d3a9d68fc752a..82f54446835e6a5c807d5523c12bdcd00f2775f8 100644 (file)
@@ -12,15 +12,16 @@ maintainers:
 properties:
   compatible:
     oneOf:
+      - enum:
+          - renesas,scif-r7s9210          # RZ/A2
+          - renesas,scif-r9a07g044        # RZ/G2{L,LC}
+          - renesas,scif-r9a09g057        # RZ/V2H(P)
+
       - items:
           - enum:
               - renesas,scif-r7s72100     # RZ/A1H
           - const: renesas,scif           # generic SCIF compatible UART
 
-      - items:
-          - enum:
-              - renesas,scif-r7s9210      # RZ/A2
-
       - items:
           - enum:
               - renesas,scif-r8a7778      # R-Car M1
@@ -76,19 +77,14 @@ properties:
           - const: renesas,rcar-gen5-scif # R-Car Gen5
           - const: renesas,scif           # generic SCIF compatible UART
 
-      - items:
-          - enum:
-              - renesas,scif-r9a07g044      # RZ/G2{L,LC}
-
       - items:
           - enum:
               - renesas,scif-r9a07g043      # RZ/G2UL and RZ/Five
               - renesas,scif-r9a07g054      # RZ/V2L
               - renesas,scif-r9a08g045      # RZ/G3S
+              - renesas,scif-r9a08g046      # RZ/G3L
           - const: renesas,scif-r9a07g044   # RZ/G2{L,LC} fallback
 
-      - const: renesas,scif-r9a09g057       # RZ/V2H(P)
-
       - items:
           - enum:
               - renesas,scif-r9a09g047      # RZ/G3E
index d56ff4c05ae5b4751f0a7c72d1b5c1a6c52b5659..2dd3395f3f6337c186a70c30f476ce15d6878380 100644 (file)
@@ -13,7 +13,9 @@ properties:
   compatible:
     oneOf:
       - description: Cyclone5/Arria5/Arria10
-        const: altr,sys-mgr
+        items:
+          - const: altr,sys-mgr
+          - const: syscon
       - description: Stratix10 SoC
         items:
           - const: altr,sys-mgr-s10
@@ -45,7 +47,7 @@ additionalProperties: false
 examples:
   - |
     sysmgr@ffd08000 {
-      compatible = "altr,sys-mgr";
+      compatible = "altr,sys-mgr", "syscon";
       reg = <0xffd08000 0x1000>;
       cpu1-start-addr = <0xffd080c4>;
     };
index 4c96d49179676bd6178d3023dcdf0466076cfcee..27cce748e0ca5e54270f425dd152ad9b9d883e85 100644 (file)
@@ -34,6 +34,10 @@ properties:
     maxItems: 1
     description: DVFSRC common register address and length.
 
+  clocks:
+    items:
+      - description: Clock that drives the DVFSRC MCU
+
   regulators:
     type: object
     $ref: /schemas/regulator/mediatek,mt6873-dvfsrc-regulator.yaml#
@@ -50,6 +54,7 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/clock/mt8195-clk.h>
     soc {
         #address-cells = <2>;
         #size-cells = <2>;
@@ -57,6 +62,7 @@ examples:
         system-controller@10012000 {
             compatible = "mediatek,mt8195-dvfsrc";
             reg = <0 0x10012000 0 0x1000>;
+            clocks = <&topckgen CLK_TOP_DVFSRC>;
 
             regulators {
                 compatible = "mediatek,mt8195-dvfsrc-regulator";
index 39987f722411848d07487d7f48669d6f5057f213..44e4a50c31554287213901a90d8167b02596b796 100644 (file)
@@ -42,6 +42,10 @@ properties:
     type: object
     $ref: /schemas/pinctrl/microchip,mpfs-pinctrl-iomux0.yaml
 
+  pinctrl@204:
+    type: object
+    $ref: /schemas/pinctrl/microchip,mpfs-pinctrl-mssio.yaml
+
 required:
   - compatible
   - reg
diff --git a/Bindings/soc/renesas/renesas,rzn1-gpioirqmux.yaml b/Bindings/soc/renesas/renesas,rzn1-gpioirqmux.yaml
new file mode 100644 (file)
index 0000000..1a31c11
--- /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/soc/renesas/renesas,rzn1-gpioirqmux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/N1 SoCs GPIO Interrupt Multiplexer
+
+description: |
+   The Renesas RZ/N1 GPIO Interrupt Multiplexer multiplexes GPIO interrupt
+   lines to the interrupt controller available in the SoC.
+
+   It selects up to 8 of the 96 GPIO interrupt lines available and connect them
+   to 8 output interrupt lines.
+
+maintainers:
+  - Herve Codina <herve.codina@bootlin.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - renesas,r9a06g032-gpioirqmux
+      - const: renesas,rzn1-gpioirqmux
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 0
+
+  "#interrupt-cells":
+    const: 1
+
+  interrupt-map-mask:
+    items:
+      - const: 0x7f
+
+  interrupt-map:
+    description: |
+      Specifies the mapping from external GPIO interrupt lines to the output
+      interrupts. The array has up to 8 items defining the mapping related to
+      the output line 0 (GIC 103) up to the output line 7 (GIC 110).
+
+      The child interrupt number set in arrays items is computed using the
+      following formula:
+          gpio_bank * 32 + gpio_number
+      with:
+        - gpio_bank: The GPIO bank number
+            - 0 for GPIO0A,
+            - 1 for GPIO1A,
+            - 2 for GPIO2A
+        - gpio_number: Number of the gpio in the bank (0..31)
+    minItems: 1
+    maxItems: 8
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#interrupt-cells"
+  - interrupt-map-mask
+  - interrupt-map
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    gic: interrupt-controller {
+        interrupt-controller;
+        #address-cells = <0>;
+        #interrupt-cells = <3>;
+    };
+
+    interrupt-controller@51000480 {
+        compatible = "renesas,r9a06g032-gpioirqmux", "renesas,rzn1-gpioirqmux";
+        reg = <0x51000480 0x20>;
+        #address-cells = <0>;
+        #interrupt-cells = <1>;
+        interrupt-map-mask = <0x7f>;
+        interrupt-map =
+            <32 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, /* line 0, GPIO1A.0 */
+            <89 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, /* line 1, GPIO2A.25 */
+            <9 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; /* line 3, GPIO0A.9 */
+    };
index 6de47489ee42f429b46835af563112f5bbc1ac65..76ce7e98c10f3738e7de5579904260dd906507c9 100644 (file)
@@ -9,34 +9,13 @@ title: Samsung Exynos SoC series Power Management Unit (PMU)
 maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
-# Custom select to avoid matching all nodes with 'syscon'
-select:
-  properties:
-    compatible:
-      contains:
-        enum:
-          - google,gs101-pmu
-          - samsung,exynos3250-pmu
-          - samsung,exynos4210-pmu
-          - samsung,exynos4212-pmu
-          - samsung,exynos4412-pmu
-          - samsung,exynos5250-pmu
-          - samsung,exynos5260-pmu
-          - samsung,exynos5410-pmu
-          - samsung,exynos5420-pmu
-          - samsung,exynos5433-pmu
-          - samsung,exynos7-pmu
-          - samsung,exynos850-pmu
-          - samsung-s5pv210-pmu
-  required:
-    - compatible
-
 properties:
   compatible:
     oneOf:
+      - enum:
+          - google,gs101-pmu
       - items:
           - enum:
-              - google,gs101-pmu
               - samsung,exynos3250-pmu
               - samsung,exynos4210-pmu
               - samsung,exynos4212-pmu
@@ -52,6 +31,7 @@ properties:
           - const: syscon
       - items:
           - enum:
+              - axis,artpec9-pmu
               - samsung,exynos2200-pmu
               - samsung,exynos7870-pmu
               - samsung,exynos7885-pmu
index 5e1e155510b3b1137d95b87a1bade36c814eec4f..9c63dbcd4d77f930b916087b8008c7f9888a56f5 100644 (file)
@@ -15,6 +15,7 @@ properties:
       - items:
           - enum:
               - google,gs101-apm-sysreg
+              - google,gs101-dpu-sysreg
               - google,gs101-hsi0-sysreg
               - google,gs101-hsi2-sysreg
               - google,gs101-misc-sysreg
@@ -92,6 +93,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - google,gs101-dpu-sysreg
               - google,gs101-hsi0-sysreg
               - google,gs101-hsi2-sysreg
               - google,gs101-misc-sysreg
index 133a391ee68cd64e44b9355948dfd5dff655d1e0..d3a7c93c3c54f6f001df19e98324e54ad9bcaf17 100644 (file)
@@ -4,13 +4,13 @@
 $id: http://devicetree.org/schemas/soc/spacemit/spacemit,k1-syscon.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: SpacemiT K1 SoC System Controller
+title: SpacemiT K1/K3 SoC System Controller
 
 maintainers:
   - Haylen Chu <heylenay@4d2.org>
 
 description:
-  System controllers found on SpacemiT K1 SoC, which are capable of
+  System controllers found on SpacemiT K1/K3 SoC, which are capable of
   clock, reset and power-management functions.
 
 properties:
@@ -22,6 +22,10 @@ properties:
       - spacemit,k1-syscon-rcpu
       - spacemit,k1-syscon-rcpu2
       - spacemit,k1-syscon-apbc2
+      - spacemit,k3-syscon-apbc
+      - spacemit,k3-syscon-apmu
+      - spacemit,k3-syscon-dciu
+      - spacemit,k3-syscon-mpmu
 
   reg:
     maxItems: 1
@@ -39,13 +43,20 @@ properties:
   "#clock-cells":
     const: 1
     description:
-      See <dt-bindings/clock/spacemit,k1-syscon.h> for valid indices.
+      For K1 SoC, check <dt-bindings/clock/spacemit,k1-syscon.h> for valid indices.
+      For K3 SoC, check <dt-bindings/clock/spacemit,k3-clocks.h> for valid indices.
 
   "#power-domain-cells":
     const: 1
 
   "#reset-cells":
     const: 1
+    description: |
+      ID of the reset controller line. Valid IDs are defined in corresponding
+      files:
+
+      For SpacemiT K1, see include/dt-bindings/clock/spacemit,k1-syscon.h
+      For SpacemiT K3, see include/dt-bindings/reset/spacemit,k3-resets.h
 
 required:
   - compatible
@@ -60,6 +71,8 @@ allOf:
             enum:
               - spacemit,k1-syscon-apmu
               - spacemit,k1-syscon-mpmu
+              - spacemit,k3-syscon-apmu
+              - spacemit,k3-syscon-mpmu
     then:
       required:
         - "#power-domain-cells"
@@ -74,6 +87,9 @@ allOf:
               - spacemit,k1-syscon-apbc
               - spacemit,k1-syscon-apmu
               - spacemit,k1-syscon-mpmu
+              - spacemit,k3-syscon-apbc
+              - spacemit,k3-syscon-apmu
+              - spacemit,k3-syscon-mpmu
     then:
       required:
         - clocks
index 1fdbeecc5eff9db777ed9b00074b20cd3710e698..3a3313ea0890a49c388d96bd4941e5314adcfb71 100644 (file)
@@ -21,10 +21,10 @@ properties:
   reg:
     maxItems: 1
 
-  avdd-supply:
+  AVDD-supply:
     description: Analog power supply
 
-  dvdd-supply:
+  DVDD-supply:
     description: Digital power supply
 
   reset-gpios:
@@ -60,7 +60,7 @@ allOf:
       properties:
         dsd-path: false
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index d3d494ae8abfeb7516e5e1f999370a18d19a198e..18919d9112a3f24f15b95e109e2ced432770d339 100644 (file)
@@ -19,10 +19,10 @@ properties:
   reg:
     maxItems: 1
 
-  avdd-supply:
+  AVDD-supply:
     description: A 1.8V supply that powers up the AVDD pin.
 
-  dvdd-supply:
+  DVDD-supply:
     description: A 1.2V supply that powers up the DVDD pin.
 
   reset-gpios:
@@ -32,7 +32,10 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index ba9d8767c5d597e5680302bc756878665582d350..9c1baae767c4d174932a01814be9c7ac1e03825a 100644 (file)
@@ -15,12 +15,15 @@ description:
   sound quallity, which is a new high efficiency, low
   noise, constant large volume, 6th Smart K audio amplifier.
 
-allOf:
-  - $ref: dai-common.yaml#
-
 properties:
   compatible:
-    const: awinic,aw87390
+    oneOf:
+      - enum:
+          - awinic,aw87390
+      - items:
+          - enum:
+              - anbernic,rgds-amp
+          - const: awinic,aw87391
 
   reg:
     maxItems: 1
@@ -40,10 +43,31 @@ required:
   - compatible
   - reg
   - "#sound-dai-cells"
-  - awinic,audio-channel
 
 unevaluatedProperties: false
 
+allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - awinic,aw87390
+    then:
+      required:
+        - awinic,audio-channel
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - anbernic,rgds-amp
+    then:
+      properties:
+        vdd-supply: true
+
 examples:
   - |
     i2c {
index bb92d6ca314450e35509944ff2fcaf6a0bd8155c..994d68c074a9f221576a5bfef6ba125e3e30bfea 100644 (file)
@@ -33,6 +33,8 @@ properties:
   reset-gpios:
     maxItems: 1
 
+  dvdd-supply: true
+
   awinic,audio-channel:
     description:
       It is used to distinguish multiple PA devices, so that different
@@ -65,6 +67,17 @@ allOf:
     then:
       properties:
         reset-gpios: false
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: awinic,aw88261
+    then:
+      required:
+        - dvdd-supply
+    else:
+      properties:
+        dvdd-supply: false
 
 unevaluatedProperties: false
 
index beef193aaaeba0afd4eeeab38d5a2ff03c83da4f..87559d0d079a7d1a2d807a288be1bf4f152ac90d 100644 (file)
@@ -40,11 +40,33 @@ properties:
   tdm-slots:
     $ref: /schemas/types.yaml#/definitions/uint32
     description:
-      number of channels over one serializer
-      the property is ignored in DIT mode
+      Number of channels over one serializer. This property
+      specifies the TX playback TDM slot count, along with default RX slot count
+      if tdm-slots-rx is not specified.
+      The property is ignored in DIT mode.
     minimum: 2
     maximum: 32
 
+  tdm-slots-rx:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of RX capture channels over one serializer. If specified,
+      allows independent RX TDM slot count separate from TX. Requires
+      ti,async-mode to be enabled for independent TX/RX clock rates.
+      The property is ignored in DIT mode.
+    minimum: 2
+    maximum: 32
+
+  ti,async-mode:
+    description:
+      Specify to allow independent TX & RX clocking,
+      to enable audio playback & record with different sampling rate,
+      and different number of bits per frame.
+      if property is omitted, TX and RX will share same bit clock and frame clock signals,
+      thus RX need to use same bits per frame and sampling rate as TX in synchronous mode.
+      the property is ignored in DIT mode (as DIT is TX-only)
+    type: boolean
+
   serial-dir:
     description:
       A list of serializer configuration
@@ -125,7 +147,21 @@ properties:
 
   auxclk-fs-ratio:
     $ref: /schemas/types.yaml#/definitions/uint32
-    description: ratio of AUCLK and FS rate if applicable
+    description:
+      Ratio of AUCLK and FS rate if applicable. This property specifies
+      the TX ratio, along with default RX ratio if auxclk-fs-ratio-rx
+      is not specified.
+      When not specified, the inputted system clock frequency via set_sysclk
+      callback by the machine driver is used for divider calculation.
+
+  auxclk-fs-ratio-rx:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Ratio of AUCLK and FS rate for RX. If specified, allows
+      for a different RX ratio. Requires ti,async-mode to be
+      enabled when the ratio differs from auxclk-fs-ratio.
+      When not specified, it defaults to the value of auxclk-fs-ratio.
+      The property is ignored in DIT mode.
 
   gpio-controller: true
 
@@ -170,14 +206,38 @@ allOf:
   - $ref: dai-common.yaml#
   - if:
       properties:
-        opmode:
+        op-mode:
           enum:
             - 0
-
     then:
       required:
         - tdm-slots
 
+  - if:
+      properties:
+        op-mode:
+          const: 1
+    then:
+      properties:
+        tdm-slots: false
+        tdm-slots-rx: false
+        ti,async-mode: false
+        auxclk-fs-ratio-rx: false
+
+  - if:
+      required:
+        - tdm-slots-rx
+    then:
+      required:
+        - ti,async-mode
+
+  - if:
+      required:
+        - auxclk-fs-ratio-rx
+    then:
+      required:
+        - ti,async-mode
+
 unevaluatedProperties: false
 
 examples:
@@ -190,6 +250,7 @@ examples:
       interrupt-names = "tx", "rx";
       op-mode = <0>;           /* MCASP_IIS_MODE */
       tdm-slots = <2>;
+      ti,async-mode;
       dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
       dma-names = "tx", "rx";
       serial-dir = <
index a673df485ab30ff77353f3cb22ef9f663f403e4b..75ce0bc489045dd737e88615aea9a0ba60ed8457 100644 (file)
@@ -30,10 +30,20 @@ properties:
   "#sound-dai-cells":
     const: 0
 
+  vdda-supply:
+    description:
+      Analogue power supply.
+
+  vddd-supply:
+    description:
+      Interface power supply.
+
 required:
   - compatible
   - reg
   - "#sound-dai-cells"
+  - vddd-supply
+  - vdda-supply
 
 additionalProperties: false
 
@@ -46,5 +56,7 @@ examples:
         compatible = "everest,es8389";
         reg = <0x10>;
         #sound-dai-cells = <0>;
+        vddd-supply = <&vdd3v3>;
+        vdda-supply = <&vdd3v3>;
       };
     };
index 3ad197b3c82c694eb4c325c3ae91722d551bce1c..07b9a38761f21893229dee6514ccbcd5148cc954 100644 (file)
@@ -34,7 +34,9 @@ description: |
 
 properties:
   compatible:
-    const: fsl,imx8qm-audmix
+    enum:
+      - fsl,imx8qm-audmix
+      - fsl,imx952-audmix
 
   reg:
     maxItems: 1
@@ -80,7 +82,17 @@ required:
   - reg
   - clocks
   - clock-names
-  - power-domains
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-audmix
+    then:
+      required:
+        - power-domains
 
 unevaluatedProperties: false
 
index c9152bac742185e4b78b78494acf53ea6c63e760..608defc93c1e9f5ea58ad81bce4372406702a807 100644 (file)
@@ -25,6 +25,7 @@ properties:
           - fsl,imx53-asrc
           - fsl,imx8qm-asrc
           - fsl,imx8qxp-asrc
+          - fsl,imx952-asrc
       - items:
           - enum:
               - fsl,imx6sx-asrc
index 1415247c92c8fc1f9147f0534323f995c2d7e03f..bcc265a742c7713545679bdd3e975664b5c1cdcd 100644 (file)
@@ -63,6 +63,16 @@ required:
 
 allOf:
   - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx6sx-mqs
+              - fsl,imx93-mqs
+    then:
+      required:
+        - gpr
   - if:
       properties:
         compatible:
@@ -91,8 +101,6 @@ allOf:
         clock-names:
           items:
             - const: mclk
-      required:
-        - gpr
 
 unevaluatedProperties: false
 
index 3d5d435c765b4944af559474d4663e48cb764595..3a32f7517d0cb9858db5e6ac246af7740f57686d 100644 (file)
@@ -22,14 +22,20 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - fsl,imx7ulp-rpmsg-audio
-      - fsl,imx8mn-rpmsg-audio
-      - fsl,imx8mm-rpmsg-audio
-      - fsl,imx8mp-rpmsg-audio
-      - fsl,imx8ulp-rpmsg-audio
-      - fsl,imx93-rpmsg-audio
-      - fsl,imx95-rpmsg-audio
+    oneOf:
+      - enum:
+          - fsl,imx7ulp-rpmsg-audio
+          - fsl,imx8mn-rpmsg-audio
+          - fsl,imx8mm-rpmsg-audio
+          - fsl,imx8mp-rpmsg-audio
+          - fsl,imx8ulp-rpmsg-audio
+          - fsl,imx93-rpmsg-audio
+          - fsl,imx95-rpmsg-audio
+      - items:
+          - enum:
+              - fsl,imx94-rpmsg-audio
+              - fsl,imx952-rpmsg-audio
+          - const: fsl,imx95-rpmsg-audio
 
   clocks:
     items:
index d838ee0b61cb213483f954191112f3b176b5915a..83b5ea5f3d70ea09be0b7142a1ac34f9d12ff1fd 100644 (file)
@@ -133,6 +133,13 @@ properties:
         - description: dataline mask for 'rx'
         - description: dataline mask for 'tx'
 
+  fsl,sai-amix-mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    description:
+      The audmix module is bypassed from hardware or not.
+    enum: [none, bypass, audmix]
+    default: none
+
   fsl,sai-mclk-direction-output:
     description: SAI will output the SAI MCLK clock.
     type: boolean
@@ -180,6 +187,15 @@ allOf:
       properties:
         fsl,sai-synchronous-rx: false
 
+  - if:
+      required:
+        - fsl,sai-amix-mode
+    then:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx952-sai
+
 required:
   - compatible
   - reg
diff --git a/Bindings/sound/google,goldfish-audio.yaml b/Bindings/sound/google,goldfish-audio.yaml
new file mode 100644 (file)
index 0000000..d395a5c
--- /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/sound/google,goldfish-audio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Android Goldfish Audio
+
+maintainers:
+  - Kuan-Wei Chiu <visitorckw@gmail.com>
+
+description:
+  Android goldfish audio device generated by Android emulator.
+
+properties:
+  compatible:
+    const: google,goldfish-audio
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    sound@9030000 {
+        compatible = "google,goldfish-audio";
+        reg = <0x9030000 0x100>;
+        interrupts = <4>;
+    };
index 8ddf49b0040d6e673ea9fc9d53953e358c88571b..16ae3328f70ddb2a0ee08a5ac12484156bc845a8 100644 (file)
@@ -47,16 +47,118 @@ properties:
       - description: AFE clock
       - description: ADDA DAC clock
       - description: ADDA DAC pre-distortion clock
-      - description: audio infra sys clock
-      - description: audio infra 26M clock
+      - description: ADDA ADC clock
+      - description: ADDA6 ADC clock
+      - description: Audio low-jitter 22.5792m clock
+      - description: Audio low-jitter 24.576m clock
+      - description: Audio PLL1 tuner clock
+      - description: Audio PLL2 tuner clock
+      - description: Audio Time-Division Multiplexing interface clock
+      - description: ADDA ADC Sine Generator clock
+      - description: audio Non-LE clock
+      - description: Audio DAC High-Resolution clock
+      - description: Audio High-Resolution ADC clock
+      - description: Audio High-Resolution ADC SineGen clock
+      - description: Audio ADDA6 High-Resolution ADC clock
+      - description: Tertiary ADDA DAC clock
+      - description: Tertiary ADDA DAC pre-distortion clock
+      - description: Tertiary ADDA DAC Sine Generator clock
+      - description: Tertiary ADDA DAC High-Resolution clock
+      - description: Audio infra sys clock
+      - description: Audio infra 26M clock
+      - description: Mux for audio clock
+      - description: Mux for audio internal bus clock
+      - description: Mux main divider by 4
+      - description: Primary audio mux
+      - description: Primary audio PLL
+      - description: Secondary audio mux
+      - description: Secondary audio PLL
+      - description: Primary audio en-generator clock
+      - description: Primary PLL divider by 4 for IEC
+      - description: Secondary audio en-generator clock
+      - description: Secondary PLL divider by 4 for IEC
+      - description: Mux selector for I2S port 0
+      - description: Mux selector for I2S port 1
+      - description: Mux selector for I2S port 2
+      - description: Mux selector for I2S port 3
+      - description: Mux selector for I2S port 4
+      - description: Mux selector for I2S port 5
+      - description: Mux selector for I2S port 6
+      - description: Mux selector for I2S port 7
+      - description: Mux selector for I2S port 8
+      - description: Mux selector for I2S port 9
+      - description: APLL1 and APLL2 divider for I2S port 0
+      - description: APLL1 and APLL2 divider for I2S port 1
+      - description: APLL1 and APLL2 divider for I2S port 2
+      - description: APLL1 and APLL2 divider for I2S port 3
+      - description: APLL1 and APLL2 divider for I2S port 4
+      - description: APLL1 and APLL2 divider for IEC
+      - description: APLL1 and APLL2 divider for I2S port 5
+      - description: APLL1 and APLL2 divider for I2S port 6
+      - description: APLL1 and APLL2 divider for I2S port 7
+      - description: APLL1 and APLL2 divider for I2S port 8
+      - description: APLL1 and APLL2 divider for I2S port 9
+      - description: Top mux for audio subsystem
+      - description: 26MHz clock for audio subsystem
 
   clock-names:
     items:
       - const: aud_afe_clk
       - const: aud_dac_clk
       - const: aud_dac_predis_clk
+      - const: aud_adc_clk
+      - const: aud_adda6_adc_clk
+      - const: aud_apll22m_clk
+      - const: aud_apll24m_clk
+      - const: aud_apll1_tuner_clk
+      - const: aud_apll2_tuner_clk
+      - const: aud_tdm_clk
+      - const: aud_tml_clk
+      - const: aud_nle
+      - const: aud_dac_hires_clk
+      - const: aud_adc_hires_clk
+      - const: aud_adc_hires_tml
+      - const: aud_adda6_adc_hires_clk
+      - const: aud_3rd_dac_clk
+      - const: aud_3rd_dac_predis_clk
+      - const: aud_3rd_dac_tml
+      - const: aud_3rd_dac_hires_clk
       - const: aud_infra_clk
       - const: aud_infra_26m_clk
+      - const: top_mux_audio
+      - const: top_mux_audio_int
+      - const: top_mainpll_d4_d4
+      - const: top_mux_aud_1
+      - const: top_apll1_ck
+      - const: top_mux_aud_2
+      - const: top_apll2_ck
+      - const: top_mux_aud_eng1
+      - const: top_apll1_d4
+      - const: top_mux_aud_eng2
+      - const: top_apll2_d4
+      - const: top_i2s0_m_sel
+      - const: top_i2s1_m_sel
+      - const: top_i2s2_m_sel
+      - const: top_i2s3_m_sel
+      - const: top_i2s4_m_sel
+      - const: top_i2s5_m_sel
+      - const: top_i2s6_m_sel
+      - const: top_i2s7_m_sel
+      - const: top_i2s8_m_sel
+      - const: top_i2s9_m_sel
+      - const: top_apll12_div0
+      - const: top_apll12_div1
+      - const: top_apll12_div2
+      - const: top_apll12_div3
+      - const: top_apll12_div4
+      - const: top_apll12_divb
+      - const: top_apll12_div5
+      - const: top_apll12_div6
+      - const: top_apll12_div7
+      - const: top_apll12_div8
+      - const: top_apll12_div9
+      - const: top_mux_audio_h
+      - const: top_clk26m_clk
 
 required:
   - compatible
@@ -83,23 +185,69 @@ examples:
     afe: mt8192-afe-pcm {
         compatible = "mediatek,mt8192-audio";
         interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&audsys CLK_AUD_AFE>, <&audsys CLK_AUD_DAC>,
+                 <&audsys CLK_AUD_DAC_PREDIS>, <&audsys CLK_AUD_ADC>,
+                 <&audsys CLK_AUD_ADDA6_ADC>, <&audsys CLK_AUD_22M>,
+                 <&audsys CLK_AUD_24M>, <&audsys CLK_AUD_APLL_TUNER>,
+                 <&audsys CLK_AUD_APLL2_TUNER>, <&audsys CLK_AUD_TDM>,
+                 <&audsys CLK_AUD_TML>, <&audsys CLK_AUD_NLE>,
+                 <&audsys CLK_AUD_DAC_HIRES>, <&audsys CLK_AUD_ADC_HIRES>,
+                 <&audsys CLK_AUD_ADC_HIRES_TML>, <&audsys CLK_AUD_ADDA6_ADC_HIRES>,
+                 <&audsys CLK_AUD_3RD_DAC>, <&audsys CLK_AUD_3RD_DAC_PREDIS>,
+                 <&audsys CLK_AUD_3RD_DAC_TML>, <&audsys CLK_AUD_3RD_DAC_HIRES>,
+                 <&infracfg CLK_INFRA_AUDIO>, <&infracfg CLK_INFRA_AUDIO_26M_B>,
+                 <&topckgen CLK_TOP_AUDIO_SEL>, <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
+                 <&topckgen CLK_TOP_MAINPLL_D4_D4>, <&topckgen CLK_TOP_AUD_1_SEL>,
+                 <&topckgen CLK_TOP_APLL1>, <&topckgen CLK_TOP_AUD_2_SEL>,
+                 <&topckgen CLK_TOP_APLL2>, <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
+                 <&topckgen CLK_TOP_APLL1_D4>, <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
+                 <&topckgen CLK_TOP_APLL2_D4>, <&topckgen CLK_TOP_APLL_I2S0_M_SEL>,
+                 <&topckgen CLK_TOP_APLL_I2S1_M_SEL>, <&topckgen CLK_TOP_APLL_I2S2_M_SEL>,
+                 <&topckgen CLK_TOP_APLL_I2S3_M_SEL>, <&topckgen CLK_TOP_APLL_I2S4_M_SEL>,
+                 <&topckgen CLK_TOP_APLL_I2S5_M_SEL>, <&topckgen CLK_TOP_APLL_I2S6_M_SEL>,
+                 <&topckgen CLK_TOP_APLL_I2S7_M_SEL>, <&topckgen CLK_TOP_APLL_I2S8_M_SEL>,
+                 <&topckgen CLK_TOP_APLL_I2S9_M_SEL>, <&topckgen CLK_TOP_APLL12_DIV0>,
+                 <&topckgen CLK_TOP_APLL12_DIV1>, <&topckgen CLK_TOP_APLL12_DIV2>,
+                 <&topckgen CLK_TOP_APLL12_DIV3>, <&topckgen CLK_TOP_APLL12_DIV4>,
+                 <&topckgen CLK_TOP_APLL12_DIVB>, <&topckgen CLK_TOP_APLL12_DIV5>,
+                 <&topckgen CLK_TOP_APLL12_DIV6>, <&topckgen CLK_TOP_APLL12_DIV7>,
+                 <&topckgen CLK_TOP_APLL12_DIV8>, <&topckgen CLK_TOP_APLL12_DIV9>,
+                 <&topckgen CLK_TOP_AUDIO_H_SEL>, <&clk26m>;
+        clock-names = "aud_afe_clk", "aud_dac_clk",
+                      "aud_dac_predis_clk", "aud_adc_clk",
+                      "aud_adda6_adc_clk", "aud_apll22m_clk",
+                      "aud_apll24m_clk", "aud_apll1_tuner_clk",
+                      "aud_apll2_tuner_clk", "aud_tdm_clk",
+                      "aud_tml_clk", "aud_nle",
+                      "aud_dac_hires_clk", "aud_adc_hires_clk",
+                      "aud_adc_hires_tml", "aud_adda6_adc_hires_clk",
+                      "aud_3rd_dac_clk", "aud_3rd_dac_predis_clk",
+                      "aud_3rd_dac_tml", "aud_3rd_dac_hires_clk",
+                      "aud_infra_clk", "aud_infra_26m_clk",
+                      "top_mux_audio", "top_mux_audio_int",
+                      "top_mainpll_d4_d4", "top_mux_aud_1",
+                      "top_apll1_ck", "top_mux_aud_2",
+                      "top_apll2_ck", "top_mux_aud_eng1",
+                      "top_apll1_d4", "top_mux_aud_eng2",
+                      "top_apll2_d4", "top_i2s0_m_sel",
+                      "top_i2s1_m_sel", "top_i2s2_m_sel",
+                      "top_i2s3_m_sel", "top_i2s4_m_sel",
+                      "top_i2s5_m_sel", "top_i2s6_m_sel",
+                      "top_i2s7_m_sel", "top_i2s8_m_sel",
+                      "top_i2s9_m_sel", "top_apll12_div0",
+                      "top_apll12_div1", "top_apll12_div2",
+                      "top_apll12_div3", "top_apll12_div4",
+                      "top_apll12_divb", "top_apll12_div5",
+                      "top_apll12_div6", "top_apll12_div7",
+                      "top_apll12_div8", "top_apll12_div9",
+                      "top_mux_audio_h", "top_clk26m_clk";
+        memory-region = <&afe_dma_mem>;
+        power-domains = <&scpsys MT8192_POWER_DOMAIN_AUDIO>;
         resets = <&watchdog MT8192_TOPRGU_AUDIO_SW_RST>;
         reset-names = "audiosys";
         mediatek,apmixedsys = <&apmixedsys>;
         mediatek,infracfg = <&infracfg>;
         mediatek,topckgen = <&topckgen>;
-        power-domains = <&scpsys MT8192_POWER_DOMAIN_AUDIO>;
-        clocks = <&audsys CLK_AUD_AFE>,
-                 <&audsys CLK_AUD_DAC>,
-                 <&audsys CLK_AUD_DAC_PREDIS>,
-                 <&infracfg CLK_INFRA_AUDIO>,
-                 <&infracfg CLK_INFRA_AUDIO_26M_B>;
-        clock-names = "aud_afe_clk",
-                      "aud_dac_clk",
-                      "aud_dac_predis_clk",
-                      "aud_infra_clk",
-                      "aud_infra_26m_clk";
-        memory-region = <&afe_dma_mem>;
     };
 
 ...
index da89523ccf5f869e471a73aad21f109d313aad55..92bc3ef56f2c3baae34ba00c75b611ca81139244 100644 (file)
@@ -23,6 +23,7 @@ properties:
     enum:
       - nvidia,tegra210-audio-graph-card
       - nvidia,tegra186-audio-graph-card
+      - nvidia,tegra238-audio-graph-card
       - nvidia,tegra264-audio-graph-card
 
   clocks:
diff --git a/Bindings/sound/realtek,rt5575.yaml b/Bindings/sound/realtek,rt5575.yaml
new file mode 100644 (file)
index 0000000..981ebc3
--- /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/sound/realtek,rt5575.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ALC5575 audio CODEC
+
+maintainers:
+  - Oder Chiou <oder_chiou@realtek.com>
+
+description:
+  The device supports both I2C and SPI. I2C is mandatory, while SPI is
+  optional depending on the hardware configuration. SPI is used for
+  firmware loading if present.
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: realtek,rt5575
+
+  reg:
+    maxItems: 1
+
+  spi-parent:
+    description:
+      Optional phandle reference to the SPI controller used for firmware
+      loading. The argument specifies the chip select.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  # I2C-only node
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@57 {
+            compatible = "realtek,rt5575";
+            reg = <0x57>;
+        };
+    };
+
+  # I2C + optional SPI node
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@57 {
+            compatible = "realtek,rt5575";
+            reg = <0x57>;
+            spi-parent = <&spi0 0>; /* chip-select 0 */
+        };
+    };
diff --git a/Bindings/sound/realtek,rt5651.yaml b/Bindings/sound/realtek,rt5651.yaml
new file mode 100644 (file)
index 0000000..dc4f2ee
--- /dev/null
@@ -0,0 +1,100 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/realtek,rt5651.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Realtek RT5651 audio CODEC
+
+maintainers:
+  - Bard Liao <bardliao@realtek.com>
+
+description: >
+  This device supports I2C only.
+
+  Pins on the device (for linking into audio routes) for RT5651:
+
+    * DMIC L1
+    * DMIC R1
+    * IN1P
+    * IN2P
+    * IN2N
+    * IN3P
+    * HPOL
+    * HPOR
+    * LOUTL
+    * LOUTR
+    * PDML
+    * PDMR
+
+allOf:
+  - $ref: /schemas/sound/dai-common.yaml#
+
+properties:
+  compatible:
+    const: realtek,rt5651
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: mclk
+
+  '#sound-dai-cells':
+    const: 0
+
+  realtek,in2-differential:
+    type: boolean
+    description: Indicate MIC2 input are differential, rather than single-ended.
+
+  realtek,dmic-en:
+    type: boolean
+    description: Indicates DMIC is used.
+
+  realtek,jack-detect-source:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Select jack-detect input pin.
+    enum: [1, 2, 3]
+
+  realtek,jack-detect-not-inverted:
+    type: boolean
+    description:
+      Normal jack-detect switches give an inverted (active-low) signal. Set this
+      bool in the rare case you've a jack-detect switch which is not inverted.
+
+  realtek,over-current-threshold-microamp:
+    description: Micbias over-current detection threshold in µA.
+    enum: [600, 1500, 2000]
+
+  realtek,over-current-scale-factor:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: >
+      Micbias over-current detection scale factor:
+
+        0: scale current by 0.5
+        1: scale current by 0.75
+        2: scale current by 1.0
+        3: scale current by 1.5
+    enum: [0, 1, 2, 3]
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@1a {
+            compatible = "realtek,rt5651";
+            reg = <0x1a>;
+            realtek,dmic-en;
+            realtek,in2-differential;
+        };
+    };
index e4cdbf2202b9ad2e1b128d9676bf3735d626c138..1394f78281fc259ee5c84c882850dd1a8dbe34c8 100644 (file)
@@ -20,6 +20,7 @@ properties:
           - renesas,r9a07g044-ssi  # RZ/G2{L,LC}
           - renesas,r9a07g054-ssi  # RZ/V2L
           - renesas,r9a08g045-ssi  # RZ/G3S
+          - renesas,r9a08g046-ssi  # RZ/G3L
       - const: renesas,rz-ssi
 
   reg:
index d54686a19ab7911fe69cf4e4963882e9f4deba90..a125663988a5a5b8d1f824abf165898b2df41535 100644 (file)
@@ -14,13 +14,21 @@ description:
   class-D audio power amplifier and delivering 4x75W into 4OHm at 10%
   THD+N from a 25V supply in automotive applications.
 
+  The RTQ9154 is the family series of RTQ9128. The major change is to modify
+  the package size. Beside this, whole functions are almost all the same.
+
 allOf:
   - $ref: dai-common.yaml#
 
 properties:
   compatible:
-    enum:
-      - richtek,rtq9128
+    oneOf:
+      - enum:
+          - richtek,rtq9128
+      - items:
+          - enum:
+              - richtek,rtq9154
+          - const: richtek,rtq9128
 
   reg:
     maxItems: 1
index 56c755c22945fa617269fb832ba7fa97c501be34..502907dd28b364af062f2379db7bb1a576a590e4 100644 (file)
@@ -33,6 +33,7 @@ properties:
           - const: rockchip,rk3066-spdif
       - items:
           - enum:
+              - rockchip,rk3576-spdif
               - rockchip,rk3588-spdif
           - const: rockchip,rk3568-spdif
 
diff --git a/Bindings/sound/rt5651.txt b/Bindings/sound/rt5651.txt
deleted file mode 100644 (file)
index 56e736a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-RT5651 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible : "realtek,rt5651".
-
-- reg : The I2C address of the device.
-
-Optional properties:
-
-- realtek,in2-differential
-  Boolean. Indicate MIC2 input are differential, rather than single-ended.
-
-- realtek,dmic-en
-  Boolean. true if dmic is used.
-
-- realtek,jack-detect-source
-  u32. Valid values:
-  1: Use JD1_1 pin for jack-detect
-  2: Use JD1_2 pin for jack-detect
-  3: Use JD2 pin for jack-detect
-
-- realtek,jack-detect-not-inverted
-  bool. Normal jack-detect switches give an inverted (active-low) signal,
-  set this bool in the rare case you've a jack-detect switch which is not
-  inverted.
-
-- realtek,over-current-threshold-microamp
-  u32, micbias over-current detection threshold in µA, valid values are
-  600, 1500 and 2000µA.
-
-- realtek,over-current-scale-factor
-  u32, micbias over-current detection scale-factor, valid values are:
-  0: Scale current by 0.5
-  1: Scale current by 0.75
-  2: Scale current by 1.0
-  3: Scale current by 1.5
-
-Pins on the device (for linking into audio routes) for RT5651:
-
-  * DMIC L1
-  * DMIC R1
-  * IN1P
-  * IN2P
-  * IN2N
-  * IN3P
-  * HPOL
-  * HPOR
-  * LOUTL
-  * LOUTR
-  * PDML
-  * PDMR
-
-Example:
-
-rt5651: codec@1a {
-       compatible = "realtek,rt5651";
-       reg = <0x1a>;
-       realtek,dmic-en = "true";
-       realtek,in2-diff = "false";
-};
diff --git a/Bindings/sound/sophgo,cv1800b-codecs.yaml b/Bindings/sound/sophgo,cv1800b-codecs.yaml
new file mode 100644 (file)
index 0000000..7293a98
--- /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/sound/sophgo,cv1800b-codecs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV1800B Internal ADC/DAC Codec
+
+maintainers:
+  - Anton D. Stavinskii <stavinsky@gmail.com>
+
+description:
+  Internal ADC and DAC audio codecs integrated in the Sophgo CV1800B SoC.
+  Codecs expose a single DAI and are intended to be connected
+  to an I2S/TDM controller via an ASoC machine driver.
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - sophgo,cv1800b-sound-adc
+      - sophgo,cv1800b-sound-dac
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - "#sound-dai-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    audio-codec@300a100 {
+      compatible = "sophgo,cv1800b-sound-adc";
+      reg = <0x0300a100 0x100>;
+      #sound-dai-cells = <0>;
+    };
+...
diff --git a/Bindings/sound/sophgo,cv1800b-i2s.yaml b/Bindings/sound/sophgo,cv1800b-i2s.yaml
new file mode 100644 (file)
index 0000000..f08362b
--- /dev/null
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/sophgo,cv1800b-i2s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV1800B I2S/TDM controller
+
+maintainers:
+  - Anton D. Stavinskii <stavinsky@gmail.com>
+
+description: I2S/TDM controller found in CV1800B / Sophgo SG2002/SG2000 SoCs.
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: sophgo,cv1800b-i2s
+
+  reg:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: i2s
+      - const: mclk
+
+  dmas:
+    minItems: 1
+    maxItems: 2
+
+  dma-names:
+    minItems: 1
+    items:
+      - enum: [rx, tx]
+      - const: tx
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - "#sound-dai-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    i2s@4110000 {
+        compatible = "sophgo,cv1800b-i2s";
+        reg = <0x04110000 0x10000>;
+        clocks = <&clk CLK_APB_I2S1>,  <&clk CLK_SDMA_AUD1>;
+        clock-names = "i2s", "mclk";
+        dmas = <&dmamux 2 1>, <&dmamux 3 1>;
+        dma-names = "rx", "tx";
+        #sound-dai-cells = <0>;
+    };
+...
index 4a7129d0b157473f7e20a7c711aefa09f428edf3..551edf39e76630f9549802e54b6be136a647fec0 100644 (file)
@@ -164,7 +164,7 @@ allOf:
       properties:
         compatible:
           contains:
-            const: st,stm32mph7-sai
+            const: st,stm32h7-sai
     then:
       properties:
         clocks:
diff --git a/Bindings/sound/tas2552.txt b/Bindings/sound/tas2552.txt
deleted file mode 100644 (file)
index a7eecad..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Texas Instruments - tas2552 Codec module
-
-The tas2552 serial control bus communicates through I2C protocols
-
-Required properties:
-       - compatible - One of:
-               "ti,tas2552" - TAS2552
-       - reg -  I2C slave address: it can be 0x40 if ADDR pin is 0
-                                   or 0x41 if ADDR pin is 1.
-       - supply-*: Required supply regulators are:
-               "vbat"          battery voltage
-               "iovdd"         I/O Voltage
-               "avdd"          Analog DAC Voltage
-
-Optional properties:
-       - enable-gpio - gpio pin to enable/disable the device
-
-tas2552 can receive its reference clock via MCLK, BCLK, IVCLKIN pin or use the
-internal 1.8MHz. This CLKIN is used by the PLL. In addition to PLL, the PDM
-reference clock is also selectable: PLL, IVCLKIN, BCLK or MCLK.
-For system integration the dt-bindings/sound/tas2552.h header file provides
-defined values to select and configure the PLL and PDM reference clocks.
-
-Example:
-
-tas2552: tas2552@41 {
-       compatible = "ti,tas2552";
-       reg = <0x41>;
-       vbat-supply = <&reg_vbat>;
-       iovdd-supply = <&reg_iovdd>;
-       avdd-supply = <&reg_avdd>;
-       enable-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>;
-};
-
-For more product information please see the link below:
-https://www.ti.com/product/TAS2552
diff --git a/Bindings/sound/ti,tas2552.yaml b/Bindings/sound/ti,tas2552.yaml
new file mode 100644 (file)
index 0000000..85e3ebd
--- /dev/null
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/ti,tas2552.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments TAS2552 Codec
+
+maintainers:
+  - Shenghao Ding <shenghao-ding@ti.com>
+  - Kevin Lu <kevin-lu@ti.com>
+  - Baojun Xu <baojun.xu@ti.com>
+
+description: >
+  The TAS2552 can receive its reference clock via MCLK, BCLK, IVCLKIN pin or
+  use the internal 1.8MHz. This CLKIN is used by the PLL. In addition to PLL,
+  the PDM reference clock is also selectable: PLL, IVCLKIN, BCLK or MCLK.
+
+  For system integration the dt-bindings/sound/tas2552.h header file provides
+  defined values to select and configure the PLL and PDM reference clocks.
+
+properties:
+  compatible:
+    const: ti,tas2552
+
+  reg:
+    maxItems: 1
+
+  vbat-supply: true
+  iovdd-supply: true
+  avdd-supply: true
+
+  enable-gpio:
+    maxItems: 1
+    description: gpio pin to enable/disable the device
+
+  '#sound-dai-cells':
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - vbat-supply
+  - iovdd-supply
+  - avdd-supply
+
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        audio-codec@41 {
+            compatible = "ti,tas2552";
+            reg = <0x41>;
+            #sound-dai-cells = <0>;
+            vbat-supply = <&reg_vbat>;
+            iovdd-supply = <&reg_iovdd>;
+            avdd-supply = <&reg_avdd>;
+            enable-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>;
+        };
+    };
index 876fa97bfbcdd3b9450aa6ff57de42f1faed350d..a93de2debbb45a3daebb0e24397e4893262e3a11 100644 (file)
@@ -41,8 +41,11 @@ properties:
 
   areg-supply:
     description: |
-      Regulator with AVDD at 3.3V.  If not defined then the internal regulator
-      is enabled.
+      External supply of 1.8V. If not defined then the internal regulator is
+      enabled instead.
+
+  avdd-supply: true
+  iovdd-supply: true
 
   ti,mic-bias-source:
     description: |
index 003023729fb8ca40d324aaabe494784ea6767759..9447a2f371b56fb57a553da1a4d7bf83fef3fa4c 100644 (file)
@@ -27,6 +27,7 @@ properties:
       - items:
           - enum:
               - qcom,soundwire-v2.1.0
+              - qcom,soundwire-v2.2.0
           - const: qcom,soundwire-v2.0.0
 
   reg:
index 4b3828eda6cb4c5524570f00033b081a6e027b09..0f2448371f17b34c354fbd0bf6cc655366d4ea60 100644 (file)
@@ -70,6 +70,21 @@ required:
 
 unevaluatedProperties: false
 
+patternProperties:
+  "^.*@[0-9a-f]+":
+    type: object
+
+    properties:
+      spi-rx-bus-width:
+        maxItems: 8
+        items:
+          enum: [0, 1]
+
+      spi-tx-bus-width:
+        maxItems: 8
+        items:
+          enum: [0, 1]
+
 examples:
   - |
     spi@44a00000 {
index e1ab3f523ad6cb6f6477e68c9c30088675f9fad0..a34e6471dbe896671b748243b69ef3953e73f8a2 100644 (file)
@@ -55,10 +55,12 @@ patternProperties:
           maximum: 4
 
       spi-rx-bus-width:
-        const: 1
+        items:
+          - const: 1
 
       spi-tx-bus-width:
-        const: 1
+        items:
+          - const: 1
 
 required:
   - compatible
index 1b91d1566c953054f5d9f70700b108041441c36a..6af4ff2331586b22431ae8b2c96c6a6d278b2913 100644 (file)
@@ -6,9 +6,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Allwinner A31 SPI Controller
 
-allOf:
-  - $ref: spi-controller.yaml
-
 maintainers:
   - Chen-Yu Tsai <wens@csie.org>
   - Maxime Ripard <mripard@kernel.org>
@@ -81,10 +78,12 @@ patternProperties:
           maximum: 4
 
       spi-rx-bus-width:
-        const: 1
+        items:
+          enum: [0, 1, 2, 4]
 
       spi-tx-bus-width:
-        const: 1
+        items:
+          enum: [0, 1, 2, 4]
 
 required:
   - compatible
@@ -93,6 +92,28 @@ required:
   - clocks
   - clock-names
 
+allOf:
+  - $ref: spi-controller.yaml
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - allwinner,sun50i-r329-spi
+                - allwinner,sun55i-a523-spi
+    then:
+      patternProperties:
+        "^.*@[0-9a-f]+":
+          properties:
+            spi-rx-bus-width:
+              items:
+                enum: [0, 1]
+
+            spi-tx-bus-width:
+              items:
+                enum: [0, 1]
+
 unevaluatedProperties: false
 
 examples:
diff --git a/Bindings/spi/andestech,ae350-spi.yaml b/Bindings/spi/andestech,ae350-spi.yaml
new file mode 100644 (file)
index 0000000..8e44174
--- /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/spi/andestech,ae350-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Andes ATCSPI200 SPI controller
+
+maintainers:
+  - CL Wang <cl634@andestech.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - andestech,qilai-spi
+          - const: andestech,ae350-spi
+      - const: andestech,ae350-spi
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  num-cs:
+    description: Number of chip selects supported
+    maxItems: 1
+
+  dmas:
+    items:
+      - description: Transmit FIFO DMA channel
+      - description: Receive FIFO DMA channel
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
+patternProperties:
+  "@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+
+    properties:
+      spi-rx-bus-width:
+        items:
+          - enum: [1, 4]
+
+      spi-tx-bus-width:
+        items:
+          - enum: [1, 4]
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - dmas
+  - dma-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi@f0b00000 {
+        compatible = "andestech,ae350-spi";
+        reg = <0xf0b00000 0x100>;
+        clocks = <&clk_spi>;
+        dmas = <&dma0 0>, <&dma0 1>;
+        dma-names = "tx", "rx";
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        flash@0 {
+            compatible = "jedec,spi-nor";
+            reg = <0>;
+            spi-tx-bus-width = <4>;
+            spi-rx-bus-width = <4>;
+            spi-cpol;
+            spi-cpha;
+        };
+    };
index 11885d0cc2099febc7e2a595c48d0e4299314449..a8539b68a2f39569b95b0b02ef0e03a726897ccd 100644 (file)
@@ -19,6 +19,7 @@ properties:
       - const: atmel,at91rm9200-spi
       - items:
           - enum:
+              - microchip,lan9691-spi
               - microchip,sam9x60-spi
               - microchip,sam9x7-spi
               - microchip,sama7d65-spi
diff --git a/Bindings/spi/axiado,ax3000-spi.yaml b/Bindings/spi/axiado,ax3000-spi.yaml
new file mode 100644 (file)
index 0000000..cd2aac6
--- /dev/null
@@ -0,0 +1,73 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/axiado,ax3000-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Axiado AX3000 SoC SPI controller
+
+maintainers:
+  - Vladimir Moravcevic <vmoravcevic@axiado.com>
+  - Tzu-Hao Wei <twei@axiado.com>
+  - Swark Yang <syang@axiado.com>
+  - Prasad Bolisetty <pbolisetty@axiado.com>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - axiado,ax3000-spi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: ref
+      - const: pclk
+
+  clocks:
+    maxItems: 2
+
+  num-cs:
+    description: |
+      Number of chip selects used.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+    maximum: 4
+    default: 4
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clock-names
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+   #include <dt-bindings/interrupt-controller/irq.h>
+   #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+   soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      spi@80510000 {
+         compatible = "axiado,ax3000-spi";
+         reg = <0x00 0x80510000 0x00 0x1000>;
+         clock-names = "ref", "pclk";
+         clocks = <&spi_clk>, <&apb_pclk>;
+         interrupt-parent = <&gic500>;
+         interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+         num-cs = <4>;
+      };
+   };
+...
index 53a52fb8b8191d24ad540343d49786e143cdc51c..891f578b5ac4e353e620221ff0323613d11e8e53 100644 (file)
@@ -61,6 +61,20 @@ allOf:
         cdns,fifo-depth:
           enum: [ 128, 256 ]
           default: 128
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,rzn1-qspi
+    then:
+      properties:
+        cdns,trigger-address: false
+        cdns,fifo-depth: false
+        cdns,fifo-width: false
+    else:
+      required:
+        - cdns,trigger-address
+        - cdns,fifo-depth
 
 properties:
   compatible:
@@ -80,6 +94,9 @@ properties:
           # controllers are meant to be used with flashes of all kinds,
           # ie. also NAND flashes, not only NOR flashes.
           - const: cdns,qspi-nor
+      - items:
+          - const: renesas,r9a06g032-qspi
+          - const: renesas,rzn1-qspi
       - const: cdns,qspi-nor
         deprecated: true
 
@@ -163,8 +180,6 @@ required:
   - reg
   - interrupts
   - clocks
-  - cdns,fifo-width
-  - cdns,trigger-address
   - '#address-cells'
   - '#size-cells'
 
@@ -172,7 +187,7 @@ unevaluatedProperties: false
 
 examples:
   - |
-    qspi: spi@ff705000 {
+    spi@ff705000 {
         compatible = "intel,socfpga-qspi", "cdns,qspi-nor";
         #address-cells = <1>;
         #size-cells = <0>;
diff --git a/Bindings/spi/faraday,ftssp010.yaml b/Bindings/spi/faraday,ftssp010.yaml
new file mode 100644 (file)
index 0000000..678598d
--- /dev/null
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/faraday,ftssp010.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Faraday FTSSP010 SPI Controller
+
+maintainers:
+  - Linus Walleij <linusw@kernel.org>
+
+properties:
+  compatible:
+    const: faraday,ftssp010
+
+  interrupts:
+    maxItems: 1
+
+  reg:
+    maxItems: 1
+
+  cs-gpios: true
+
+required:
+  - compatible
+  - interrupts
+  - reg
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    spi@4a000000 {
+        compatible = "faraday,ftssp010";
+        #address-cells = <1>;
+        #size-cells = <0>;
+        reg = <0x4a000000 0x1000>;
+        interrupts = <0>;
+    };
index 8b3640280559d973f66020fba8528e51d574042c..909c204b8adf81eb9188fac99c3e16beb9f55e42 100644 (file)
@@ -54,10 +54,12 @@ patternProperties:
 
     properties:
       spi-rx-bus-width:
-        enum: [1, 2, 4]
+        items:
+          - enum: [1, 2, 4]
 
       spi-tx-bus-width:
-        enum: [1, 2, 4]
+        items:
+          - enum: [1, 2, 4]
 
 required:
   - compatible
diff --git a/Bindings/spi/nxp,imx94-xspi.yaml b/Bindings/spi/nxp,imx94-xspi.yaml
new file mode 100644 (file)
index 0000000..16a0598
--- /dev/null
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/nxp,imx94-xspi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP External Serial Peripheral Interface (xSPI)
+
+maintainers:
+  - Haibo Chen <haibo.chen@nxp.com>
+  - Han Xu <han.xu@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - nxp,imx94-xspi
+      - items:
+          - enum:
+              - nxp,imx952-xspi
+          - const: nxp,imx94-xspi
+
+  reg:
+    items:
+      - description: registers address space
+      - description: memory mapped address space
+
+  reg-names:
+    items:
+      - const: base
+      - const: mmap
+
+  interrupts:
+    items:
+      - description: interrupt for EENV0
+      - description: interrupt for EENV1
+      - description: interrupt for EENV2
+      - description: interrupt for EENV3
+      - description: interrupt for EENV4
+
+  clocks:
+    items:
+      - description: SPI serial clock
+
+  clock-names:
+    items:
+      - const: per
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - clocks
+  - clock-names
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        spi@42b90000 {
+            compatible = "nxp,imx94-xspi";
+            reg = <0x0 0x42b90000 0x0 0x50000>, <0x0 0x28000000 0x0 0x08000000>;
+            reg-names = "base", "mmap";
+            interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+            clocks = <&scmi_1>;
+            clock-names = "per";
+
+            flash@0 {
+                compatible = "jedec,spi-nor";
+                reg = <0>;
+                spi-max-frequency = <200000000>;
+                spi-rx-bus-width = <8>;
+                spi-tx-bus-width = <8>;
+            };
+        };
+    };
index d5f780912f21e8b2f1b43d3ddefad15a3bc93c96..789e26e409279e7ea7013dbdac4303547be00bae 100644 (file)
@@ -20,6 +20,12 @@ properties:
   clocks:
     maxItems: 1
 
+  dmas:
+    maxItems: 1
+
+  dma-names:
+    const: rx-tx
+
 allOf:
   - $ref: spi-controller.yaml#
 
@@ -38,6 +44,8 @@ examples:
         compatible = "nxp,lpc3220-spi";
         reg = <0x20088000 0x1000>;
         clocks = <&clk LPC32XX_CLK_SPI1>;
+        dmas = <&dmamux 11 1 0>;
+        dma-names = "rx-tx";
         #address-cells = <1>;
         #size-cells = <0>;
     };
index 069557a587b57e4e6973823bd6ed2996bb5f2c87..a588b112e11e2fcbdc6aa234fb4fe60d2f6f7d51 100644 (file)
@@ -57,6 +57,14 @@ properties:
       - const: presetn
       - const: tresetn
 
+  dmas:
+    maxItems: 2
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
   power-domains:
     maxItems: 1
 
index 81838577cf9cdb3e0228d0803d14e2e945389bcd..8ebebcebca1605d29b020077b1ea5d05b8969a8b 100644 (file)
@@ -22,21 +22,6 @@ allOf:
       properties:
         reg:
           minItems: 2
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - baikal,bt1-sys-ssi
-    then:
-      properties:
-        mux-controls:
-          maxItems: 1
-      required:
-        - mux-controls
-    else:
-      required:
-        - interrupts
   - if:
       properties:
         compatible:
@@ -75,10 +60,6 @@ properties:
         const: intel,mountevans-imc-ssi
       - description: AMD Pensando Elba SoC SPI Controller
         const: amd,pensando-elba-spi
-      - description: Baikal-T1 SPI Controller
-        const: baikal,bt1-ssi
-      - description: Baikal-T1 System Boot SPI Controller
-        const: baikal,bt1-sys-ssi
       - description: Canaan Kendryte K210 SoS SPI Controller
         const: canaan,k210-spi
       - description: Renesas RZ/N1 SPI Controller
@@ -170,6 +151,7 @@ required:
   - "#address-cells"
   - "#size-cells"
   - clocks
+  - interrupts
 
 examples:
   - |
@@ -190,15 +172,4 @@ examples:
         rx-sample-delay-ns = <7>;
       };
     };
-  - |
-    spi@1f040100 {
-      compatible = "baikal,bt1-sys-ssi";
-      reg = <0x1f040100 0x900>,
-            <0x1c000000 0x1000000>;
-      #address-cells = <1>;
-      #size-cells = <0>;
-      mux-controls = <&boot_mux>;
-      clocks = <&ccu_sys>;
-      clock-names = "ssi_clk";
-    };
 ...
index 8b6e8fc009dbdc80978f3afef84ddc688ade4348..880a9f624566785ef012935b24bf917007803304 100644 (file)
@@ -64,9 +64,23 @@ properties:
     description:
       Bus width to the SPI bus used for read transfers.
       If 0 is provided, then no RX will be possible on this device.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    enum: [0, 1, 2, 4, 8]
-    default: 1
+
+      Some SPI peripherals and controllers may have multiple data lanes for
+      receiving two or more words at the same time. If this is the case, each
+      index in the array represents the lane on both the SPI peripheral and
+      controller. Additional mapping properties may be needed if a lane is
+      skipped on either side.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    items:
+      enum: [0, 1, 2, 4, 8]
+    default: [1]
+
+  spi-rx-lane-map:
+    description: Mapping of peripheral SDO lanes to controller SDI lanes.
+      Each index in the array represents a peripheral SDO lane, and the value
+      at that index represents the corresponding controller SDI lane.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    default: [0, 1, 2, 3, 4, 5, 6, 7]
 
   spi-rx-delay-us:
     description:
@@ -81,9 +95,23 @@ properties:
     description:
       Bus width to the SPI bus used for write transfers.
       If 0 is provided, then no TX will be possible on this device.
-    $ref: /schemas/types.yaml#/definitions/uint32
-    enum: [0, 1, 2, 4, 8]
-    default: 1
+
+      Some SPI peripherals and controllers may have multiple data lanes for
+      transmitting two or more words at the same time. If this is the case, each
+      index in the array represents the lane on both the SPI peripheral and
+      controller. Additional mapping properties may be needed if a lane is
+      skipped on either side.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    items:
+      enum: [0, 1, 2, 4, 8]
+    default: [1]
+
+  spi-tx-lane-map:
+    description: Mapping of peripheral SDI lanes to controller SDO lanes.
+      Each index in the array represents a peripheral SDI lane, and the value
+      at that index represents the corresponding controller SDO lane.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    default: [0, 1, 2, 3, 4, 5, 6, 7]
 
   spi-tx-delay-us:
     description:
index 4beb3af0416de73e82609e3ecc015570226980ba..24e62530d432e14b86b0e0d342972453ac3d5312 100644 (file)
@@ -38,7 +38,6 @@ properties:
 required:
   - compatible
   - reg
-  - interrupts
 
 unevaluatedProperties: false
 
index ca880a226afa09c1e3d7ecde26fbdc47d5aed79c..472e92974714b2f0a3af97e71a852b88e84ab095 100644 (file)
@@ -96,6 +96,9 @@ properties:
       The region should be defined as child node of the AHB SRAM node
       as per the generic bindings in Documentation/devicetree/bindings/sram/sram.yaml
 
+  power-domains:
+    maxItems: 1
+
   access-controllers:
     minItems: 1
     maxItems: 2
diff --git a/Bindings/spmi/mediatek,mt8196-spmi.yaml b/Bindings/spmi/mediatek,mt8196-spmi.yaml
new file mode 100644 (file)
index 0000000..7a534f0
--- /dev/null
@@ -0,0 +1,138 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spmi/mediatek,mt8196-spmi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT8196 SPMI 2.0 Controller
+
+maintainers:
+  - Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+
+description:
+  The MediaTek MT8196 SoC features a SPMI version 2.0 compliant controller,
+  with internal wrapping arbitration logic to allow for multiple on-chip
+  devices to control up to two SPMI buses.
+  The main arbiter also acts as an interrupt controller, arbitering also
+  the interrupts coming from SPMI-connected devices into each of the nested
+  interrupt controllers from any of the present SPMI buses.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - mediatek,mt8196-spmi
+      - items:
+          - enum:
+              - mediatek,mt6991-spmi
+          - const: mediatek,mt8196-spmi
+
+  ranges: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+patternProperties:
+  "^spmi@[a-f0-9]+$":
+    type: object
+    $ref: /schemas/spmi/spmi.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        items:
+          - description: controller interface registers
+          - description: spmi master controller registers
+
+      reg-names:
+        items:
+          - const: pmif
+          - const: spmimst
+
+      clocks:
+        items:
+          - description: controller interface system clock
+          - description: controller interface timer clock
+          - description: spmi controller master clock
+
+      clock-names:
+        items:
+          - const: pmif_sys_ck
+          - const: pmif_tmr_ck
+          - const: spmimst_clk_mux
+
+      interrupts:
+        maxItems: 1
+
+      interrupt-names:
+        const: rcs
+
+      interrupt-controller: true
+
+      "#interrupt-cells":
+        const: 3
+        description: |
+          cell 1: slave ID for the requested interrupt (0-15)
+          cell 2: the requested peripheral interrupt (0-7)
+          cell 3: interrupt flags indicating level-sense information,
+                  as defined in dt-bindings/interrupt-controller/irq.h
+    required:
+      - reg
+      - reg-names
+      - clocks
+      - clock-names
+      - interrupts
+      - interrupt-names
+      - interrupt-controller
+      - "#interrupt-cells"
+
+required:
+  - compatible
+  - ranges
+  - '#address-cells'
+  - '#size-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      spmi-arbiter@1c018000 {
+        compatible = "mediatek,mt8196-spmi";
+        ranges = <0 0 0x1c018000 0x4900>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        spmi@0 {
+          reg = <0 0x900>, <0x4800 0x100>;
+          reg-names = "pmif", "spmimst";
+          interrupts-extended = <&pio 292 IRQ_TYPE_LEVEL_HIGH>;
+          interrupt-names = "rcs";
+          interrupt-controller;
+          #interrupt-cells = <3>;
+          clocks = <&pmif_sys>, <&pmif_tmr>, <&spmi_mst>;
+          clock-names = "pmif_sys_ck", "pmif_tmr_ck", "spmimst_clk_mux";
+        };
+
+        spmi@2000 {
+          reg = <0x2000 0x900>, <0x4000 0x100>;
+          reg-names = "pmif", "spmimst";
+          interrupts-extended = <&pio 291 IRQ_TYPE_LEVEL_HIGH>;
+          interrupt-names = "rcs";
+          interrupt-controller;
+          #interrupt-cells = <3>;
+          clocks = <&pmif_sys>, <&pmif_tmr>, <&spmi_mst>;
+          clock-names = "pmif_sys_ck", "pmif_tmr_ck", "spmimst_clk_mux";
+        };
+      };
+    };
+...
index 7f0be0ac644aa31d6c2a6be5981347473579ff70..dc61d88008a9c4dba217a8246d82bb4db88f33fd 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - enum:
               - mediatek,mt8186-spmi
               - mediatek,mt8188-spmi
+              - mediatek,mt8189-spmi
           - const: mediatek,mt8195-spmi
 
   reg:
diff --git a/Bindings/spmi/qcom,glymur-spmi-pmic-arb.yaml b/Bindings/spmi/qcom,glymur-spmi-pmic-arb.yaml
new file mode 100644 (file)
index 0000000..3b5005b
--- /dev/null
@@ -0,0 +1,150 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spmi/qcom,glymur-spmi-pmic-arb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. Glymur SPMI Controller (PMIC Arbiter v8)
+
+maintainers:
+  - David Collins <david.collins@oss.qualcomm.com>
+
+description: |
+  The Glymur SPMI PMIC Arbiter implements HW version 8 and it's an SPMI
+  controller with wrapping arbitration logic to allow for multiple on-chip
+  devices to control up to 4 SPMI separate buses.
+
+  The PMIC Arbiter can also act as an interrupt controller, providing interrupts
+  to slave devices.
+
+allOf:
+  - $ref: /schemas/spmi/qcom,spmi-pmic-arb-common.yaml
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - qcom,kaanapali-spmi-pmic-arb
+          - const: qcom,glymur-spmi-pmic-arb
+      - enum:
+          - qcom,glymur-spmi-pmic-arb
+
+  reg:
+    items:
+      - description: core registers
+      - description: tx-channel per virtual slave registers
+      - description: rx-channel (called observer) per virtual slave registers
+      - description: channel to PMIC peripheral mapping registers
+
+  reg-names:
+    items:
+      - const: core
+      - const: chnls
+      - const: obsrvr
+      - const: chnl_map
+
+  ranges: true
+
+  '#address-cells':
+    const: 2
+
+  '#size-cells':
+    const: 2
+
+patternProperties:
+  "^spmi@[a-f0-9]+$":
+    type: object
+    $ref: /schemas/spmi/spmi.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        items:
+          - description: configuration registers
+          - description: interrupt controller registers
+          - description: channel owner EE mapping registers
+
+      reg-names:
+        items:
+          - const: cnfg
+          - const: intr
+          - const: chnl_owner
+
+      interrupts:
+        maxItems: 1
+
+      interrupt-names:
+        const: periph_irq
+
+      interrupt-controller: true
+
+      '#interrupt-cells':
+        const: 4
+        description: |
+          cell 1: slave ID for the requested interrupt (0-15)
+          cell 2: peripheral ID for requested interrupt (0-255)
+          cell 3: the requested peripheral interrupt (0-7)
+          cell 4: interrupt flags indicating level-sense information,
+                  as defined in dt-bindings/interrupt-controller/irq.h
+
+required:
+  - compatible
+  - reg-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        arbiter@c400000 {
+            compatible = "qcom,glymur-spmi-pmic-arb";
+            reg = <0x0 0xc400000 0x0 0x3000>,
+                  <0x0 0xc900000 0x0 0x400000>,
+                  <0x0 0xc4c0000 0x0 0x400000>,
+                  <0x0 0xc403000 0x0 0x8000>;
+            reg-names = "core", "chnls", "obsrvr", "chnl_map";
+
+            qcom,ee = <0>;
+            qcom,channel = <0>;
+
+            #address-cells = <2>;
+            #size-cells = <2>;
+            ranges;
+
+            spmi@c426000 {
+                reg = <0x0 0xc426000 0x0 0x4000>,
+                      <0x0 0xc8c0000 0x0 0x10000>,
+                      <0x0 0xc42a000 0x0 0x8000>;
+                reg-names = "cnfg", "intr", "chnl_owner";
+
+                interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+                interrupt-names = "periph_irq";
+                interrupt-controller;
+                #interrupt-cells = <4>;
+
+                #address-cells = <2>;
+                #size-cells = <0>;
+            };
+
+            spmi@c437000 {
+                reg = <0x0 0xc437000 0x0 0x4000>,
+                      <0x0 0xc8d0000 0x0 0x10000>,
+                      <0x0 0xc43b000 0x0 0x8000>;
+                reg-names = "cnfg", "intr", "chnl_owner";
+
+                interrupts-extended = <&pdc 3 IRQ_TYPE_LEVEL_HIGH>;
+                interrupt-names = "periph_irq";
+                interrupt-controller;
+                #interrupt-cells = <4>;
+
+                #address-cells = <2>;
+                #size-cells = <0>;
+            };
+        };
+    };
diff --git a/Bindings/spmi/qcom,spmi-pmic-arb-common.yaml b/Bindings/spmi/qcom,spmi-pmic-arb-common.yaml
new file mode 100644 (file)
index 0000000..8c38ed1
--- /dev/null
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spmi/qcom,spmi-pmic-arb-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. SPMI Controller (common)
+
+maintainers:
+  - David Collins <david.collins@oss.qualcomm.com>
+
+description: |
+  This defines some common properties used to define Qualcomm SPMI controllers
+  for PMIC arbiter.
+
+properties:
+  qcom,ee:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 5
+    description:
+      indicates the active Execution Environment identifier
+
+  qcom,channel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 5
+    description:
+      which of the PMIC Arb provided channels to use for accesses
+
+required:
+  - qcom,ee
+  - qcom,channel
+
+additionalProperties: true
index 51daf1b847a9b1468fadf73d487a636fc3618227..d0c683dd528412fe0d0435106779137a806e5bfe 100644 (file)
@@ -19,6 +19,7 @@ description: |
 
 allOf:
   - $ref: spmi.yaml
+  - $ref: qcom,spmi-pmic-arb-common.yaml
 
 properties:
   compatible:
@@ -71,20 +72,6 @@ properties:
 
   '#size-cells': true
 
-  qcom,ee:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0
-    maximum: 5
-    description: >
-      indicates the active Execution Environment identifier
-
-  qcom,channel:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0
-    maximum: 5
-    description: >
-      which of the PMIC Arb provided channels to use for accesses
-
   qcom,bus-id:
     $ref: /schemas/types.yaml#/definitions/uint32
     minimum: 0
@@ -97,8 +84,6 @@ properties:
 required:
   - compatible
   - reg-names
-  - qcom,ee
-  - qcom,channel
 
 unevaluatedProperties: false
 
index 7c3cc20a80d6cf8fe7c4614032cc4df6d8b54973..08369fdd2161288882f7185379ba124caa225eff 100644 (file)
@@ -17,6 +17,9 @@ description: |
   The PMIC Arbiter can also act as an interrupt controller, providing interrupts
   to slave devices.
 
+allOf:
+  - $ref: qcom,spmi-pmic-arb-common.yaml
+
 properties:
   compatible:
     oneOf:
@@ -45,20 +48,6 @@ properties:
   '#size-cells':
     const: 2
 
-  qcom,ee:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0
-    maximum: 5
-    description: >
-      indicates the active Execution Environment identifier
-
-  qcom,channel:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    minimum: 0
-    maximum: 5
-    description: >
-      which of the PMIC Arb provided channels to use for accesses
-
 patternProperties:
   "^spmi@[a-f0-9]+$":
     type: object
@@ -96,10 +85,8 @@ patternProperties:
 required:
   - compatible
   - reg-names
-  - qcom,ee
-  - qcom,channel
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 7c1337e159f2371401ae99313375656fff014ed4..c451140962c86f4e8f98437a2830cb2c6a697e63 100644 (file)
@@ -34,6 +34,7 @@ properties:
         - nvidia,tegra186-sysram
         - nvidia,tegra194-sysram
         - nvidia,tegra234-sysram
+        - qcom,kaanapali-imem
         - qcom,rpm-msg-ram
         - rockchip,rk3288-pmu-sram
 
@@ -89,6 +90,7 @@ patternProperties:
             - arm,juno-scp-shmem
             - arm,scmi-shmem
             - arm,scp-shmem
+            - qcom,pil-reloc-info
             - renesas,smp-sram
             - rockchip,rk3066-smp-sram
             - samsung,exynos4210-sysram
index ce767b1eccf20a5bf13ced842128da20e4e80bad..81e27e50f9057d2664d351b31d6ad997b07772cd 100644 (file)
@@ -15,8 +15,8 @@ I. For patch submitters
 
        "dt-bindings: <binding dir>: ..."
 
-     Few subsystems, like ASoC, media, regulators and SPI, expect reverse order
-     of the prefixes::
+     Few subsystems, like ASoC, media, regulators, SCSI, SPI and UFS, expect
+     reverse order of the prefixes, based on subsystem name::
 
        "<binding dir>: dt-bindings: ..."
 
index 0259cd3ce9c55fdd7e734108cf7fea1763beb419..975235130670315351651119f074bf61dc9adae1 100644 (file)
@@ -18,6 +18,7 @@ description: |
 properties:
   compatible:
     enum:
+      - mediatek,mt7987-lvts-ap
       - mediatek,mt7988-lvts-ap
       - mediatek,mt8186-lvts
       - mediatek,mt8188-lvts-ap
@@ -26,6 +27,8 @@ properties:
       - mediatek,mt8192-lvts-mcu
       - mediatek,mt8195-lvts-ap
       - mediatek,mt8195-lvts-mcu
+      - mediatek,mt8196-lvts-ap
+      - mediatek,mt8196-lvts-mcu
 
   reg:
     maxItems: 1
index befdc8b7a08245cb1e538038421091d677075e13..d560c58be4d6e9c292bd2c223eac76d35f50047d 100644 (file)
@@ -17,10 +17,17 @@ description:
 properties:
   compatible:
     oneOf:
-      - const: renesas,r9a09g047-tsu # RZ/G3E
+      - enum:
+          - renesas,r9a09g047-tsu # RZ/G3E
+          - renesas,r9a09g077-tsu # RZ/T2H
       - items:
-          - const: renesas,r9a09g057-tsu # RZ/V2H
+          - enum:
+              - renesas,r9a09g056-tsu # RZ/V2N
+              - renesas,r9a09g057-tsu # RZ/V2H
           - const: renesas,r9a09g047-tsu # RZ/G3E
+      - items:
+          - const: renesas,r9a09g087-tsu # RZ/N2H
+          - const: renesas,r9a09g077-tsu # RZ/T2H
 
   reg:
     maxItems: 1
@@ -63,12 +70,31 @@ required:
   - compatible
   - reg
   - clocks
-  - resets
   - power-domains
   - interrupts
   - interrupt-names
   - "#thermal-sensor-cells"
-  - renesas,tsu-trim
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g047-tsu
+    then:
+      required:
+        - resets
+        - renesas,tsu-trim
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g077-tsu
+    then:
+      properties:
+        resets: false
+        renesas,tsu-trim: false
 
 additionalProperties: false
 
index 0d3b8dc362ba7e8d0ca6d0cea692ceddc5e1f89e..3bab40500df9bc2ba4f7d6f1bf340c8cbc06f9de 100644 (file)
@@ -33,6 +33,7 @@ properties:
               - eswin,eic7700-clint     # ESWIN EIC7700
               - sifive,fu540-c000-clint # SiFive FU540
               - spacemit,k1-clint       # SpacemiT K1
+              - spacemit,k3-clint       # SpacemiT K3
               - starfive,jh7100-clint   # StarFive JH7100
               - starfive,jh7110-clint   # StarFive JH7110
               - starfive,jh8100-clint   # StarFive JH8100
index af7720dc4a12ce435d85e83d76911ac26db01e95..fdd7fd874e01e1029fb1e93f487b4755a5ec0c7b 100644 (file)
@@ -33,6 +33,7 @@ properties:
               - infineon,slb9673
               - nuvoton,npct75x
               - st,st33ktpm2xi2c
+              - st,st33tphf2ei2c
           - const: tcg,tpm-tis-i2c
 
       - description: TPM 1.2 and 2.0 chips with vendor-specific I²C interface
index d0f7dbf15d6f1d901688b4b529aaf2cf537addd6..a482aeadcd444a165d5c34707c1176a439e13756 100644 (file)
@@ -91,6 +91,8 @@ properties:
           - delta,ahe50dc-fan
             # Delta Electronics DPS-650-AB power supply
           - delta,dps650ab
+            # Delta Electronics DPS-800-AB power supply
+          - delta,dps800
             # Delta Electronics DPS920AB 920W 54V Power Supply
           - delta,dps920ab
             # 1/4 Brick DC/DC Regulated Power Module
@@ -123,6 +125,8 @@ properties:
           - fsl,mma8450
             # MPR121: Proximity Capacitive Touch Sensor Controller
           - fsl,mpr121
+            # HiTRON AC/DC CompactPCI Power Supply
+          - hitron,hac300s
             # Honeywell Humidicon HIH-6130 humidity/temperature sensor
           - honeywell,hi6130
             # IBM Common Form Factor Power Supply Versions (all versions)
@@ -133,10 +137,14 @@ properties:
           - ibm,cffps2
             # IBM On-Chip Controller hwmon device
           - ibm,p8-occ-hwmon
+            # Infineon Digital Multi-phase Controller
+          - infineon,ir35221
             # Infineon IR36021 digital POL buck controller
           - infineon,ir36021
             # Infineon IRPS5401 Voltage Regulator (PMIC)
           - infineon,irps5401
+            # Infineon Digital Dual Output 6+1 VR12.5 & VR13 CPU Controller
+          - infineon,pxe1610
             # Infineon Hot-swap controller xdp710
           - infineon,xdp710
             # Infineon Multi-phase Digital VR Controller xdpe11280
@@ -229,6 +237,10 @@ properties:
           - meas,tsys01
             # MEMSIC magnetometer
           - memsic,mmc35240
+            # MEMSIC 3-axis magnetometer
+          - memsic,mmc5603
+            # MEMSIC 3-axis magnetometer (Support I3C HDR)
+          - memsic,mmc5633
             # MEMSIC 3-axis accelerometer
           - memsic,mxc4005
             # MEMSIC 2-axis 8-bit digital accelerometer
@@ -319,6 +331,8 @@ properties:
           - mps,mp5023
             # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5920
           - mps,mp5920
+            # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5926
+          - mps,mp5926
             # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5990
           - mps,mp5990
             # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5998
@@ -414,8 +428,12 @@ properties:
           - smsc,emc6d103
             # Temperature sensor with integrated fan control
           - smsc,emc6d103s
+            # Socionext Uniphier SMP control registers
+          - socionext,uniphier-smpctrl
             # SparkFun Qwiic Joystick (COM-15168) with i2c interface
           - sparkfun,qwiic-joystick
+            # STMicroelectronics Hot-swap controller stef48h28
+          - st,stef48h28
             # Sierra Wireless mangOH Green SPI IoT interface
           - swir,mangoh-iotport-spi
             # Synaptics I2C touchpad
diff --git a/Bindings/ufs/qcom,sa8255p-ufshc.yaml b/Bindings/ufs/qcom,sa8255p-ufshc.yaml
new file mode 100644 (file)
index 0000000..75fae9f
--- /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/ufs/qcom,sa8255p-ufshc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SA8255P UFS Host Controller
+
+maintainers:
+  - Ram Kumar Dwivedi <ram.dwivedi@oss.qualcomm.com>
+
+properties:
+  compatible:
+    const: qcom,sa8255p-ufshc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+  dma-coherent: true
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - power-domains
+  - iommus
+  - dma-coherent
+
+allOf:
+  - $ref: ufs-common.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    ufshc@1d84000 {
+        compatible = "qcom,sa8255p-ufshc";
+        reg = <0x01d84000 0x3000>;
+        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+        lanes-per-direction = <2>;
+
+        iommus = <&apps_smmu 0x100 0x0>;
+        power-domains = <&scmi3_pd 0>;
+        dma-coherent;
+    };
index 7f22f9c031b2b01f714c24943af44656515c192b..b8bac2cce949e7b1ddffd3fbdf26848df0254e46 100644 (file)
@@ -17,8 +17,8 @@ description: |+
 
   Supported number of devices and endpoints vary depending on hardware
   revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices
-  and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream
-  devices and 21 generic endpoints.
+  and 15 generic endpoints, while AST2600 and AST2700 Virtual Hub supports
+  7 downstream devices and 21 generic endpoints.
 
 properties:
   compatible:
@@ -26,6 +26,7 @@ properties:
       - aspeed,ast2400-usb-vhub
       - aspeed,ast2500-usb-vhub
       - aspeed,ast2600-usb-vhub
+      - aspeed,ast2700-usb-vhub
 
   reg:
     maxItems: 1
@@ -33,6 +34,9 @@ properties:
   clocks:
     maxItems: 1
 
+  resets:
+    maxItems: 1
+
   interrupts:
     maxItems: 1
 
@@ -107,6 +111,20 @@ required:
   - aspeed,vhub-downstream-ports
   - aspeed,vhub-generic-endpoints
 
+if:
+  properties:
+    compatible:
+      contains:
+        const: aspeed,ast2700-usb-vhub
+
+then:
+  required:
+    - resets
+
+else:
+  properties:
+    resets: false
+
 additionalProperties: false
 
 examples:
index 4e84bead023258b27422215538aa38320e0f438a..601f097c09a69506455dadf0387598670432640b 100644 (file)
@@ -93,6 +93,8 @@ properties:
     minItems: 1
     maxItems: 2
 
+  dma-coherent: true
+
   interrupts:
     maxItems: 1
 
index 3ee1586fc8b96866e0a96ea36a15d5a8d88bf8d8..961cbf85eeb5b57bb74da89d2fcec34bf4c3473f 100644 (file)
@@ -64,6 +64,8 @@ properties:
   reg:
     maxItems: 1
 
+  dma-coherent: true
+
   interrupts:
     maxItems: 1
 
diff --git a/Bindings/usb/google,lga-dwc3.yaml b/Bindings/usb/google,lga-dwc3.yaml
new file mode 100644 (file)
index 0000000..95be84c
--- /dev/null
@@ -0,0 +1,140 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (c) 2025, Google LLC
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/google,lga-dwc3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google Tensor Series G5 (Laguna) DWC3 USB SoC Controller
+
+maintainers:
+  - Roy Luo <royluo@google.com>
+
+description:
+  Describes the DWC3 USB controller block implemented on Google Tensor SoCs,
+  starting with the G5 generation (laguna). Based on Synopsys DWC3 IP, the
+  controller features Dual-Role Device single port with hibernation add-on.
+
+properties:
+  compatible:
+    const: google,lga-dwc3
+
+  reg:
+    items:
+      - description: Core DWC3 IP registers.
+
+  interrupts:
+    items:
+      - description: Core DWC3 interrupt.
+      - description: High speed power management event for remote wakeup.
+      - description: Super speed power management event for remote wakeup.
+
+  interrupt-names:
+    items:
+      - const: core
+      - const: hs_pme
+      - const: ss_pme
+
+  clocks:
+    items:
+      - description: Non-sticky module clock.
+      - description: Sticky module clock.
+
+  clock-names:
+    items:
+      - const: non_sticky
+      - const: sticky
+
+  resets:
+    items:
+      - description: Non-sticky module reset.
+      - description: Sticky module reset.
+      - description: DRD bus reset.
+      - description: Top-level reset.
+
+  reset-names:
+    items:
+      - const: non_sticky
+      - const: sticky
+      - const: drd_bus
+      - const: top
+
+  power-domains:
+    items:
+      - description: Power switchable domain, the child of top domain.
+          Turning it on puts the controller into full power state,
+          turning it off puts the controller into power gated state.
+      - description: Top domain, the parent of power switchable domain.
+          Turning it on puts the controller into power gated state,
+          turning it off completely shuts off the controller.
+
+  power-domain-names:
+    items:
+      - const: psw
+      - const: top
+
+  iommus:
+    maxItems: 1
+
+  google,usb-cfg-csr:
+    description:
+      A phandle to a syscon node used to access the USB configuration
+      registers. These registers are the top-level wrapper of the USB
+      subsystem and provide control and status for the integrated USB
+      controller and USB PHY.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to the syscon node.
+          - description: USB host controller configuration register offset.
+          - description: USB custom interrrupts control register offset.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - power-domains
+  - power-domain-names
+  - google,usb-cfg-csr
+
+allOf:
+  - $ref: snps,dwc3-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        usb@c400000 {
+            compatible = "google,lga-dwc3";
+            reg = <0 0x0c400000  0 0xd060>;
+            interrupts = <GIC_SPI 580 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH 0>;
+            interrupt-names = "core", "hs_pme", "ss_pme";
+            clocks = <&hsion_usbc_non_sticky_clk>,  <&hsion_usbc_sticky_clk>;
+            clock-names = "non_sticky", "sticky";
+            resets = <&hsion_resets_usbc_non_sticky>, <&hsion_resets_usbc_sticky>,
+                     <&hsion_resets_usb_drd_bus>, <&hsion_resets_usb_top>;
+            reset-names = "non_sticky", "sticky", "drd_bus", "top";
+            power-domains = <&hsio_n_usb_psw>, <&hsio_n_usb>;
+            power-domain-names = "psw", "top";
+            phys = <&usb_phy 0>;
+            phy-names = "usb2-phy";
+            snps,quirk-frame-length-adjustment = <0x20>;
+            snps,gfladj-refclk-lpm-sel-quirk;
+            snps,incr-burst-type-adjustment = <4>;
+            google,usb-cfg-csr = <&usb_cfg_csr 0x0 0x20>;
+        };
+    };
+...
index 889710733de517695ce831a2ac5784f57f1b991f..045fcb41ac4bbeb2c11239db87d1a13fbfc5b84d 100644 (file)
@@ -49,7 +49,7 @@ additionalProperties: false
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
-    i2c2 {
+    i2c {
         #address-cells = <1>;
         #size-cells = <0>;
 
diff --git a/Bindings/usb/microchip,lan9691-dwc3.yaml b/Bindings/usb/microchip,lan9691-dwc3.yaml
new file mode 100644 (file)
index 0000000..08113ea
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/microchip,lan9691-dwc3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip LAN969x SuperSpeed DWC3 USB SoC controller
+
+maintainers:
+  - Robert Marko <robert.marko@sartura.hr>
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - microchip,lan9691-dwc3
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - microchip,lan9691-dwc3
+      - const: snps,dwc3
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Gated USB DRD clock
+      - description: Controller reference clock
+
+  clock-names:
+    items:
+      - const: bus_early
+      - const: ref
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+allOf:
+  - $ref: snps,dwc3.yaml#
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@300000 {
+        compatible = "microchip,lan9691-dwc3", "snps,dwc3";
+        reg = <0x300000 0x80000>;
+        interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clks 12>, <&clks 11>;
+        clock-names = "bus_early", "ref";
+    };
index 0b8b90dd195178e57224c2a2da402ff0016f2518..dc74e70f1b925ffebe51f2a963fb7a4dc3a58a06 100644 (file)
@@ -27,6 +27,7 @@ properties:
               - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
               - renesas,usbhs-r9a07g054 # RZ/V2L
               - renesas,usbhs-r9a08g045 # RZ/G3S
+              - renesas,usbhs-r9a09g047 # RZ/G3E
               - renesas,usbhs-r9a09g056 # RZ/V2N
               - renesas,usbhs-r9a09g057 # RZ/V2H(P)
           - const: renesas,rzg2l-usbhs
diff --git a/Bindings/usb/socionext,uniphier-dwc3.yaml b/Bindings/usb/socionext,uniphier-dwc3.yaml
new file mode 100644 (file)
index 0000000..2b25333
--- /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/usb/socionext,uniphier-dwc3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Socionext Uniphier SuperSpeed DWC3 USB SoC controller
+
+maintainers:
+  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
+  - Masami Hiramatsu <mhiramat@kernel.org>
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: socionext,uniphier-dwc3
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - const: socionext,uniphier-dwc3
+      - const: snps,dwc3
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 1
+    items:
+      - description: Host or single combined interrupt
+      - description: Peripheral interrupt
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - enum:
+          - dwc_usb3
+          - host
+      - const: peripheral
+
+  clocks:
+    maxItems: 3
+
+  clock-names:
+    items:
+      - const: ref
+      - const: bus_early
+      - const: suspend
+
+  phys:
+    description: 1 to 4 HighSpeed PHYs followed by 1 or 2 SuperSpeed PHYs
+    minItems: 1
+    maxItems: 6
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - phys
+
+unevaluatedProperties: false
+
+allOf:
+  - $ref: snps,dwc3.yaml#
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@65a00000 {
+        compatible = "socionext,uniphier-dwc3", "snps,dwc3";
+        reg = <0x65a00000 0xcd00>;
+        interrupt-names = "dwc_usb3";
+        interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+        clock-names = "ref", "bus_early", "suspend";
+        clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
+        resets = <&usb0_rst 15>;
+        phys = <&usb0_hsphy0>, <&usb0_hsphy1>,
+               <&usb0_ssphy0>, <&usb0_ssphy1>;
+        dr_mode = "host";
+    };
diff --git a/Bindings/usb/wch,ch334.yaml b/Bindings/usb/wch,ch334.yaml
new file mode 100644 (file)
index 0000000..2fdca14
--- /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/usb/wch,ch334.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: WCH CH334/CH335 USB 2.0 Hub Controller
+
+maintainers:
+  - Chaoyi Chen <kernel@airkyi.com>
+
+allOf:
+  - $ref: usb-hub.yaml#
+
+properties:
+  compatible:
+    enum:
+      - usb1a86,8091
+
+  reg: true
+
+  reset-gpios:
+    description: GPIO controlling the RESET# pin.
+
+  vdd33-supply:
+    description:
+      The regulator that provides 3.3V core power to the hub.
+
+  v5-supply:
+    description:
+      The regulator that provides 3.3V or 5V power to the hub.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    patternProperties:
+      '^port@':
+        $ref: /schemas/graph.yaml#/properties/port
+
+        properties:
+          reg:
+            minimum: 1
+            maximum: 4
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        hub: hub@1 {
+            compatible = "usb1a86,8091";
+            reg = <1>;
+            reset-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+            v5-supply = <&vcc_3v3>;
+            vdd33-supply = <&vcc_3v3>;
+        };
+    };
index c7591b2aec2a74560a4f687fe7a2070ca21b0752..ee7fd3cfe203936d4aa42d4ce6f2efee951b4023 100644 (file)
@@ -86,6 +86,8 @@ patternProperties:
     description: Aldec, Inc.
   "^alfa-network,.*":
     description: ALFA Network Inc.
+  "^algoltek,.*":
+    description: AlgolTek, Inc.
   "^allegro,.*":
     description: Allegro DVT
   "^allegromicro,.*":
@@ -158,6 +160,8 @@ patternProperties:
     description: Arctic Sand
   "^arcx,.*":
     description: arcx Inc. / Archronix Inc.
+  "^arduino,.*":
+    description: Arduino SRL
   "^argon40,.*":
     description: Argon 40 Technologies Limited
   "^ariaboard,.*":
@@ -555,6 +559,8 @@ patternProperties:
     description: Exegin Technologies Limited
   "^ezchip,.*":
     description: EZchip Semiconductor
+  "^ezurio,.*":
+    description: Ezurio LLC
   "^facebook,.*":
     description: Facebook
   "^fairchild,.*":
@@ -701,6 +707,8 @@ patternProperties:
     description: Hitachi Ltd.
   "^hitex,.*":
     description: Hitex Development Tools
+  "^hitron,.*":
+    description: HiTRON Electronics Corporation
   "^holt,.*":
     description: Holt Integrated Circuits, Inc.
   "^holtek,.*":
@@ -755,6 +763,8 @@ patternProperties:
     description: IEI Integration Corp.
   "^ifi,.*":
     description: Ingenieurburo Fur Ic-Technologie (I/F/I)
+  "^ifm,.*":
+    description: ifm electronic gmbh
   "^ilitek,.*":
     description: ILI Technology Corporation (ILITEK)
   "^imagis,.*":
@@ -995,6 +1005,8 @@ patternProperties:
     description: Mustek Limited
   "^mediatek,.*":
     description: MediaTek Inc.
+  "^medion,.*":
+    description: Medion AG
   "^megachips,.*":
     description: MegaChips
   "^mele,.*":
@@ -1361,6 +1373,8 @@ patternProperties:
     description: Revolution Robotics, Inc. (Revotics)
   "^rex,.*":
     description: iMX6 Rex Project
+  "^rfdigital,.*":
+    description: RF Digital Corporation
   "^richtek,.*":
     description: Richtek Technology Corporation
   "^ricoh,.*":
@@ -1697,6 +1711,8 @@ patternProperties:
     description: Theobroma Systems Design und Consulting GmbH
   "^turing,.*":
     description: Turing Machines, Inc.
+  "^tuxedo,.*":
+    description: TUXEDO Computers GmbH
   "^tyan,.*":
     description: Tyan Computer Corporation
   "^tyhx,.*":
diff --git a/Bindings/watchdog/mpc8xxx-wdt.txt b/Bindings/watchdog/mpc8xxx-wdt.txt
deleted file mode 100644 (file)
index a384ff5..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-* Freescale mpc8xxx watchdog driver (For 83xx, 86xx and 8xx)
-
-Required properties:
-- compatible: Shall contain one of the following:
-       "mpc83xx_wdt" for an mpc83xx
-       "fsl,mpc8610-wdt" for an mpc86xx
-       "fsl,mpc823-wdt" for an mpc8xx
-- reg: base physical address and length of the area hosting the
-       watchdog registers.
-               On the 83xx, "Watchdog Timer Registers" area:   <0x200 0x100>
-               On the 86xx, "Watchdog Timer Registers" area:   <0xe4000 0x100>
-               On the 8xx, "General System Interface Unit" area: <0x0 0x10>
-
-Optional properties:
-- reg: additional physical address and length (4) of location of the
-       Reset Status Register (called RSTRSCR on the mpc86xx)
-               On the 83xx, it is located at offset 0x910
-               On the 86xx, it is located at offset 0xe0094
-               On the 8xx, it is located at offset 0x288
-
-Example:
-               WDT: watchdog@0 {
-                   compatible = "fsl,mpc823-wdt";
-                   reg = <0x0 0x10 0x288 0x4>;
-               };
diff --git a/Bindings/watchdog/mpc8xxx-wdt.yaml b/Bindings/watchdog/mpc8xxx-wdt.yaml
new file mode 100644 (file)
index 0000000..67ad4f1
--- /dev/null
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/mpc8xxx-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale MPC8xxx watchdog timer (For 83xx, 86xx and 8xx)
+
+maintainers:
+  - J. Neuschäfer <j.ne@posteo.net>
+
+properties:
+  compatible:
+    enum:
+      - mpc83xx_wdt       # for an mpc83xx
+      - fsl,mpc8610-wdt   # for an mpc86xx
+      - fsl,mpc823-wdt    # for an mpc8xx
+
+  device_type:
+    const: watchdog
+
+  reg:
+    minItems: 1
+    items:
+      - description: |
+          Base physical address and length of the area hosting the watchdog
+          registers.
+
+          On the 83xx, "Watchdog Timer Registers" area:     <0x200 0x100>
+          On the 86xx, "Watchdog Timer Registers" area:     <0xe4000 0x100>
+          On the 8xx, "General System Interface Unit" area: <0x0 0x10>
+
+      - description: |
+          Additional optional physical address and length (4) of location of
+          the Reset Status Register (called RSTRSCR on the mpc86xx)
+
+          On the 83xx, it is located at offset 0x910
+          On the 86xx, it is located at offset 0xe0094
+          On the 8xx, it is located at offset 0x288
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: watchdog.yaml#
+
+additionalProperties: false
+
+examples:
+  - |
+    watchdog@0 {
+        compatible = "fsl,mpc823-wdt";
+        reg = <0x0 0x10 0x288 0x4>;
+    };
+
+  - |
+    watchdog@200 {
+        compatible = "mpc83xx_wdt";
+        reg = <0x200 0x100>;
+        device_type = "watchdog";
+    };
+
+...
index 54f5311ed016dc3936e1f6b10feaa3678fddeeb1..9f861045b71e8316ae88f8078a86043a6d04def8 100644 (file)
@@ -17,6 +17,7 @@ properties:
     oneOf:
       - items:
           - enum:
+              - qcom,apss-wdt-glymur
               - qcom,kpss-wdt-ipq4019
               - qcom,apss-wdt-ipq5018
               - qcom,apss-wdt-ipq5332
@@ -43,6 +44,7 @@ properties:
               - qcom,apss-wdt-sm6350
               - qcom,apss-wdt-sm8150
               - qcom,apss-wdt-sm8250
+              - qcom,apss-wdt-x1e80100
           - const: qcom,kpss-wdt
       - const: qcom,kpss-wdt
         deprecated: true
index 53fc64f5b56d33f910395d32b35e0905b8b9aa53..41aee1655b0c22a6dce212a63fa4849089253f09 100644 (file)
@@ -19,7 +19,6 @@ properties:
     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
@@ -49,6 +48,7 @@ properties:
 
   samsung,cluster-index:
     $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2]
     description:
       Index of CPU cluster on which watchdog is running (in case of Exynos850,
       Exynos990 or Google gs101).
@@ -74,26 +74,31 @@ allOf:
           contains:
             enum:
               - google,gs101-wdt
-              - samsung,exynos5250-wdt
-              - samsung,exynos5420-wdt
-              - samsung,exynos7-wdt
               - samsung,exynos850-wdt
-              - samsung,exynos990-wdt
               - samsung,exynosautov9-wdt
               - samsung,exynosautov920-wdt
     then:
+      properties:
+        clocks:
+          items:
+            - description: Bus clock, used for register interface
+            - description: Source clock (driving watchdog counter)
+        clock-names:
+          items:
+            - const: watchdog
+            - const: watchdog_src
+        samsung,cluster-index:
+          enum: [0, 1]
       required:
+        - samsung,cluster-index
         - samsung,syscon-phandle
+
   - if:
       properties:
         compatible:
           contains:
             enum:
-              - google,gs101-wdt
-              - samsung,exynos850-wdt
               - samsung,exynos990-wdt
-              - samsung,exynosautov9-wdt
-              - samsung,exynosautov920-wdt
     then:
       properties:
         clocks:
@@ -104,11 +109,37 @@ allOf:
           items:
             - const: watchdog
             - const: watchdog_src
-        samsung,cluster-index:
-          enum: [0, 1, 2]
       required:
         - samsung,cluster-index
-    else:
+        - samsung,syscon-phandle
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,exynos5250-wdt
+              - samsung,exynos5420-wdt
+              - samsung,exynos7-wdt
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Bus clock, which is also a source clock
+        clock-names:
+          items:
+            - const: watchdog
+        samsung,cluster-index: false
+      required:
+        - samsung,syscon-phandle
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,s3c6410-wdt
+    then:
       properties:
         clocks:
           items:
@@ -117,6 +148,7 @@ allOf:
           items:
             - const: watchdog
         samsung,cluster-index: false
+        samsung,syscon-phandle: false
 
 unevaluatedProperties: false
 
index 14b0695997402b3995f7a2ced19fcece24671c3e..fccfc785a077b9da2c024c2ac178ceff4c2e1445 100644 (file)
@@ -32,6 +32,9 @@ properties:
   clocks:
     maxItems: 1
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 05c34248e5447d47ea90002f1e007a776b9e2514..2ff5b0565a313d7d4686b6dd9b8e266e683e6ec5 100644 (file)
@@ -214,6 +214,10 @@ binding schema. All of the DT binding documents can be validated using the
 
     make dt_binding_check
 
+Or to validate a single schema and its example::
+
+    make sram/sram.yaml
+
 In order to perform validation of DT source files, use the ``dtbs_check`` target::
 
     make dtbs_check
@@ -226,10 +230,10 @@ It is possible to run both in a single command::
 
     make dt_binding_check dtbs_check
 
-It is also possible to run checks with a subset of matching schema files by
-setting the ``DT_SCHEMA_FILES`` variable to 1 or more specific schema files or
-patterns (partial match of a fixed string). Each file or pattern should be
-separated by ':'.
+It is also possible to combine running the above commands with a subset of
+matching schema files by setting the ``DT_SCHEMA_FILES`` variable to 1 or more
+specific schema files or patterns (partial match of a fixed string). Each file
+or pattern should be separated by ':'.
 
 ::
 
index 861a331963acf9ad2856bd4599f3e47117f28e95..b0fc549f53e3a218e465e091580db7334e478a55 100644 (file)
 #define CLKID_HDCP22_SKPCLK_SEL                222
 #define CLKID_HDCP22_SKPCLK_DIV                223
 #define CLKID_HDCP22_SKPCLK            224
+#define CLKID_CTS_ENCL_SEL             225
+#define CLKID_CTS_ENCL                 226
+#define CLKID_CDAC_SEL                 227
+#define CLKID_CDAC_DIV                 228
+#define CLKID_CDAC                     229
+#define CLKID_DEMOD_CORE_SEL           230
+#define CLKID_DEMOD_CORE_DIV           231
+#define CLKID_DEMOD_CORE               232
+#define CLKID_ADC_EXTCLK_IN_SEL                233
+#define CLKID_ADC_EXTCLK_IN_DIV                234
+#define CLKID_ADC_EXTCLK_IN            235
 
 #endif /* _DT_BINDINGS_CLOCK_AMLOGIC_S4_PERIPHERALS_CLKC_H */
diff --git a/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h b/include/dt-bindings/clock/amlogic,t7-peripherals-clkc.h
new file mode 100644 (file)
index 0000000..32c4b62
--- /dev/null
@@ -0,0 +1,228 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
+ */
+
+#ifndef __T7_PERIPHERALS_CLKC_H
+#define __T7_PERIPHERALS_CLKC_H
+
+#define CLKID_RTC_DUALDIV_IN           0
+#define CLKID_RTC_DUALDIV_DIV          1
+#define CLKID_RTC_DUALDIV_SEL          2
+#define CLKID_RTC_DUALDIV              3
+#define CLKID_RTC                      4
+#define CLKID_CECA_DUALDIV_IN          5
+#define CLKID_CECA_DUALDIV_DIV         6
+#define CLKID_CECA_DUALDIV_SEL         7
+#define CLKID_CECA_DUALDIV             8
+#define CLKID_CECA                     9
+#define CLKID_CECB_DUALDIV_IN          10
+#define CLKID_CECB_DUALDIV_DIV         11
+#define CLKID_CECB_DUALDIV_SEL         12
+#define CLKID_CECB_DUALDIV             13
+#define CLKID_CECB                     14
+#define CLKID_SC_SEL                   15
+#define CLKID_SC_DIV                   16
+#define CLKID_SC                       17
+#define CLKID_DSPA_0_SEL               18
+#define CLKID_DSPA_0_DIV               19
+#define CLKID_DSPA_0                   20
+#define CLKID_DSPA_1_SEL               21
+#define CLKID_DSPA_1_DIV               22
+#define CLKID_DSPA_1                   23
+#define CLKID_DSPA                     24
+#define CLKID_DSPB_0_SEL               25
+#define CLKID_DSPB_0_DIV               26
+#define CLKID_DSPB_0                   27
+#define CLKID_DSPB_1_SEL               28
+#define CLKID_DSPB_1_DIV               29
+#define CLKID_DSPB_1                   30
+#define CLKID_DSPB                     31
+#define CLKID_24M                      32
+#define CLKID_24M_DIV2                 33
+#define CLKID_12M                      34
+#define CLKID_25M_DIV                  35
+#define CLKID_25M                      36
+#define CLKID_ANAKIN_0_SEL             37
+#define CLKID_ANAKIN_0_DIV             38
+#define CLKID_ANAKIN_0                 39
+#define CLKID_ANAKIN_1_SEL             40
+#define CLKID_ANAKIN_1_DIV             41
+#define CLKID_ANAKIN_1                 42
+#define CLKID_ANAKIN_01_SEL            43
+#define CLKID_ANAKIN                   44
+#define CLKID_TS_DIV                   45
+#define CLKID_TS                       46
+#define CLKID_MIPI_CSI_PHY_0_SEL       47
+#define CLKID_MIPI_CSI_PHY_0_DIV       48
+#define CLKID_MIPI_CSI_PHY_0           49
+#define CLKID_MIPI_CSI_PHY_1_SEL       50
+#define CLKID_MIPI_CSI_PHY_1_DIV       51
+#define CLKID_MIPI_CSI_PHY_1           52
+#define CLKID_MIPI_CSI_PHY             53
+#define CLKID_MIPI_ISP_SEL             54
+#define CLKID_MIPI_ISP_DIV             55
+#define CLKID_MIPI_ISP                 56
+#define CLKID_MALI_0_SEL               57
+#define CLKID_MALI_0_DIV               58
+#define CLKID_MALI_0                   59
+#define CLKID_MALI_1_SEL               60
+#define CLKID_MALI_1_DIV               61
+#define CLKID_MALI_1                   62
+#define CLKID_MALI                     63
+#define CLKID_ETH_RMII_SEL             64
+#define CLKID_ETH_RMII_DIV             65
+#define CLKID_ETH_RMII                 66
+#define CLKID_FCLK_DIV2_DIV8           67
+#define CLKID_ETH_125M                 68
+#define CLKID_SD_EMMC_A_SEL            69
+#define CLKID_SD_EMMC_A_DIV            70
+#define CLKID_SD_EMMC_A                        71
+#define CLKID_SD_EMMC_B_SEL            72
+#define CLKID_SD_EMMC_B_DIV            73
+#define CLKID_SD_EMMC_B                        74
+#define CLKID_SD_EMMC_C_SEL            75
+#define CLKID_SD_EMMC_C_DIV            76
+#define CLKID_SD_EMMC_C                        77
+#define CLKID_SPICC0_SEL               78
+#define CLKID_SPICC0_DIV               79
+#define CLKID_SPICC0                   80
+#define CLKID_SPICC1_SEL               81
+#define CLKID_SPICC1_DIV               82
+#define CLKID_SPICC1                   83
+#define CLKID_SPICC2_SEL               84
+#define CLKID_SPICC2_DIV               85
+#define CLKID_SPICC2                   86
+#define CLKID_SPICC3_SEL               87
+#define CLKID_SPICC3_DIV               88
+#define CLKID_SPICC3                   89
+#define CLKID_SPICC4_SEL               90
+#define CLKID_SPICC4_DIV               91
+#define CLKID_SPICC4                   92
+#define CLKID_SPICC5_SEL               93
+#define CLKID_SPICC5_DIV               94
+#define CLKID_SPICC5                   95
+#define CLKID_SARADC_SEL               96
+#define CLKID_SARADC_DIV               97
+#define CLKID_SARADC                   98
+#define CLKID_PWM_A_SEL                        99
+#define CLKID_PWM_A_DIV                        100
+#define CLKID_PWM_A                    101
+#define CLKID_PWM_B_SEL                        102
+#define CLKID_PWM_B_DIV                        103
+#define CLKID_PWM_B                    104
+#define CLKID_PWM_C_SEL                        105
+#define CLKID_PWM_C_DIV                        106
+#define CLKID_PWM_C                    107
+#define CLKID_PWM_D_SEL                        108
+#define CLKID_PWM_D_DIV                        109
+#define CLKID_PWM_D                    110
+#define CLKID_PWM_E_SEL                        111
+#define CLKID_PWM_E_DIV                        112
+#define CLKID_PWM_E                    113
+#define CLKID_PWM_F_SEL                        114
+#define CLKID_PWM_F_DIV                        115
+#define CLKID_PWM_F                    116
+#define CLKID_PWM_AO_A_SEL             117
+#define CLKID_PWM_AO_A_DIV             118
+#define CLKID_PWM_AO_A                 119
+#define CLKID_PWM_AO_B_SEL             120
+#define CLKID_PWM_AO_B_DIV             121
+#define CLKID_PWM_AO_B                 122
+#define CLKID_PWM_AO_C_SEL             123
+#define CLKID_PWM_AO_C_DIV             124
+#define CLKID_PWM_AO_C                 125
+#define CLKID_PWM_AO_D_SEL             126
+#define CLKID_PWM_AO_D_DIV             127
+#define CLKID_PWM_AO_D                 128
+#define CLKID_PWM_AO_E_SEL             129
+#define CLKID_PWM_AO_E_DIV             130
+#define CLKID_PWM_AO_E                 131
+#define CLKID_PWM_AO_F_SEL             132
+#define CLKID_PWM_AO_F_DIV             133
+#define CLKID_PWM_AO_F                 134
+#define CLKID_PWM_AO_G_SEL             135
+#define CLKID_PWM_AO_G_DIV             136
+#define CLKID_PWM_AO_G                 137
+#define CLKID_PWM_AO_H_SEL             138
+#define CLKID_PWM_AO_H_DIV             139
+#define CLKID_PWM_AO_H                 140
+#define CLKID_SYS_DDR                  141
+#define CLKID_SYS_DOS                  142
+#define CLKID_SYS_MIPI_DSI_A           143
+#define CLKID_SYS_MIPI_DSI_B           144
+#define CLKID_SYS_ETHPHY               145
+#define CLKID_SYS_MALI                 146
+#define CLKID_SYS_AOCPU                        147
+#define CLKID_SYS_AUCPU                        148
+#define CLKID_SYS_CEC                  149
+#define CLKID_SYS_GDC                  150
+#define CLKID_SYS_DESWARP              151
+#define CLKID_SYS_AMPIPE_NAND          152
+#define CLKID_SYS_AMPIPE_ETH           153
+#define CLKID_SYS_AM2AXI0              154
+#define CLKID_SYS_AM2AXI1              155
+#define CLKID_SYS_AM2AXI2              156
+#define CLKID_SYS_SD_EMMC_A            157
+#define CLKID_SYS_SD_EMMC_B            158
+#define CLKID_SYS_SD_EMMC_C            159
+#define CLKID_SYS_SMARTCARD            160
+#define CLKID_SYS_ACODEC               161
+#define CLKID_SYS_SPIFC                        162
+#define CLKID_SYS_MSR_CLK              163
+#define CLKID_SYS_IR_CTRL              164
+#define CLKID_SYS_AUDIO                        165
+#define CLKID_SYS_ETH                  166
+#define CLKID_SYS_UART_A               167
+#define CLKID_SYS_UART_B               168
+#define CLKID_SYS_UART_C               169
+#define CLKID_SYS_UART_D               170
+#define CLKID_SYS_UART_E               171
+#define CLKID_SYS_UART_F               172
+#define CLKID_SYS_AIFIFO               173
+#define CLKID_SYS_SPICC2               174
+#define CLKID_SYS_SPICC3               175
+#define CLKID_SYS_SPICC4               176
+#define CLKID_SYS_TS_A73               177
+#define CLKID_SYS_TS_A53               178
+#define CLKID_SYS_SPICC5               179
+#define CLKID_SYS_G2D                  180
+#define CLKID_SYS_SPICC0               181
+#define CLKID_SYS_SPICC1               182
+#define CLKID_SYS_PCIE                 183
+#define CLKID_SYS_USB                  184
+#define CLKID_SYS_PCIE_PHY             185
+#define CLKID_SYS_I2C_AO_A             186
+#define CLKID_SYS_I2C_AO_B             187
+#define CLKID_SYS_I2C_M_A              188
+#define CLKID_SYS_I2C_M_B              189
+#define CLKID_SYS_I2C_M_C              190
+#define CLKID_SYS_I2C_M_D              191
+#define CLKID_SYS_I2C_M_E              192
+#define CLKID_SYS_I2C_M_F              193
+#define CLKID_SYS_HDMITX_APB           194
+#define CLKID_SYS_I2C_S_A              195
+#define CLKID_SYS_HDMIRX_PCLK          196
+#define CLKID_SYS_MMC_APB              197
+#define CLKID_SYS_MIPI_ISP_PCLK                198
+#define CLKID_SYS_RSA                  199
+#define CLKID_SYS_PCLK_SYS_APB         200
+#define CLKID_SYS_A73PCLK_APB          201
+#define CLKID_SYS_DSPA                 202
+#define CLKID_SYS_DSPB                 203
+#define CLKID_SYS_VPU_INTR             204
+#define CLKID_SYS_SAR_ADC              205
+#define CLKID_SYS_GIC                  206
+#define CLKID_SYS_TS_GPU               207
+#define CLKID_SYS_TS_NNA               208
+#define CLKID_SYS_TS_VPU               209
+#define CLKID_SYS_TS_HEVC              210
+#define CLKID_SYS_PWM_AB               211
+#define CLKID_SYS_PWM_CD               212
+#define CLKID_SYS_PWM_EF               213
+#define CLKID_SYS_PWM_AO_AB            214
+#define CLKID_SYS_PWM_AO_CD            215
+#define CLKID_SYS_PWM_AO_EF            216
+#define CLKID_SYS_PWM_AO_GH            217
+
+#endif /* __T7_PERIPHERALS_CLKC_H */
diff --git a/include/dt-bindings/clock/amlogic,t7-pll-clkc.h b/include/dt-bindings/clock/amlogic,t7-pll-clkc.h
new file mode 100644 (file)
index 0000000..e2481f2
--- /dev/null
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
+ */
+
+#ifndef __T7_PLL_CLKC_H
+#define __T7_PLL_CLKC_H
+
+/* GP0 */
+#define CLKID_GP0_PLL_DCO      0
+#define CLKID_GP0_PLL          1
+
+/* GP1 */
+#define CLKID_GP1_PLL_DCO      0
+#define CLKID_GP1_PLL          1
+
+/* HIFI */
+#define CLKID_HIFI_PLL_DCO     0
+#define CLKID_HIFI_PLL         1
+
+/* PCIE */
+#define CLKID_PCIE_PLL_DCO     0
+#define CLKID_PCIE_PLL_DCO_DIV2        1
+#define CLKID_PCIE_PLL_OD      2
+#define CLKID_PCIE_PLL         3
+
+/* MPLL */
+#define CLKID_MPLL_PREDIV      0
+#define CLKID_MPLL0_DIV                1
+#define CLKID_MPLL0            2
+#define CLKID_MPLL1_DIV                3
+#define CLKID_MPLL1            4
+#define CLKID_MPLL2_DIV                5
+#define CLKID_MPLL2            6
+#define CLKID_MPLL3_DIV                7
+#define CLKID_MPLL3            8
+
+/* HDMI */
+#define CLKID_HDMI_PLL_DCO     0
+#define CLKID_HDMI_PLL_OD      1
+#define CLKID_HDMI_PLL         2
+
+/* MCLK */
+#define CLKID_MCLK_PLL_DCO     0
+#define CLKID_MCLK_PRE         1
+#define CLKID_MCLK_PLL         2
+#define CLKID_MCLK_0_SEL       3
+#define CLKID_MCLK_0_DIV2      4
+#define CLKID_MCLK_0_PRE       5
+#define CLKID_MCLK_0           6
+#define CLKID_MCLK_1_SEL       7
+#define CLKID_MCLK_1_DIV2      8
+#define CLKID_MCLK_1_PRE       9
+#define CLKID_MCLK_1           10
+
+#endif /* __T7_PLL_CLKC_H */
diff --git a/include/dt-bindings/clock/amlogic,t7-scmi.h b/include/dt-bindings/clock/amlogic,t7-scmi.h
new file mode 100644 (file)
index 0000000..27bd257
--- /dev/null
@@ -0,0 +1,47 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (C) 2024-2025 Amlogic, Inc. All rights reserved
+ */
+
+#ifndef __T7_SCMI_CLKC_H
+#define __T7_SCMI_CLKC_H
+
+#define CLKID_DDR_PLL_OSC                      0
+#define CLKID_AUD_PLL_OSC                      1
+#define CLKID_TOP_PLL_OSC                      2
+#define CLKID_TCON_PLL_OSC                     3
+#define CLKID_USB_PLL0_OSC                     4
+#define CLKID_USB_PLL1_OSC                     5
+#define CLKID_MCLK_PLL_OSC                     6
+#define CLKID_PCIE_OSC                         7
+#define CLKID_ETH_PLL_OSC                      8
+#define CLKID_PCIE_REFCLK_PLL_OSC              9
+#define CLKID_EARC_OSC                         10
+#define CLKID_SYS1_PLL_OSC                     11
+#define CLKID_HDMI_PLL_OSC                     12
+#define CLKID_SYS_CLK                          13
+#define CLKID_AXI_CLK                          14
+#define CLKID_FIXED_PLL_DCO                    15
+#define CLKID_FIXED_PLL                                16
+#define CLKID_FCLK_DIV2_DIV                    17
+#define CLKID_FCLK_DIV2                                18
+#define CLKID_FCLK_DIV2P5_DIV                  19
+#define CLKID_FCLK_DIV2P5                      20
+#define CLKID_FCLK_DIV3_DIV                    21
+#define CLKID_FCLK_DIV3                                22
+#define CLKID_FCLK_DIV4_DIV                    23
+#define CLKID_FCLK_DIV4                                24
+#define CLKID_FCLK_DIV5_DIV                    25
+#define CLKID_FCLK_DIV5                                26
+#define CLKID_FCLK_DIV7_DIV                    27
+#define CLKID_FCLK_DIV7                                28
+#define CLKID_FCLK_50M_DIV                     29
+#define CLKID_FCLK_50M                         30
+#define CLKID_CPU_CLK                          31
+#define CLKID_A73_CLK                          32
+#define CLKID_CPU_CLK_DIV16_DIV                        33
+#define CLKID_CPU_CLK_DIV16                    34
+#define CLKID_A73_CLK_DIV16_DIV                        35
+#define CLKID_A73_CLK_DIV16                    36
+
+#endif /* __T7_SCMI_CLKC_H */
index 06d568382c779952fee715fe64dd5391cc630713..671e5a476eae30fd1be548edfb5bea0cd9f728de 100644 (file)
@@ -53,5 +53,6 @@
 #define ASPEED_RESET_AHB               8
 #define ASPEED_RESET_CRT1              9
 #define ASPEED_RESET_HACE              10
+#define ASPEED_RESET_VIDEO             11
 
 #endif
index 442f9e9037dc33198a1cee20af62fc70bbd96605..7a14dcb9f17b1e95d792b0c29fc6b8bfdc78213d 100644 (file)
 #define CLK_APM_PLL_DIV4_APM                           70
 #define CLK_APM_PLL_DIV16_APM                          71
 
+/* CMU_DPU */
+#define CLK_MOUT_DPU_BUS_USER                          1
+#define CLK_DOUT_DPU_BUSP                              2
+#define CLK_GOUT_DPU_PCLK                              3
+#define CLK_GOUT_DPU_CLK_DPU_OSCCLK_CLK                        4
+#define CLK_GOUT_DPU_AD_APB_DPU_DMA_PCLKM              5
+#define CLK_GOUT_DPU_DPUF_ACLK_DMA                     6
+#define CLK_GOUT_DPU_DPUF_ACLK_DPP                     7
+#define CLK_GOUT_DPU_D_TZPC_DPU_PCLK                   8
+#define CLK_GOUT_DPU_GPC_DPU_PCLK                      9
+#define CLK_GOUT_DPU_LHM_AXI_P_DPU_I_CLK               10
+#define CLK_GOUT_DPU_LHS_AXI_D0_DPU_I_CLK              11
+#define CLK_GOUT_DPU_LHS_AXI_D1_DPU_I_CLK              12
+#define CLK_GOUT_DPU_LHS_AXI_D2_DPU_I_CLK              13
+#define CLK_GOUT_DPU_PPMU_DPUD0_ACLK                   14
+#define CLK_GOUT_DPU_PPMU_DPUD0_PCLK                   15
+#define CLK_GOUT_DPU_PPMU_DPUD1_ACLK                   16
+#define CLK_GOUT_DPU_PPMU_DPUD1_PCLK                   17
+#define CLK_GOUT_DPU_PPMU_DPUD2_ACLK                   18
+#define CLK_GOUT_DPU_PPMU_DPUD2_PCLK                   19
+#define CLK_GOUT_DPU_CLK_DPU_BUSD_CLK                  20
+#define CLK_GOUT_DPU_CLK_DPU_BUSP_CLK                  21
+#define CLK_GOUT_DPU_SSMT_DPU0_ACLK                    22
+#define CLK_GOUT_DPU_SSMT_DPU0_PCLK                    23
+#define CLK_GOUT_DPU_SSMT_DPU1_ACLK                    24
+#define CLK_GOUT_DPU_SSMT_DPU1_PCLK                    25
+#define CLK_GOUT_DPU_SSMT_DPU2_ACLK                    26
+#define CLK_GOUT_DPU_SSMT_DPU2_PCLK                    27
+#define CLK_GOUT_DPU_SYSMMU_DPUD0_CLK_S1               28
+#define CLK_GOUT_DPU_SYSMMU_DPUD0_CLK_S2               29
+#define CLK_GOUT_DPU_SYSMMU_DPUD1_CLK_S1               30
+#define CLK_GOUT_DPU_SYSMMU_DPUD1_CLK_S2               31
+#define CLK_GOUT_DPU_SYSMMU_DPUD2_CLK_S1               32
+#define CLK_GOUT_DPU_SYSMMU_DPUD2_CLK_S2               33
+#define CLK_GOUT_DPU_SYSREG_DPU_PCLK                   34
+
 /* CMU_HSI0 */
 #define CLK_FOUT_USB_PLL                                       1
 #define CLK_MOUT_PLL_USB                                       2
diff --git a/include/dt-bindings/clock/oxsemi,ox810se.h b/include/dt-bindings/clock/oxsemi,ox810se.h
deleted file mode 100644 (file)
index 7256365..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
- */
-
-#ifndef DT_CLOCK_OXSEMI_OX810SE_H
-#define DT_CLOCK_OXSEMI_OX810SE_H
-
-#define CLK_810_LEON           0
-#define CLK_810_DMA_SGDMA      1
-#define CLK_810_CIPHER         2
-#define CLK_810_SATA           3
-#define CLK_810_AUDIO          4
-#define CLK_810_USBMPH         5
-#define CLK_810_ETHA           6
-#define CLK_810_PCIEA          7
-#define CLK_810_NAND           8
-
-#endif /* DT_CLOCK_OXSEMI_OX810SE_H */
diff --git a/include/dt-bindings/clock/oxsemi,ox820.h b/include/dt-bindings/clock/oxsemi,ox820.h
deleted file mode 100644 (file)
index 55f4226..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
- */
-
-#ifndef DT_CLOCK_OXSEMI_OX820_H
-#define DT_CLOCK_OXSEMI_OX820_H
-
-/* PLLs */
-#define CLK_820_PLLA           0
-#define CLK_820_PLLB           1
-
-/* Gate Clocks */
-#define CLK_820_LEON           2
-#define CLK_820_DMA_SGDMA      3
-#define CLK_820_CIPHER         4
-#define CLK_820_SD             5
-#define CLK_820_SATA           6
-#define CLK_820_AUDIO          7
-#define CLK_820_USBMPH         8
-#define CLK_820_ETHA           9
-#define CLK_820_PCIEA          10
-#define CLK_820_NAND           11
-#define CLK_820_PCIEB          12
-#define CLK_820_ETHB           13
-#define CLK_820_REF600         14
-#define CLK_820_USBDEV         15
-
-#endif /* DT_CLOCK_OXSEMI_OX820_H */
index 4e3897b3669d9149b61a6feec31ca35e2058dcb9..c592682d5ba7880a2b462c8dc5689008e9257bcc 100644 (file)
 #define MSM8937_GCC_MDSS_PCLK1_CLK                     179
 #define MSM8937_GCC_OXILI_AON_CLK                      180
 #define MSM8937_GCC_OXILI_TIMER_CLK                    181
+#define MSM8940_GCC_IPA_TBU_CLK                                182
 
 /* GCC block resets */
 #define GCC_CAMSS_MICRO_BCR                    0
 #define GCC_QUSB2_PHY_BCR                      2
 #define GCC_USB_HS_BCR                         3
 #define GCC_USB2_HS_PHY_ONLY_BCR               4
+#define GCC_MDSS_BCR                           5
 
 /* GDSCs */
 #define CPP_GDSC                               0
diff --git a/include/dt-bindings/clock/qcom,kaanapali-cambistmclkcc.h b/include/dt-bindings/clock/qcom,kaanapali-cambistmclkcc.h
new file mode 100644 (file)
index 0000000..ddb083b
--- /dev/null
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAM_BIST_MCLK_CC_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_BIST_MCLK_CC_KAANAPALI_H
+
+/* CAM_BIST_MCLK_CC clocks */
+#define CAM_BIST_MCLK_CC_DEBUG_CLK                             0
+#define CAM_BIST_MCLK_CC_DEBUG_DIV_CLK_SRC                     1
+#define CAM_BIST_MCLK_CC_MCLK0_CLK                             2
+#define CAM_BIST_MCLK_CC_MCLK0_CLK_SRC                         3
+#define CAM_BIST_MCLK_CC_MCLK1_CLK                             4
+#define CAM_BIST_MCLK_CC_MCLK1_CLK_SRC                         5
+#define CAM_BIST_MCLK_CC_MCLK2_CLK                             6
+#define CAM_BIST_MCLK_CC_MCLK2_CLK_SRC                         7
+#define CAM_BIST_MCLK_CC_MCLK3_CLK                             8
+#define CAM_BIST_MCLK_CC_MCLK3_CLK_SRC                         9
+#define CAM_BIST_MCLK_CC_MCLK4_CLK                             10
+#define CAM_BIST_MCLK_CC_MCLK4_CLK_SRC                         11
+#define CAM_BIST_MCLK_CC_MCLK5_CLK                             12
+#define CAM_BIST_MCLK_CC_MCLK5_CLK_SRC                         13
+#define CAM_BIST_MCLK_CC_MCLK6_CLK                             14
+#define CAM_BIST_MCLK_CC_MCLK6_CLK_SRC                         15
+#define CAM_BIST_MCLK_CC_MCLK7_CLK                             16
+#define CAM_BIST_MCLK_CC_MCLK7_CLK_SRC                         17
+#define CAM_BIST_MCLK_CC_PLL0                                  18
+#define CAM_BIST_MCLK_CC_PLL_TEST_CLK                          19
+#define CAM_BIST_MCLK_CC_PLL_TEST_DIV_CLK_SRC                  20
+#define CAM_BIST_MCLK_CC_SLEEP_CLK                             21
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,kaanapali-camcc.h b/include/dt-bindings/clock/qcom,kaanapali-camcc.h
new file mode 100644 (file)
index 0000000..5883513
--- /dev/null
@@ -0,0 +1,147 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAM_CC_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_CC_KAANAPALI_H
+
+/* CAM_CC clocks */
+#define CAM_CC_CAM_TOP_AHB_CLK                                 0
+#define CAM_CC_CAM_TOP_FAST_AHB_CLK                            1
+#define CAM_CC_CAMNOC_DCD_XO_CLK                               2
+#define CAM_CC_CAMNOC_NRT_AXI_CLK                              3
+#define CAM_CC_CAMNOC_NRT_CRE_CLK                              4
+#define CAM_CC_CAMNOC_NRT_IPE_NPS_CLK                          5
+#define CAM_CC_CAMNOC_NRT_OFE_MAIN_CLK                         6
+#define CAM_CC_CAMNOC_RT_AXI_CLK                               7
+#define CAM_CC_CAMNOC_RT_AXI_CLK_SRC                           8
+#define CAM_CC_CAMNOC_RT_IFE_LITE_CLK                          9
+#define CAM_CC_CAMNOC_RT_TFE_0_MAIN_CLK                                10
+#define CAM_CC_CAMNOC_RT_TFE_1_MAIN_CLK                                11
+#define CAM_CC_CAMNOC_RT_TFE_2_MAIN_CLK                                12
+#define CAM_CC_CAMNOC_XO_CLK                                   13
+#define CAM_CC_CCI_0_CLK                                       14
+#define CAM_CC_CCI_0_CLK_SRC                                   15
+#define CAM_CC_CCI_1_CLK                                       16
+#define CAM_CC_CCI_1_CLK_SRC                                   17
+#define CAM_CC_CCI_2_CLK                                       18
+#define CAM_CC_CCI_2_CLK_SRC                                   19
+#define CAM_CC_CORE_AHB_CLK                                    20
+#define CAM_CC_CPHY_RX_CLK_SRC                                 21
+#define CAM_CC_CRE_AHB_CLK                                     22
+#define CAM_CC_CRE_CLK                                         23
+#define CAM_CC_CRE_CLK_SRC                                     24
+#define CAM_CC_CSI0PHYTIMER_CLK                                        25
+#define CAM_CC_CSI0PHYTIMER_CLK_SRC                            26
+#define CAM_CC_CSI1PHYTIMER_CLK                                        27
+#define CAM_CC_CSI1PHYTIMER_CLK_SRC                            28
+#define CAM_CC_CSI2PHYTIMER_CLK                                        29
+#define CAM_CC_CSI2PHYTIMER_CLK_SRC                            30
+#define CAM_CC_CSI3PHYTIMER_CLK                                        31
+#define CAM_CC_CSI3PHYTIMER_CLK_SRC                            32
+#define CAM_CC_CSI4PHYTIMER_CLK                                        33
+#define CAM_CC_CSI4PHYTIMER_CLK_SRC                            34
+#define CAM_CC_CSI5PHYTIMER_CLK                                        35
+#define CAM_CC_CSI5PHYTIMER_CLK_SRC                            36
+#define CAM_CC_CSID_CLK                                                37
+#define CAM_CC_CSID_CLK_SRC                                    38
+#define CAM_CC_CSID_CSIPHY_RX_CLK                              39
+#define CAM_CC_CSIPHY0_CLK                                     40
+#define CAM_CC_CSIPHY1_CLK                                     41
+#define CAM_CC_CSIPHY2_CLK                                     42
+#define CAM_CC_CSIPHY3_CLK                                     43
+#define CAM_CC_CSIPHY4_CLK                                     44
+#define CAM_CC_CSIPHY5_CLK                                     45
+#define CAM_CC_DRV_AHB_CLK                                     46
+#define CAM_CC_DRV_XO_CLK                                      47
+#define CAM_CC_FAST_AHB_CLK_SRC                                        48
+#define CAM_CC_GDSC_CLK                                                49
+#define CAM_CC_ICP_0_AHB_CLK                                   50
+#define CAM_CC_ICP_0_CLK                                       51
+#define CAM_CC_ICP_0_CLK_SRC                                   52
+#define CAM_CC_ICP_1_AHB_CLK                                   53
+#define CAM_CC_ICP_1_CLK                                       54
+#define CAM_CC_ICP_1_CLK_SRC                                   55
+#define CAM_CC_IFE_LITE_AHB_CLK                                        56
+#define CAM_CC_IFE_LITE_CLK                                    57
+#define CAM_CC_IFE_LITE_CLK_SRC                                        58
+#define CAM_CC_IFE_LITE_CPHY_RX_CLK                            59
+#define CAM_CC_IFE_LITE_CSID_CLK                               60
+#define CAM_CC_IFE_LITE_CSID_CLK_SRC                           61
+#define CAM_CC_IPE_NPS_AHB_CLK                                 62
+#define CAM_CC_IPE_NPS_CLK                                     63
+#define CAM_CC_IPE_NPS_CLK_SRC                                 64
+#define CAM_CC_IPE_NPS_FAST_AHB_CLK                            65
+#define CAM_CC_IPE_PPS_CLK                                     66
+#define CAM_CC_IPE_PPS_FAST_AHB_CLK                            67
+#define CAM_CC_JPEG_CLK                                                68
+#define CAM_CC_JPEG_CLK_SRC                                    69
+#define CAM_CC_OFE_AHB_CLK                                     70
+#define CAM_CC_OFE_ANCHOR_CLK                                  71
+#define CAM_CC_OFE_ANCHOR_FAST_AHB_CLK                         72
+#define CAM_CC_OFE_CLK_SRC                                     73
+#define CAM_CC_OFE_HDR_CLK                                     74
+#define CAM_CC_OFE_HDR_FAST_AHB_CLK                            75
+#define CAM_CC_OFE_MAIN_CLK                                    76
+#define CAM_CC_OFE_MAIN_FAST_AHB_CLK                           77
+#define CAM_CC_PLL0                                            78
+#define CAM_CC_PLL0_OUT_EVEN                                   79
+#define CAM_CC_PLL0_OUT_ODD                                    80
+#define CAM_CC_PLL1                                            81
+#define CAM_CC_PLL1_OUT_EVEN                                   82
+#define CAM_CC_PLL2                                            83
+#define CAM_CC_PLL2_OUT_EVEN                                   84
+#define CAM_CC_PLL3                                            85
+#define CAM_CC_PLL3_OUT_EVEN                                   86
+#define CAM_CC_PLL4                                            87
+#define CAM_CC_PLL4_OUT_EVEN                                   88
+#define CAM_CC_PLL5                                            89
+#define CAM_CC_PLL5_OUT_EVEN                                   90
+#define CAM_CC_PLL6                                            91
+#define CAM_CC_PLL6_OUT_EVEN                                   92
+#define CAM_CC_PLL6_OUT_ODD                                    93
+#define CAM_CC_PLL7                                            94
+#define CAM_CC_PLL7_OUT_EVEN                                   95
+#define CAM_CC_QDSS_DEBUG_CLK                                  96
+#define CAM_CC_QDSS_DEBUG_CLK_SRC                              97
+#define CAM_CC_QDSS_DEBUG_XO_CLK                               98
+#define CAM_CC_SLEEP_CLK                                       99
+#define CAM_CC_SLOW_AHB_CLK_SRC                                        100
+#define CAM_CC_TFE_0_BAYER_CLK                                 101
+#define CAM_CC_TFE_0_BAYER_FAST_AHB_CLK                                102
+#define CAM_CC_TFE_0_CLK_SRC                                   103
+#define CAM_CC_TFE_0_MAIN_CLK                                  104
+#define CAM_CC_TFE_0_MAIN_FAST_AHB_CLK                         105
+#define CAM_CC_TFE_1_BAYER_CLK                                 106
+#define CAM_CC_TFE_1_BAYER_FAST_AHB_CLK                                107
+#define CAM_CC_TFE_1_CLK_SRC                                   108
+#define CAM_CC_TFE_1_MAIN_CLK                                  109
+#define CAM_CC_TFE_1_MAIN_FAST_AHB_CLK                         110
+#define CAM_CC_TFE_2_BAYER_CLK                                 111
+#define CAM_CC_TFE_2_BAYER_FAST_AHB_CLK                                112
+#define CAM_CC_TFE_2_CLK_SRC                                   113
+#define CAM_CC_TFE_2_MAIN_CLK                                  114
+#define CAM_CC_TFE_2_MAIN_FAST_AHB_CLK                         115
+#define CAM_CC_TRACENOC_TPDM_1_CMB_CLK                         116
+#define CAM_CC_XO_CLK_SRC                                      117
+
+/* CAM_CC power domains */
+#define CAM_CC_IPE_0_GDSC                                      0
+#define CAM_CC_OFE_GDSC                                                1
+#define CAM_CC_TFE_0_GDSC                                      2
+#define CAM_CC_TFE_1_GDSC                                      3
+#define CAM_CC_TFE_2_GDSC                                      4
+#define CAM_CC_TITAN_TOP_GDSC                                  5
+
+/* CAM_CC resets */
+#define CAM_CC_DRV_BCR                                         0
+#define CAM_CC_ICP_BCR                                         1
+#define CAM_CC_IPE_0_BCR                                       2
+#define CAM_CC_OFE_BCR                                         3
+#define CAM_CC_QDSS_DEBUG_BCR                                  4
+#define CAM_CC_TFE_0_BCR                                       5
+#define CAM_CC_TFE_1_BCR                                       6
+#define CAM_CC_TFE_2_BCR                                       7
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,kaanapali-dispcc.h b/include/dt-bindings/clock/qcom,kaanapali-dispcc.h
new file mode 100644 (file)
index 0000000..05146f9
--- /dev/null
@@ -0,0 +1,109 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_DISP_CC_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_DISP_CC_KAANAPALI_H
+
+/* DISP_CC clocks */
+#define DISP_CC_ESYNC0_CLK                                     0
+#define DISP_CC_ESYNC0_CLK_SRC                                 1
+#define DISP_CC_ESYNC1_CLK                                     2
+#define DISP_CC_ESYNC1_CLK_SRC                                 3
+#define DISP_CC_MDSS_ACCU_SHIFT_CLK                            4
+#define DISP_CC_MDSS_AHB1_CLK                                  5
+#define DISP_CC_MDSS_AHB_CLK                                   6
+#define DISP_CC_MDSS_AHB_CLK_SRC                               7
+#define DISP_CC_MDSS_AHB_SWI_CLK                               8
+#define DISP_CC_MDSS_AHB_SWI_DIV_CLK_SRC                       9
+#define DISP_CC_MDSS_BYTE0_CLK                                 10
+#define DISP_CC_MDSS_BYTE0_CLK_SRC                             11
+#define DISP_CC_MDSS_BYTE0_DIV_CLK_SRC                         12
+#define DISP_CC_MDSS_BYTE0_INTF_CLK                            13
+#define DISP_CC_MDSS_BYTE1_CLK                                 14
+#define DISP_CC_MDSS_BYTE1_CLK_SRC                             15
+#define DISP_CC_MDSS_BYTE1_DIV_CLK_SRC                         16
+#define DISP_CC_MDSS_BYTE1_INTF_CLK                            17
+#define DISP_CC_MDSS_DPTX0_AUX_CLK                             18
+#define DISP_CC_MDSS_DPTX0_AUX_CLK_SRC                         19
+#define DISP_CC_MDSS_DPTX0_CRYPTO_CLK                          20
+#define DISP_CC_MDSS_DPTX0_LINK_CLK                            21
+#define DISP_CC_MDSS_DPTX0_LINK_CLK_SRC                                22
+#define DISP_CC_MDSS_DPTX0_LINK_DIV_CLK_SRC                    23
+#define DISP_CC_MDSS_DPTX0_LINK_INTF_CLK                       24
+#define DISP_CC_MDSS_DPTX0_PIXEL0_CLK                          25
+#define DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC                      26
+#define DISP_CC_MDSS_DPTX0_PIXEL1_CLK                          27
+#define DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC                      28
+#define DISP_CC_MDSS_DPTX0_USB_ROUTER_LINK_INTF_CLK            29
+#define DISP_CC_MDSS_DPTX1_AUX_CLK                             30
+#define DISP_CC_MDSS_DPTX1_AUX_CLK_SRC                         31
+#define DISP_CC_MDSS_DPTX1_CRYPTO_CLK                          32
+#define DISP_CC_MDSS_DPTX1_LINK_CLK                            33
+#define DISP_CC_MDSS_DPTX1_LINK_CLK_SRC                                34
+#define DISP_CC_MDSS_DPTX1_LINK_DIV_CLK_SRC                    35
+#define DISP_CC_MDSS_DPTX1_LINK_INTF_CLK                       36
+#define DISP_CC_MDSS_DPTX1_PIXEL0_CLK                          37
+#define DISP_CC_MDSS_DPTX1_PIXEL0_CLK_SRC                      38
+#define DISP_CC_MDSS_DPTX1_PIXEL1_CLK                          39
+#define DISP_CC_MDSS_DPTX1_PIXEL1_CLK_SRC                      40
+#define DISP_CC_MDSS_DPTX1_USB_ROUTER_LINK_INTF_CLK            41
+#define DISP_CC_MDSS_DPTX2_AUX_CLK                             42
+#define DISP_CC_MDSS_DPTX2_AUX_CLK_SRC                         43
+#define DISP_CC_MDSS_DPTX2_CRYPTO_CLK                          44
+#define DISP_CC_MDSS_DPTX2_LINK_CLK                            45
+#define DISP_CC_MDSS_DPTX2_LINK_CLK_SRC                                46
+#define DISP_CC_MDSS_DPTX2_LINK_DIV_CLK_SRC                    47
+#define DISP_CC_MDSS_DPTX2_LINK_INTF_CLK                       48
+#define DISP_CC_MDSS_DPTX2_PIXEL0_CLK                          49
+#define DISP_CC_MDSS_DPTX2_PIXEL0_CLK_SRC                      50
+#define DISP_CC_MDSS_DPTX2_PIXEL1_CLK                          51
+#define DISP_CC_MDSS_DPTX2_PIXEL1_CLK_SRC                      52
+#define DISP_CC_MDSS_DPTX3_AUX_CLK                             53
+#define DISP_CC_MDSS_DPTX3_AUX_CLK_SRC                         54
+#define DISP_CC_MDSS_DPTX3_CRYPTO_CLK                          55
+#define DISP_CC_MDSS_DPTX3_LINK_CLK                            56
+#define DISP_CC_MDSS_DPTX3_LINK_CLK_SRC                                57
+#define DISP_CC_MDSS_DPTX3_LINK_DIV_CLK_SRC                    58
+#define DISP_CC_MDSS_DPTX3_LINK_INTF_CLK                       59
+#define DISP_CC_MDSS_DPTX3_PIXEL0_CLK                          60
+#define DISP_CC_MDSS_DPTX3_PIXEL0_CLK_SRC                      61
+#define DISP_CC_MDSS_ESC0_CLK                                  62
+#define DISP_CC_MDSS_ESC0_CLK_SRC                              63
+#define DISP_CC_MDSS_ESC1_CLK                                  64
+#define DISP_CC_MDSS_ESC1_CLK_SRC                              65
+#define DISP_CC_MDSS_MDP1_CLK                                  66
+#define DISP_CC_MDSS_MDP_CLK                                   67
+#define DISP_CC_MDSS_MDP_CLK_SRC                               68
+#define DISP_CC_MDSS_MDP_LUT1_CLK                              69
+#define DISP_CC_MDSS_MDP_LUT_CLK                               70
+#define DISP_CC_MDSS_MDP_SS_IP_CLK                             71
+#define DISP_CC_MDSS_NON_GDSC_AHB_CLK                          72
+#define DISP_CC_MDSS_PCLK0_CLK                                 73
+#define DISP_CC_MDSS_PCLK0_CLK_SRC                             74
+#define DISP_CC_MDSS_PCLK1_CLK                                 75
+#define DISP_CC_MDSS_PCLK1_CLK_SRC                             76
+#define DISP_CC_MDSS_PCLK2_CLK                                 77
+#define DISP_CC_MDSS_PCLK2_CLK_SRC                             78
+#define DISP_CC_MDSS_VSYNC1_CLK                                        79
+#define DISP_CC_MDSS_VSYNC_CLK                                 80
+#define DISP_CC_MDSS_VSYNC_CLK_SRC                             81
+#define DISP_CC_OSC_CLK                                                82
+#define DISP_CC_OSC_CLK_SRC                                    83
+#define DISP_CC_PLL0                                           84
+#define DISP_CC_PLL1                                           85
+#define DISP_CC_PLL2                                           86
+#define DISP_CC_SLEEP_CLK                                      87
+#define DISP_CC_XO_CLK                                         88
+
+/* DISP_CC power domains */
+#define DISP_CC_MDSS_CORE_GDSC                                 0
+#define DISP_CC_MDSS_CORE_INT2_GDSC                            1
+
+/* 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
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,kaanapali-gpucc.h b/include/dt-bindings/clock/qcom,kaanapali-gpucc.h
new file mode 100644 (file)
index 0000000..e8dc200
--- /dev/null
@@ -0,0 +1,47 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_KAANAPALI_H
+
+/* GPU_CC clocks */
+#define GPU_CC_AHB_CLK                                         0
+#define GPU_CC_CB_CLK                                          1
+#define GPU_CC_CX_ACCU_SHIFT_CLK                               2
+#define GPU_CC_CX_GMU_CLK                                      3
+#define GPU_CC_CXO_AON_CLK                                     4
+#define GPU_CC_CXO_CLK                                         5
+#define GPU_CC_DEMET_CLK                                       6
+#define GPU_CC_DPM_CLK                                         7
+#define GPU_CC_FF_CLK_SRC                                      8
+#define GPU_CC_FREQ_MEASURE_CLK                                        9
+#define GPU_CC_GMU_CLK_SRC                                     10
+#define GPU_CC_GPU_SMMU_VOTE_CLK                               11
+#define GPU_CC_GX_ACCU_SHIFT_CLK                               12
+#define GPU_CC_GX_GMU_CLK                                      13
+#define GPU_CC_HUB_AON_CLK                                     14
+#define GPU_CC_HUB_CLK_SRC                                     15
+#define GPU_CC_HUB_CX_INT_CLK                                  16
+#define GPU_CC_HUB_DIV_CLK_SRC                                 17
+#define GPU_CC_MEMNOC_GFX_CLK                                  18
+#define GPU_CC_PLL0                                            19
+#define GPU_CC_PLL0_OUT_EVEN                                   20
+#define GPU_CC_RSCC_HUB_AON_CLK                                        21
+#define GPU_CC_RSCC_XO_AON_CLK                                 22
+#define GPU_CC_SLEEP_CLK                                       23
+
+/* GPU_CC power domains */
+#define GPU_CC_CX_GDSC                                         0
+
+/* GPU_CC resets */
+#define GPU_CC_CB_BCR                                          0
+#define GPU_CC_CX_BCR                                          1
+#define GPU_CC_FAST_HUB_BCR                                    2
+#define GPU_CC_FF_BCR                                          3
+#define GPU_CC_GMU_BCR                                         4
+#define GPU_CC_GX_BCR                                          5
+#define GPU_CC_XO_BCR                                          6
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h b/include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h
new file mode 100644 (file)
index 0000000..f32dade
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GX_CLKCTL_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_GX_CLKCTL_KAANAPALI_H
+
+/* GX_CLKCTL power domains */
+#define GX_CLKCTL_GX_GDSC                              0
+#define GX_CLKCTL_GX_SLICE_GDSC                                1
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,kaanapali-videocc.h b/include/dt-bindings/clock/qcom,kaanapali-videocc.h
new file mode 100644 (file)
index 0000000..cc0d41b
--- /dev/null
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_VIDEO_CC_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_VIDEO_CC_KAANAPALI_H
+
+/* VIDEO_CC clocks */
+#define VIDEO_CC_AHB_CLK                                       0
+#define VIDEO_CC_AHB_CLK_SRC                                   1
+#define VIDEO_CC_MVS0_CLK                                      2
+#define VIDEO_CC_MVS0_CLK_SRC                                  3
+#define VIDEO_CC_MVS0_FREERUN_CLK                              4
+#define VIDEO_CC_MVS0_SHIFT_CLK                                        5
+#define VIDEO_CC_MVS0_VPP0_CLK                                 6
+#define VIDEO_CC_MVS0_VPP0_FREERUN_CLK                         7
+#define VIDEO_CC_MVS0_VPP1_CLK                                 8
+#define VIDEO_CC_MVS0_VPP1_FREERUN_CLK                         9
+#define VIDEO_CC_MVS0A_CLK                                     10
+#define VIDEO_CC_MVS0A_CLK_SRC                                 11
+#define VIDEO_CC_MVS0A_FREERUN_CLK                             12
+#define VIDEO_CC_MVS0B_CLK                                     13
+#define VIDEO_CC_MVS0B_CLK_SRC                                 14
+#define VIDEO_CC_MVS0B_FREERUN_CLK                             15
+#define VIDEO_CC_MVS0C_CLK                                     16
+#define VIDEO_CC_MVS0C_CLK_SRC                                 17
+#define VIDEO_CC_MVS0C_FREERUN_CLK                             18
+#define VIDEO_CC_MVS0C_SHIFT_CLK                               19
+#define VIDEO_CC_PLL0                                          20
+#define VIDEO_CC_PLL1                                          21
+#define VIDEO_CC_PLL2                                          22
+#define VIDEO_CC_PLL3                                          23
+#define VIDEO_CC_SLEEP_CLK                                     24
+#define VIDEO_CC_TS_XO_CLK                                     25
+#define VIDEO_CC_XO_CLK                                                26
+#define VIDEO_CC_XO_CLK_SRC                                    27
+
+/* VIDEO_CC power domains */
+#define VIDEO_CC_MVS0A_GDSC                                    0
+#define VIDEO_CC_MVS0_GDSC                                     1
+#define VIDEO_CC_MVS0_VPP1_GDSC                                        2
+#define VIDEO_CC_MVS0_VPP0_GDSC                                        3
+#define VIDEO_CC_MVS0C_GDSC                                    4
+
+/* VIDEO_CC resets */
+#define VIDEO_CC_INTERFACE_BCR                                 0
+#define VIDEO_CC_MVS0_BCR                                      1
+#define VIDEO_CC_MVS0_VPP0_BCR                                 2
+#define VIDEO_CC_MVS0_VPP1_BCR                                 3
+#define VIDEO_CC_MVS0A_BCR                                     4
+#define VIDEO_CC_MVS0C_CLK_ARES                                        5
+#define VIDEO_CC_MVS0C_BCR                                     6
+#define VIDEO_CC_MVS0_FREERUN_CLK_ARES                         7
+#define VIDEO_CC_MVS0C_FREERUN_CLK_ARES                                8
+#define VIDEO_CC_XO_CLK_ARES                                   9
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,mss-sc7180.h b/include/dt-bindings/clock/qcom,mss-sc7180.h
deleted file mode 100644 (file)
index f15a9de..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (c) 2020, The Linux Foundation. All rights reserved.
- */
-
-#ifndef _DT_BINDINGS_CLK_QCOM_MSS_SC7180_H
-#define _DT_BINDINGS_CLK_QCOM_MSS_SC7180_H
-
-#define MSS_AXI_CRYPTO_CLK     0
-#define MSS_AXI_NAV_CLK                1
-
-#endif
diff --git a/include/dt-bindings/clock/qcom,sm8750-cambistmclkcc.h b/include/dt-bindings/clock/qcom,sm8750-cambistmclkcc.h
new file mode 100644 (file)
index 0000000..51615be
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAM_BIST_MCLK_CC_SM8750_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_BIST_MCLK_CC_SM8750_H
+
+/* CAM_BIST_MCLK_CC clocks */
+#define CAM_BIST_MCLK_CC_MCLK0_CLK                             0
+#define CAM_BIST_MCLK_CC_MCLK0_CLK_SRC                         1
+#define CAM_BIST_MCLK_CC_MCLK1_CLK                             2
+#define CAM_BIST_MCLK_CC_MCLK1_CLK_SRC                         3
+#define CAM_BIST_MCLK_CC_MCLK2_CLK                             4
+#define CAM_BIST_MCLK_CC_MCLK2_CLK_SRC                         5
+#define CAM_BIST_MCLK_CC_MCLK3_CLK                             6
+#define CAM_BIST_MCLK_CC_MCLK3_CLK_SRC                         7
+#define CAM_BIST_MCLK_CC_MCLK4_CLK                             8
+#define CAM_BIST_MCLK_CC_MCLK4_CLK_SRC                         9
+#define CAM_BIST_MCLK_CC_MCLK5_CLK                             10
+#define CAM_BIST_MCLK_CC_MCLK5_CLK_SRC                         11
+#define CAM_BIST_MCLK_CC_MCLK6_CLK                             12
+#define CAM_BIST_MCLK_CC_MCLK6_CLK_SRC                         13
+#define CAM_BIST_MCLK_CC_MCLK7_CLK                             14
+#define CAM_BIST_MCLK_CC_MCLK7_CLK_SRC                         15
+#define CAM_BIST_MCLK_CC_PLL0                                  16
+#define CAM_BIST_MCLK_CC_SLEEP_CLK                             17
+#define CAM_BIST_MCLK_CC_SLEEP_CLK_SRC                         18
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8750-camcc.h b/include/dt-bindings/clock/qcom,sm8750-camcc.h
new file mode 100644 (file)
index 0000000..dae7882
--- /dev/null
@@ -0,0 +1,151 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8750_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8750_H
+
+/* CAM_CC clocks */
+#define CAM_CC_CAM_TOP_AHB_CLK                                 0
+#define CAM_CC_CAM_TOP_FAST_AHB_CLK                            1
+#define CAM_CC_CAMNOC_DCD_XO_CLK                               2
+#define CAM_CC_CAMNOC_NRT_AXI_CLK                              3
+#define CAM_CC_CAMNOC_NRT_CRE_CLK                              4
+#define CAM_CC_CAMNOC_NRT_IPE_NPS_CLK                          5
+#define CAM_CC_CAMNOC_NRT_OFE_ANCHOR_CLK                       6
+#define CAM_CC_CAMNOC_NRT_OFE_HDR_CLK                          7
+#define CAM_CC_CAMNOC_NRT_OFE_MAIN_CLK                         8
+#define CAM_CC_CAMNOC_RT_AXI_CLK                               9
+#define CAM_CC_CAMNOC_RT_AXI_CLK_SRC                           10
+#define CAM_CC_CAMNOC_RT_IFE_LITE_CLK                          11
+#define CAM_CC_CAMNOC_RT_TFE_0_BAYER_CLK                       12
+#define CAM_CC_CAMNOC_RT_TFE_0_MAIN_CLK                                13
+#define CAM_CC_CAMNOC_RT_TFE_1_BAYER_CLK                       14
+#define CAM_CC_CAMNOC_RT_TFE_1_MAIN_CLK                                15
+#define CAM_CC_CAMNOC_RT_TFE_2_BAYER_CLK                       16
+#define CAM_CC_CAMNOC_RT_TFE_2_MAIN_CLK                                17
+#define CAM_CC_CAMNOC_XO_CLK                                   18
+#define CAM_CC_CCI_0_CLK                                       19
+#define CAM_CC_CCI_0_CLK_SRC                                   20
+#define CAM_CC_CCI_1_CLK                                       21
+#define CAM_CC_CCI_1_CLK_SRC                                   22
+#define CAM_CC_CCI_2_CLK                                       23
+#define CAM_CC_CCI_2_CLK_SRC                                   24
+#define CAM_CC_CORE_AHB_CLK                                    25
+#define CAM_CC_CPHY_RX_CLK_SRC                                 26
+#define CAM_CC_CRE_AHB_CLK                                     27
+#define CAM_CC_CRE_CLK                                         28
+#define CAM_CC_CRE_CLK_SRC                                     29
+#define CAM_CC_CSI0PHYTIMER_CLK                                        30
+#define CAM_CC_CSI0PHYTIMER_CLK_SRC                            31
+#define CAM_CC_CSI1PHYTIMER_CLK                                        32
+#define CAM_CC_CSI1PHYTIMER_CLK_SRC                            33
+#define CAM_CC_CSI2PHYTIMER_CLK                                        34
+#define CAM_CC_CSI2PHYTIMER_CLK_SRC                            35
+#define CAM_CC_CSI3PHYTIMER_CLK                                        36
+#define CAM_CC_CSI3PHYTIMER_CLK_SRC                            37
+#define CAM_CC_CSI4PHYTIMER_CLK                                        38
+#define CAM_CC_CSI4PHYTIMER_CLK_SRC                            39
+#define CAM_CC_CSI5PHYTIMER_CLK                                        40
+#define CAM_CC_CSI5PHYTIMER_CLK_SRC                            41
+#define CAM_CC_CSID_CLK                                                42
+#define CAM_CC_CSID_CLK_SRC                                    43
+#define CAM_CC_CSID_CSIPHY_RX_CLK                              44
+#define CAM_CC_CSIPHY0_CLK                                     45
+#define CAM_CC_CSIPHY1_CLK                                     46
+#define CAM_CC_CSIPHY2_CLK                                     47
+#define CAM_CC_CSIPHY3_CLK                                     48
+#define CAM_CC_CSIPHY4_CLK                                     49
+#define CAM_CC_CSIPHY5_CLK                                     50
+#define CAM_CC_DRV_AHB_CLK                                     51
+#define CAM_CC_DRV_XO_CLK                                      52
+#define CAM_CC_FAST_AHB_CLK_SRC                                        53
+#define CAM_CC_GDSC_CLK                                                54
+#define CAM_CC_ICP_0_AHB_CLK                                   55
+#define CAM_CC_ICP_0_CLK                                       56
+#define CAM_CC_ICP_0_CLK_SRC                                   57
+#define CAM_CC_ICP_1_AHB_CLK                                   58
+#define CAM_CC_ICP_1_CLK                                       59
+#define CAM_CC_ICP_1_CLK_SRC                                   60
+#define CAM_CC_IFE_LITE_AHB_CLK                                        61
+#define CAM_CC_IFE_LITE_CLK                                    62
+#define CAM_CC_IFE_LITE_CLK_SRC                                        63
+#define CAM_CC_IFE_LITE_CPHY_RX_CLK                            64
+#define CAM_CC_IFE_LITE_CSID_CLK                               65
+#define CAM_CC_IFE_LITE_CSID_CLK_SRC                           66
+#define CAM_CC_IPE_NPS_AHB_CLK                                 67
+#define CAM_CC_IPE_NPS_CLK                                     68
+#define CAM_CC_IPE_NPS_CLK_SRC                                 69
+#define CAM_CC_IPE_NPS_FAST_AHB_CLK                            70
+#define CAM_CC_IPE_PPS_CLK                                     71
+#define CAM_CC_IPE_PPS_FAST_AHB_CLK                            72
+#define CAM_CC_JPEG_0_CLK                                      73
+#define CAM_CC_JPEG_1_CLK                                      74
+#define CAM_CC_JPEG_CLK_SRC                                    75
+#define CAM_CC_OFE_AHB_CLK                                     76
+#define CAM_CC_OFE_ANCHOR_CLK                                  77
+#define CAM_CC_OFE_ANCHOR_FAST_AHB_CLK                         78
+#define CAM_CC_OFE_CLK_SRC                                     79
+#define CAM_CC_OFE_HDR_CLK                                     80
+#define CAM_CC_OFE_HDR_FAST_AHB_CLK                            81
+#define CAM_CC_OFE_MAIN_CLK                                    82
+#define CAM_CC_OFE_MAIN_FAST_AHB_CLK                           83
+#define CAM_CC_PLL0                                            84
+#define CAM_CC_PLL0_OUT_EVEN                                   85
+#define CAM_CC_PLL0_OUT_ODD                                    86
+#define CAM_CC_PLL1                                            87
+#define CAM_CC_PLL1_OUT_EVEN                                   88
+#define CAM_CC_PLL2                                            89
+#define CAM_CC_PLL2_OUT_EVEN                                   90
+#define CAM_CC_PLL3                                            91
+#define CAM_CC_PLL3_OUT_EVEN                                   92
+#define CAM_CC_PLL4                                            93
+#define CAM_CC_PLL4_OUT_EVEN                                   94
+#define CAM_CC_PLL5                                            95
+#define CAM_CC_PLL5_OUT_EVEN                                   96
+#define CAM_CC_PLL6                                            97
+#define CAM_CC_PLL6_OUT_EVEN                                   98
+#define CAM_CC_PLL6_OUT_ODD                                    99
+#define CAM_CC_QDSS_DEBUG_CLK                                  100
+#define CAM_CC_QDSS_DEBUG_CLK_SRC                              101
+#define CAM_CC_QDSS_DEBUG_XO_CLK                               102
+#define CAM_CC_SLEEP_CLK                                       103
+#define CAM_CC_SLEEP_CLK_SRC                                   104
+#define CAM_CC_SLOW_AHB_CLK_SRC                                        105
+#define CAM_CC_TFE_0_BAYER_CLK                                 106
+#define CAM_CC_TFE_0_BAYER_FAST_AHB_CLK                                107
+#define CAM_CC_TFE_0_CLK_SRC                                   108
+#define CAM_CC_TFE_0_MAIN_CLK                                  109
+#define CAM_CC_TFE_0_MAIN_FAST_AHB_CLK                         110
+#define CAM_CC_TFE_1_BAYER_CLK                                 111
+#define CAM_CC_TFE_1_BAYER_FAST_AHB_CLK                                112
+#define CAM_CC_TFE_1_CLK_SRC                                   113
+#define CAM_CC_TFE_1_MAIN_CLK                                  114
+#define CAM_CC_TFE_1_MAIN_FAST_AHB_CLK                         115
+#define CAM_CC_TFE_2_BAYER_CLK                                 116
+#define CAM_CC_TFE_2_BAYER_FAST_AHB_CLK                                117
+#define CAM_CC_TFE_2_CLK_SRC                                   118
+#define CAM_CC_TFE_2_MAIN_CLK                                  119
+#define CAM_CC_TFE_2_MAIN_FAST_AHB_CLK                         120
+#define CAM_CC_XO_CLK_SRC                                      121
+
+/* CAM_CC power domains */
+#define CAM_CC_TITAN_TOP_GDSC                                  0
+#define CAM_CC_IPE_0_GDSC                                      1
+#define CAM_CC_OFE_GDSC                                                2
+#define CAM_CC_TFE_0_GDSC                                      3
+#define CAM_CC_TFE_1_GDSC                                      4
+#define CAM_CC_TFE_2_GDSC                                      5
+
+/* CAM_CC resets */
+#define CAM_CC_DRV_BCR                                         0
+#define CAM_CC_ICP_BCR                                         1
+#define CAM_CC_IPE_0_BCR                                       2
+#define CAM_CC_OFE_BCR                                         3
+#define CAM_CC_QDSS_DEBUG_BCR                                  4
+#define CAM_CC_TFE_0_BCR                                       5
+#define CAM_CC_TFE_1_BCR                                       6
+#define CAM_CC_TFE_2_BCR                                       7
+
+#endif
index 62aa1242559270dd3bd31cd10322ee265468b8e4..d905804e64654dc8d01ab20eb1106cebf6e54b0e 100644 (file)
 #define GCC_USB4_2_PHY_RX0_CLK_SRC                             377
 #define GCC_USB4_2_PHY_RX1_CLK_SRC                             378
 #define GCC_USB4_2_PHY_SYS_CLK_SRC                             379
+#define GCC_UFS_PHY_RX_SYMBOL_0_CLK_SRC                                380
+#define GCC_UFS_PHY_RX_SYMBOL_1_CLK_SRC                                381
+#define GCC_UFS_PHY_TX_SYMBOL_0_CLK_SRC                                382
 
 /* GCC power domains */
 #define GCC_PCIE_0_TUNNEL_GDSC                                 0
index 2a805e06487b93fdf5fbff9fcb69e619f08b3c21..c4863e444458f726f27391a13f1440b9fe2d99bc 100644 (file)
@@ -31,5 +31,8 @@
 #define R9A09G077_ETCLKC               19
 #define R9A09G077_ETCLKD               20
 #define R9A09G077_ETCLKE               21
+#define R9A09G077_XSPI_CLK0            22
+#define R9A09G077_XSPI_CLK1            23
+#define R9A09G077_PCLKCAN              24
 
 #endif /* __DT_BINDINGS_CLOCK_RENESAS_R9A09G077_CPG_H__ */
index 09da0ad33be61a0acea25803943119ee7ea43ab1..0d53f1e650776d00545002a5d7bca771551c440d 100644 (file)
@@ -31,5 +31,8 @@
 #define R9A09G087_ETCLKC               19
 #define R9A09G087_ETCLKD               20
 #define R9A09G087_ETCLKE               21
+#define R9A09G087_XSPI_CLK0            22
+#define R9A09G087_XSPI_CLK1            23
+#define R9A09G087_PCLKCAN              24
 
 #endif /* __DT_BINDINGS_CLOCK_RENESAS_R9A09G087_CPG_H__ */
index 970d05167fc63673892183b4afe6e8a9cfa0980f..06dec27a8c7709e217422ab347bf6328a5c41cdc 100644 (file)
 #define CLK_MOUT_MFC_WFD_USER           2
 #define CLK_DOUT_MFC_NOCP               3
 
+/* CMU_MFD */
+#define CLK_MOUT_MFD_NOC_USER           1
+#define CLK_DOUT_MFD_NOCP               2
+
 #endif /* _DT_BINDINGS_CLOCK_EXYNOSAUTOV920_H */
diff --git a/include/dt-bindings/clock/spacemit,k3-clocks.h b/include/dt-bindings/clock/spacemit,k3-clocks.h
new file mode 100644 (file)
index 0000000..b22336f
--- /dev/null
@@ -0,0 +1,390 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2025 SpacemiT Technology Co. Ltd
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_SPACEMIT_K3_CLOCKS_H_
+#define _DT_BINDINGS_CLOCK_SPACEMIT_K3_CLOCKS_H_
+
+/* APBS (PLL) clocks */
+#define CLK_PLL1                 0
+#define CLK_PLL2                 1
+#define CLK_PLL3                 2
+#define CLK_PLL4                 3
+#define CLK_PLL5                 4
+#define CLK_PLL6                 5
+#define CLK_PLL7                 6
+#define CLK_PLL8                 7
+#define CLK_PLL1_D2              8
+#define CLK_PLL1_D3              9
+#define CLK_PLL1_D4              10
+#define CLK_PLL1_D5              11
+#define CLK_PLL1_D6              12
+#define CLK_PLL1_D7              13
+#define CLK_PLL1_D8              14
+#define CLK_PLL1_DX              15
+#define CLK_PLL1_D64             16
+#define CLK_PLL1_D10_AUD         17
+#define CLK_PLL1_D100_AUD        18
+#define CLK_PLL2_D1              19
+#define CLK_PLL2_D2              20
+#define CLK_PLL2_D3              21
+#define CLK_PLL2_D4              22
+#define CLK_PLL2_D5              23
+#define CLK_PLL2_D6              24
+#define CLK_PLL2_D7              25
+#define CLK_PLL2_D8              26
+#define CLK_PLL2_66              27
+#define CLK_PLL2_33              28
+#define CLK_PLL2_50              29
+#define CLK_PLL2_25              30
+#define CLK_PLL2_20              31
+#define CLK_PLL2_D24_125         32
+#define CLK_PLL2_D120_25         33
+#define CLK_PLL3_D1              34
+#define CLK_PLL3_D2              35
+#define CLK_PLL3_D3              36
+#define CLK_PLL3_D4              37
+#define CLK_PLL3_D5              38
+#define CLK_PLL3_D6              39
+#define CLK_PLL3_D7              40
+#define CLK_PLL3_D8              41
+#define CLK_PLL4_D1              42
+#define CLK_PLL4_D2              43
+#define CLK_PLL4_D3              44
+#define CLK_PLL4_D4              45
+#define CLK_PLL4_D5              46
+#define CLK_PLL4_D6              47
+#define CLK_PLL4_D7              48
+#define CLK_PLL4_D8              49
+#define CLK_PLL5_D1              50
+#define CLK_PLL5_D2              51
+#define CLK_PLL5_D3              52
+#define CLK_PLL5_D4              53
+#define CLK_PLL5_D5              54
+#define CLK_PLL5_D6              55
+#define CLK_PLL5_D7              56
+#define CLK_PLL5_D8              57
+#define CLK_PLL6_D1              58
+#define CLK_PLL6_D2              59
+#define CLK_PLL6_D3              60
+#define CLK_PLL6_D4              61
+#define CLK_PLL6_D5              62
+#define CLK_PLL6_D6              63
+#define CLK_PLL6_D7              64
+#define CLK_PLL6_D8              65
+#define CLK_PLL6_80              66
+#define CLK_PLL6_40              67
+#define CLK_PLL6_20              68
+#define CLK_PLL7_D1              69
+#define CLK_PLL7_D2              70
+#define CLK_PLL7_D3              71
+#define CLK_PLL7_D4              72
+#define CLK_PLL7_D5              73
+#define CLK_PLL7_D6              74
+#define CLK_PLL7_D7              75
+#define CLK_PLL7_D8              76
+#define CLK_PLL8_D1              77
+#define CLK_PLL8_D2              78
+#define CLK_PLL8_D3              79
+#define CLK_PLL8_D4              80
+#define CLK_PLL8_D5              81
+#define CLK_PLL8_D6              82
+#define CLK_PLL8_D7              83
+#define CLK_PLL8_D8              84
+
+/* MPMU clocks */
+#define CLK_MPMU_PLL1_307P2      0
+#define CLK_MPMU_PLL1_76P8       1
+#define CLK_MPMU_PLL1_61P44      2
+#define CLK_MPMU_PLL1_153P6      3
+#define CLK_MPMU_PLL1_102P4      4
+#define CLK_MPMU_PLL1_51P2       5
+#define CLK_MPMU_PLL1_51P2_AP    6
+#define CLK_MPMU_PLL1_57P6       7
+#define CLK_MPMU_PLL1_25P6       8
+#define CLK_MPMU_PLL1_12P8       9
+#define CLK_MPMU_PLL1_12P8_WDT   10
+#define CLK_MPMU_PLL1_6P4        11
+#define CLK_MPMU_PLL1_3P2        12
+#define CLK_MPMU_PLL1_1P6        13
+#define CLK_MPMU_PLL1_0P8        14
+#define CLK_MPMU_PLL1_409P6      15
+#define CLK_MPMU_PLL1_204P8      16
+#define CLK_MPMU_PLL1_491        17
+#define CLK_MPMU_PLL1_245P76     18
+#define CLK_MPMU_PLL1_614        19
+#define CLK_MPMU_PLL1_47P26      20
+#define CLK_MPMU_PLL1_31P5       21
+#define CLK_MPMU_PLL1_819        22
+#define CLK_MPMU_PLL1_1228       23
+#define CLK_MPMU_APB             24
+#define CLK_MPMU_SLOW_UART       25
+#define CLK_MPMU_SLOW_UART1      26
+#define CLK_MPMU_SLOW_UART2      27
+#define CLK_MPMU_WDT             28
+#define CLK_MPMU_WDT_BUS         29
+#define CLK_MPMU_RIPC            30
+#define CLK_MPMU_I2S_153P6       31
+#define CLK_MPMU_I2S_153P6_BASE  32
+#define CLK_MPMU_I2S_SYSCLK_SRC  33
+#define CLK_MPMU_I2S1_SYSCLK     34
+#define CLK_MPMU_I2S_BCLK        35
+#define CLK_MPMU_I2S0_SYSCLK_SEL 36
+#define CLK_MPMU_I2S2_SYSCLK_SEL 37
+#define CLK_MPMU_I2S3_SYSCLK_SEL 38
+#define CLK_MPMU_I2S4_SYSCLK_SEL 39
+#define CLK_MPMU_I2S5_SYSCLK_SEL 40
+#define CLK_MPMU_I2S0_SYSCLK_DIV 41
+#define CLK_MPMU_I2S2_SYSCLK_DIV 42
+#define CLK_MPMU_I2S3_SYSCLK_DIV 43
+#define CLK_MPMU_I2S4_SYSCLK_DIV 44
+#define CLK_MPMU_I2S5_SYSCLK_DIV 45
+#define CLK_MPMU_I2S0_SYSCLK     46
+#define CLK_MPMU_I2S2_SYSCLK     47
+#define CLK_MPMU_I2S3_SYSCLK     48
+#define CLK_MPMU_I2S4_SYSCLK     49
+#define CLK_MPMU_I2S5_SYSCLK     50
+
+/* APBC clocks */
+#define CLK_APBC_UART0           0
+#define CLK_APBC_UART2           1
+#define CLK_APBC_UART3           2
+#define CLK_APBC_UART4           3
+#define CLK_APBC_UART5           4
+#define CLK_APBC_UART6           5
+#define CLK_APBC_UART7           6
+#define CLK_APBC_UART8           7
+#define CLK_APBC_UART9           8
+#define CLK_APBC_UART10          9
+#define CLK_APBC_UART0_BUS       10
+#define CLK_APBC_UART2_BUS       11
+#define CLK_APBC_UART3_BUS       12
+#define CLK_APBC_UART4_BUS       13
+#define CLK_APBC_UART5_BUS       14
+#define CLK_APBC_UART6_BUS       15
+#define CLK_APBC_UART7_BUS       16
+#define CLK_APBC_UART8_BUS       17
+#define CLK_APBC_UART9_BUS       18
+#define CLK_APBC_UART10_BUS      19
+#define CLK_APBC_GPIO            20
+#define CLK_APBC_GPIO_BUS        21
+#define CLK_APBC_PWM0            22
+#define CLK_APBC_PWM1            23
+#define CLK_APBC_PWM2            24
+#define CLK_APBC_PWM3            25
+#define CLK_APBC_PWM4            26
+#define CLK_APBC_PWM5            27
+#define CLK_APBC_PWM6            28
+#define CLK_APBC_PWM7            29
+#define CLK_APBC_PWM8            30
+#define CLK_APBC_PWM9            31
+#define CLK_APBC_PWM10           32
+#define CLK_APBC_PWM11           33
+#define CLK_APBC_PWM12           34
+#define CLK_APBC_PWM13           35
+#define CLK_APBC_PWM14           36
+#define CLK_APBC_PWM15           37
+#define CLK_APBC_PWM16           38
+#define CLK_APBC_PWM17           39
+#define CLK_APBC_PWM18           40
+#define CLK_APBC_PWM19           41
+#define CLK_APBC_PWM0_BUS        42
+#define CLK_APBC_PWM1_BUS        43
+#define CLK_APBC_PWM2_BUS        44
+#define CLK_APBC_PWM3_BUS        45
+#define CLK_APBC_PWM4_BUS        46
+#define CLK_APBC_PWM5_BUS        47
+#define CLK_APBC_PWM6_BUS        48
+#define CLK_APBC_PWM7_BUS        49
+#define CLK_APBC_PWM8_BUS        50
+#define CLK_APBC_PWM9_BUS        51
+#define CLK_APBC_PWM10_BUS       52
+#define CLK_APBC_PWM11_BUS       53
+#define CLK_APBC_PWM12_BUS       54
+#define CLK_APBC_PWM13_BUS       55
+#define CLK_APBC_PWM14_BUS       56
+#define CLK_APBC_PWM15_BUS       57
+#define CLK_APBC_PWM16_BUS       58
+#define CLK_APBC_PWM17_BUS       59
+#define CLK_APBC_PWM18_BUS       60
+#define CLK_APBC_PWM19_BUS       61
+#define CLK_APBC_SPI0_I2S_BCLK   62
+#define CLK_APBC_SPI1_I2S_BCLK   63
+#define CLK_APBC_SPI3_I2S_BCLK   64
+#define CLK_APBC_SPI0            65
+#define CLK_APBC_SPI1            66
+#define CLK_APBC_SPI3            67
+#define CLK_APBC_SPI0_BUS        68
+#define CLK_APBC_SPI1_BUS        69
+#define CLK_APBC_SPI3_BUS        70
+#define CLK_APBC_RTC             71
+#define CLK_APBC_RTC_BUS         72
+#define CLK_APBC_TWSI0           73
+#define CLK_APBC_TWSI1           74
+#define CLK_APBC_TWSI2           75
+#define CLK_APBC_TWSI4           76
+#define CLK_APBC_TWSI5           77
+#define CLK_APBC_TWSI6           78
+#define CLK_APBC_TWSI8           79
+#define CLK_APBC_TWSI0_BUS       80
+#define CLK_APBC_TWSI1_BUS       81
+#define CLK_APBC_TWSI2_BUS       82
+#define CLK_APBC_TWSI4_BUS       83
+#define CLK_APBC_TWSI5_BUS       84
+#define CLK_APBC_TWSI6_BUS       85
+#define CLK_APBC_TWSI8_BUS       86
+#define CLK_APBC_TIMERS0         87
+#define CLK_APBC_TIMERS1         88
+#define CLK_APBC_TIMERS2         89
+#define CLK_APBC_TIMERS3         90
+#define CLK_APBC_TIMERS4         91
+#define CLK_APBC_TIMERS5         92
+#define CLK_APBC_TIMERS6         93
+#define CLK_APBC_TIMERS7         94
+#define CLK_APBC_TIMERS0_BUS     95
+#define CLK_APBC_TIMERS1_BUS     96
+#define CLK_APBC_TIMERS2_BUS     97
+#define CLK_APBC_TIMERS3_BUS     98
+#define CLK_APBC_TIMERS4_BUS     99
+#define CLK_APBC_TIMERS5_BUS     100
+#define CLK_APBC_TIMERS6_BUS     101
+#define CLK_APBC_TIMERS7_BUS     102
+#define CLK_APBC_AIB             103
+#define CLK_APBC_AIB_BUS         104
+#define CLK_APBC_ONEWIRE         105
+#define CLK_APBC_ONEWIRE_BUS     106
+#define CLK_APBC_I2S0_BCLK       107
+#define CLK_APBC_I2S1_BCLK       108
+#define CLK_APBC_I2S2_BCLK       109
+#define CLK_APBC_I2S3_BCLK       110
+#define CLK_APBC_I2S4_BCLK       111
+#define CLK_APBC_I2S5_BCLK       112
+#define CLK_APBC_I2S0            113
+#define CLK_APBC_I2S1            114
+#define CLK_APBC_I2S2            115
+#define CLK_APBC_I2S3            116
+#define CLK_APBC_I2S4            117
+#define CLK_APBC_I2S5            118
+#define CLK_APBC_I2S0_BUS        119
+#define CLK_APBC_I2S1_BUS        120
+#define CLK_APBC_I2S2_BUS        121
+#define CLK_APBC_I2S3_BUS        122
+#define CLK_APBC_I2S4_BUS        123
+#define CLK_APBC_I2S5_BUS        124
+#define CLK_APBC_DRO             125
+#define CLK_APBC_IR0             126
+#define CLK_APBC_IR1             127
+#define CLK_APBC_TSEN            128
+#define CLK_APBC_TSEN_BUS        129
+#define CLK_APBC_IPC_AP2RCPU      130
+#define CLK_APBC_IPC_AP2RCPU_BUS  131
+#define CLK_APBC_CAN0            132
+#define CLK_APBC_CAN1            133
+#define CLK_APBC_CAN2            134
+#define CLK_APBC_CAN3            135
+#define CLK_APBC_CAN4            136
+#define CLK_APBC_CAN0_BUS        137
+#define CLK_APBC_CAN1_BUS        138
+#define CLK_APBC_CAN2_BUS        139
+#define CLK_APBC_CAN3_BUS        140
+#define CLK_APBC_CAN4_BUS        141
+
+/* APMU clocks */
+#define CLK_APMU_AXICLK          0
+#define CLK_APMU_CCI550          1
+#define CLK_APMU_CPU_C0_CORE     2
+#define CLK_APMU_CPU_C1_CORE     3
+#define CLK_APMU_CPU_C2_CORE     4
+#define CLK_APMU_CPU_C3_CORE     5
+#define CLK_APMU_CCIC2PHY        6
+#define CLK_APMU_CCIC3PHY        7
+#define CLK_APMU_CSI             8
+#define CLK_APMU_ISP_BUS         9
+#define CLK_APMU_D1P_1228P8      10
+#define CLK_APMU_D1P_819P2       11
+#define CLK_APMU_D1P_614P4       12
+#define CLK_APMU_D1P_491P52      13
+#define CLK_APMU_D1P_409P6       14
+#define CLK_APMU_D1P_307P2       15
+#define CLK_APMU_D1P_245P76      16
+#define CLK_APMU_V2D             17
+#define CLK_APMU_DSI_ESC         18
+#define CLK_APMU_LCD_HCLK        19
+#define CLK_APMU_LCD_DSC         20
+#define CLK_APMU_LCD_PXCLK       21
+#define CLK_APMU_LCD_MCLK        22
+#define CLK_APMU_CCIC_4X         23
+#define CLK_APMU_CCIC1PHY        24
+#define CLK_APMU_SC2_HCLK        25
+#define CLK_APMU_SDH_AXI         26
+#define CLK_APMU_SDH0            27
+#define CLK_APMU_SDH1            28
+#define CLK_APMU_SDH2            29
+#define CLK_APMU_USB2_BUS        30
+#define CLK_APMU_USB3_PORTA_BUS  31
+#define CLK_APMU_USB3_PORTB_BUS  32
+#define CLK_APMU_USB3_PORTC_BUS  33
+#define CLK_APMU_USB3_PORTD_BUS  34
+#define CLK_APMU_QSPI            35
+#define CLK_APMU_QSPI_BUS        36
+#define CLK_APMU_DMA             37
+#define CLK_APMU_AES_WTM         38
+#define CLK_APMU_VPU             39
+#define CLK_APMU_DTC             40
+#define CLK_APMU_GPU             41
+#define CLK_APMU_MC_AHB          42
+#define CLK_APMU_TOP_DCLK        43
+#define CLK_APMU_UCIE            44
+#define CLK_APMU_UCIE_SBCLK      45
+#define CLK_APMU_RCPU            46
+#define CLK_APMU_DSI4LN2_DSI_ESC 47
+#define CLK_APMU_DSI4LN2_LCD_DSC 48
+#define CLK_APMU_DSI4LN2_LCD_PXCLK 49
+#define CLK_APMU_DSI4LN2_LCD_MCLK 50
+#define CLK_APMU_DSI4LN2_DPU_ACLK 51
+#define CLK_APMU_DPU_ACLK        52
+#define CLK_APMU_UFS_ACLK        53
+#define CLK_APMU_EDP0_PXCLK      54
+#define CLK_APMU_EDP1_PXCLK      55
+#define CLK_APMU_PCIE_PORTA_MSTE 56
+#define CLK_APMU_PCIE_PORTA_SLV  57
+#define CLK_APMU_PCIE_PORTB_MSTE 58
+#define CLK_APMU_PCIE_PORTB_SLV  59
+#define CLK_APMU_PCIE_PORTC_MSTE 60
+#define CLK_APMU_PCIE_PORTC_SLV  61
+#define CLK_APMU_PCIE_PORTD_MSTE 62
+#define CLK_APMU_PCIE_PORTD_SLV  63
+#define CLK_APMU_PCIE_PORTE_MSTE 64
+#define CLK_APMU_PCIE_PORTE_SLV  65
+#define CLK_APMU_EMAC0_BUS       66
+#define CLK_APMU_EMAC0_REF       67
+#define CLK_APMU_EMAC0_1588      68
+#define CLK_APMU_EMAC0_RGMII_TX  69
+#define CLK_APMU_EMAC1_BUS       70
+#define CLK_APMU_EMAC1_REF       71
+#define CLK_APMU_EMAC1_1588      72
+#define CLK_APMU_EMAC1_RGMII_TX  73
+#define CLK_APMU_EMAC2_BUS       74
+#define CLK_APMU_EMAC2_REF       75
+#define CLK_APMU_EMAC2_1588      76
+#define CLK_APMU_EMAC2_RGMII_TX  77
+#define CLK_APMU_ESPI_SCLK_SRC   78
+#define CLK_APMU_ESPI_SCLK       79
+#define CLK_APMU_ESPI_MCLK       80
+#define CLK_APMU_CAM_SRC1        81
+#define CLK_APMU_CAM_SRC2        82
+#define CLK_APMU_CAM_SRC3        83
+#define CLK_APMU_CAM_SRC4        84
+#define CLK_APMU_ISIM_VCLK0      85
+#define CLK_APMU_ISIM_VCLK1      86
+#define CLK_APMU_ISIM_VCLK2      87
+#define CLK_APMU_ISIM_VCLK3      88
+
+/* DCIU clocks */
+#define CLK_DCIU_HDMA            0
+#define CLK_DCIU_DMA350          1
+#define CLK_DCIU_C2_TCM_PIPE     2
+#define CLK_DCIU_C3_TCM_PIPE     3
+
+#endif /* _DT_BINDINGS_CLOCK_SPACEMIT_K3_CLOCKS_H_ */
index 09a9aa7b3ab19a8f73c40931ff9cec5b7645d83a..68b35cc61204136c4e909b72323e34bca4bf9cf2 100644 (file)
@@ -93,6 +93,7 @@
 #define CLK_SRAM3              83
 #define CLK_PLL_GMAC_100M      84
 #define CLK_UART_SCLK          85
+#define CLK_C910_BUS           86
 
 /* VO clocks */
 #define CLK_AXI4_VO_ACLK               0
diff --git a/include/dt-bindings/clock/xlnx-versal-clk.h b/include/dt-bindings/clock/xlnx-versal-clk.h
deleted file mode 100644 (file)
index 264d634..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- *  Copyright (C) 2019 Xilinx Inc.
- *
- */
-
-#ifndef _DT_BINDINGS_CLK_VERSAL_H
-#define _DT_BINDINGS_CLK_VERSAL_H
-
-#define PMC_PLL                                        1
-#define APU_PLL                                        2
-#define RPU_PLL                                        3
-#define CPM_PLL                                        4
-#define NOC_PLL                                        5
-#define PLL_MAX                                        6
-#define PMC_PRESRC                             7
-#define PMC_POSTCLK                            8
-#define PMC_PLL_OUT                            9
-#define PPLL                                   10
-#define NOC_PRESRC                             11
-#define NOC_POSTCLK                            12
-#define NOC_PLL_OUT                            13
-#define NPLL                                   14
-#define APU_PRESRC                             15
-#define APU_POSTCLK                            16
-#define APU_PLL_OUT                            17
-#define APLL                                   18
-#define RPU_PRESRC                             19
-#define RPU_POSTCLK                            20
-#define RPU_PLL_OUT                            21
-#define RPLL                                   22
-#define CPM_PRESRC                             23
-#define CPM_POSTCLK                            24
-#define CPM_PLL_OUT                            25
-#define CPLL                                   26
-#define PPLL_TO_XPD                            27
-#define NPLL_TO_XPD                            28
-#define APLL_TO_XPD                            29
-#define RPLL_TO_XPD                            30
-#define EFUSE_REF                              31
-#define SYSMON_REF                             32
-#define IRO_SUSPEND_REF                                33
-#define USB_SUSPEND                            34
-#define SWITCH_TIMEOUT                         35
-#define RCLK_PMC                               36
-#define RCLK_LPD                               37
-#define WDT                                    38
-#define TTC0                                   39
-#define TTC1                                   40
-#define TTC2                                   41
-#define TTC3                                   42
-#define GEM_TSU                                        43
-#define GEM_TSU_LB                             44
-#define MUXED_IRO_DIV2                         45
-#define MUXED_IRO_DIV4                         46
-#define PSM_REF                                        47
-#define GEM0_RX                                        48
-#define GEM0_TX                                        49
-#define GEM1_RX                                        50
-#define GEM1_TX                                        51
-#define CPM_CORE_REF                           52
-#define CPM_LSBUS_REF                          53
-#define CPM_DBG_REF                            54
-#define CPM_AUX0_REF                           55
-#define CPM_AUX1_REF                           56
-#define QSPI_REF                               57
-#define OSPI_REF                               58
-#define SDIO0_REF                              59
-#define SDIO1_REF                              60
-#define PMC_LSBUS_REF                          61
-#define I2C_REF                                        62
-#define TEST_PATTERN_REF                       63
-#define DFT_OSC_REF                            64
-#define PMC_PL0_REF                            65
-#define PMC_PL1_REF                            66
-#define PMC_PL2_REF                            67
-#define PMC_PL3_REF                            68
-#define CFU_REF                                        69
-#define SPARE_REF                              70
-#define NPI_REF                                        71
-#define HSM0_REF                               72
-#define HSM1_REF                               73
-#define SD_DLL_REF                             74
-#define FPD_TOP_SWITCH                         75
-#define FPD_LSBUS                              76
-#define ACPU                                   77
-#define DBG_TRACE                              78
-#define DBG_FPD                                        79
-#define LPD_TOP_SWITCH                         80
-#define ADMA                                   81
-#define LPD_LSBUS                              82
-#define CPU_R5                                 83
-#define CPU_R5_CORE                            84
-#define CPU_R5_OCM                             85
-#define CPU_R5_OCM2                            86
-#define IOU_SWITCH                             87
-#define GEM0_REF                               88
-#define GEM1_REF                               89
-#define GEM_TSU_REF                            90
-#define USB0_BUS_REF                           91
-#define UART0_REF                              92
-#define UART1_REF                              93
-#define SPI0_REF                               94
-#define SPI1_REF                               95
-#define CAN0_REF                               96
-#define CAN1_REF                               97
-#define I2C0_REF                               98
-#define I2C1_REF                               99
-#define DBG_LPD                                        100
-#define TIMESTAMP_REF                          101
-#define DBG_TSTMP                              102
-#define CPM_TOPSW_REF                          103
-#define USB3_DUAL_REF                          104
-#define OUTCLK_MAX                             105
-#define REF_CLK                                        106
-#define PL_ALT_REF_CLK                         107
-#define MUXED_IRO                              108
-#define PL_EXT                                 109
-#define PL_LB                                  110
-#define MIO_50_OR_51                           111
-#define MIO_24_OR_25                           112
-
-#endif
diff --git a/include/dt-bindings/clock/xlnx-zynqmp-clk.h b/include/dt-bindings/clock/xlnx-zynqmp-clk.h
deleted file mode 100644 (file)
index f0f7ddd..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Xilinx Zynq MPSoC Firmware layer
- *
- *  Copyright (C) 2014-2018 Xilinx, Inc.
- *
- */
-
-#ifndef _DT_BINDINGS_CLK_ZYNQMP_H
-#define _DT_BINDINGS_CLK_ZYNQMP_H
-
-/*
- * These bindings are deprecated, because they do not match the actual
- * concept of bindings but rather contain pure firmware values.
- * Instead include the header in the DTS source directory.
- */
-#warning "These bindings are deprecated. Instead use the header in the DTS source directory."
-
-#define IOPLL                  0
-#define RPLL                   1
-#define APLL                   2
-#define DPLL                   3
-#define VPLL                   4
-#define IOPLL_TO_FPD           5
-#define RPLL_TO_FPD            6
-#define APLL_TO_LPD            7
-#define DPLL_TO_LPD            8
-#define VPLL_TO_LPD            9
-#define ACPU                   10
-#define ACPU_HALF              11
-#define DBF_FPD                        12
-#define DBF_LPD                        13
-#define DBG_TRACE              14
-#define DBG_TSTMP              15
-#define DP_VIDEO_REF           16
-#define DP_AUDIO_REF           17
-#define DP_STC_REF             18
-#define GDMA_REF               19
-#define DPDMA_REF              20
-#define DDR_REF                        21
-#define SATA_REF               22
-#define PCIE_REF               23
-#define GPU_REF                        24
-#define GPU_PP0_REF            25
-#define GPU_PP1_REF            26
-#define TOPSW_MAIN             27
-#define TOPSW_LSBUS            28
-#define GTGREF0_REF            29
-#define LPD_SWITCH             30
-#define LPD_LSBUS              31
-#define USB0_BUS_REF           32
-#define USB1_BUS_REF           33
-#define USB3_DUAL_REF          34
-#define USB0                   35
-#define USB1                   36
-#define CPU_R5                 37
-#define CPU_R5_CORE            38
-#define CSU_SPB                        39
-#define CSU_PLL                        40
-#define PCAP                   41
-#define IOU_SWITCH             42
-#define GEM_TSU_REF            43
-#define GEM_TSU                        44
-#define GEM0_TX                        45
-#define GEM1_TX                        46
-#define GEM2_TX                        47
-#define GEM3_TX                        48
-#define GEM0_RX                        49
-#define GEM1_RX                        50
-#define GEM2_RX                        51
-#define GEM3_RX                        52
-#define QSPI_REF               53
-#define SDIO0_REF              54
-#define SDIO1_REF              55
-#define UART0_REF              56
-#define UART1_REF              57
-#define SPI0_REF               58
-#define SPI1_REF               59
-#define NAND_REF               60
-#define I2C0_REF               61
-#define I2C1_REF               62
-#define CAN0_REF               63
-#define CAN1_REF               64
-#define CAN0                   65
-#define CAN1                   66
-#define DLL_REF                        67
-#define ADMA_REF               68
-#define TIMESTAMP_REF          69
-#define AMS_REF                        70
-#define PL0_REF                        71
-#define PL1_REF                        72
-#define PL2_REF                        73
-#define PL3_REF                        74
-#define WDT                    75
-#define IOPLL_INT              76
-#define IOPLL_PRE_SRC          77
-#define IOPLL_HALF             78
-#define IOPLL_INT_MUX          79
-#define IOPLL_POST_SRC         80
-#define RPLL_INT               81
-#define RPLL_PRE_SRC           82
-#define RPLL_HALF              83
-#define RPLL_INT_MUX           84
-#define RPLL_POST_SRC          85
-#define APLL_INT               86
-#define APLL_PRE_SRC           87
-#define APLL_HALF              88
-#define APLL_INT_MUX           89
-#define APLL_POST_SRC          90
-#define DPLL_INT               91
-#define DPLL_PRE_SRC           92
-#define DPLL_HALF              93
-#define DPLL_INT_MUX           94
-#define DPLL_POST_SRC          95
-#define VPLL_INT               96
-#define VPLL_PRE_SRC           97
-#define VPLL_HALF              98
-#define VPLL_INT_MUX           99
-#define VPLL_POST_SRC          100
-#define CAN0_MIO               101
-#define CAN1_MIO               102
-#define ACPU_FULL              103
-#define GEM0_REF               104
-#define GEM1_REF               105
-#define GEM2_REF               106
-#define GEM3_REF               107
-#define GEM0_REF_UNG           108
-#define GEM1_REF_UNG           109
-#define GEM2_REF_UNG           110
-#define GEM3_REF_UNG           111
-#define LPD_WDT                        112
-
-#endif
diff --git a/include/dt-bindings/dma/jz4775-dma.h b/include/dt-bindings/dma/jz4775-dma.h
deleted file mode 100644 (file)
index 8d27e2c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * This header provides macros for JZ4775 DMA bindings.
- *
- * Copyright (c) 2020 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
- */
-
-#ifndef __DT_BINDINGS_DMA_JZ4775_DMA_H__
-#define __DT_BINDINGS_DMA_JZ4775_DMA_H__
-
-/*
- * Request type numbers for the JZ4775 DMA controller (written to the DRTn
- * register for the channel).
- */
-#define JZ4775_DMA_I2S0_TX     0x6
-#define JZ4775_DMA_I2S0_RX     0x7
-#define JZ4775_DMA_AUTO                0x8
-#define JZ4775_DMA_SADC_RX     0x9
-#define JZ4775_DMA_UART3_TX    0x0e
-#define JZ4775_DMA_UART3_RX    0x0f
-#define JZ4775_DMA_UART2_TX    0x10
-#define JZ4775_DMA_UART2_RX    0x11
-#define JZ4775_DMA_UART1_TX    0x12
-#define JZ4775_DMA_UART1_RX    0x13
-#define JZ4775_DMA_UART0_TX    0x14
-#define JZ4775_DMA_UART0_RX    0x15
-#define JZ4775_DMA_SSI0_TX     0x16
-#define JZ4775_DMA_SSI0_RX     0x17
-#define JZ4775_DMA_MSC0_TX     0x1a
-#define JZ4775_DMA_MSC0_RX     0x1b
-#define JZ4775_DMA_MSC1_TX     0x1c
-#define JZ4775_DMA_MSC1_RX     0x1d
-#define JZ4775_DMA_MSC2_TX     0x1e
-#define JZ4775_DMA_MSC2_RX     0x1f
-#define JZ4775_DMA_PCM0_TX     0x20
-#define JZ4775_DMA_PCM0_RX     0x21
-#define JZ4775_DMA_SMB0_TX     0x24
-#define JZ4775_DMA_SMB0_RX     0x25
-#define JZ4775_DMA_SMB1_TX     0x26
-#define JZ4775_DMA_SMB1_RX     0x27
-#define JZ4775_DMA_SMB2_TX     0x28
-#define JZ4775_DMA_SMB2_RX     0x29
-
-#endif /* __DT_BINDINGS_DMA_JZ4775_DMA_H__ */
diff --git a/include/dt-bindings/dma/x2000-dma.h b/include/dt-bindings/dma/x2000-dma.h
deleted file mode 100644 (file)
index db2cd48..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * This header provides macros for X2000 DMA bindings.
- *
- * Copyright (c) 2020 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
- */
-
-#ifndef __DT_BINDINGS_DMA_X2000_DMA_H__
-#define __DT_BINDINGS_DMA_X2000_DMA_H__
-
-/*
- * Request type numbers for the X2000 DMA controller (written to the DRTn
- * register for the channel).
- */
-#define X2000_DMA_AUTO         0x8
-#define X2000_DMA_UART5_TX     0xa
-#define X2000_DMA_UART5_RX     0xb
-#define X2000_DMA_UART4_TX     0xc
-#define X2000_DMA_UART4_RX     0xd
-#define X2000_DMA_UART3_TX     0xe
-#define X2000_DMA_UART3_RX     0xf
-#define X2000_DMA_UART2_TX     0x10
-#define X2000_DMA_UART2_RX     0x11
-#define X2000_DMA_UART1_TX     0x12
-#define X2000_DMA_UART1_RX     0x13
-#define X2000_DMA_UART0_TX     0x14
-#define X2000_DMA_UART0_RX     0x15
-#define X2000_DMA_SSI0_TX      0x16
-#define X2000_DMA_SSI0_RX      0x17
-#define X2000_DMA_SSI1_TX      0x18
-#define X2000_DMA_SSI1_RX      0x19
-#define X2000_DMA_I2C0_TX      0x24
-#define X2000_DMA_I2C0_RX      0x25
-#define X2000_DMA_I2C1_TX      0x26
-#define X2000_DMA_I2C1_RX      0x27
-#define X2000_DMA_I2C2_TX      0x28
-#define X2000_DMA_I2C2_RX      0x29
-#define X2000_DMA_I2C3_TX      0x2a
-#define X2000_DMA_I2C3_RX      0x2b
-#define X2000_DMA_I2C4_TX      0x2c
-#define X2000_DMA_I2C4_RX      0x2d
-#define X2000_DMA_I2C5_TX      0x2e
-#define X2000_DMA_I2C5_RX      0x2f
-#define X2000_DMA_UART6_TX     0x30
-#define X2000_DMA_UART6_RX     0x31
-#define X2000_DMA_UART7_TX     0x32
-#define X2000_DMA_UART7_RX     0x33
-#define X2000_DMA_UART8_TX     0x34
-#define X2000_DMA_UART8_RX     0x35
-#define X2000_DMA_UART9_TX     0x36
-#define X2000_DMA_UART9_RX     0x37
-#define X2000_DMA_SADC_RX      0x38
-
-#endif /* __DT_BINDINGS_DMA_X2000_DMA_H__ */
diff --git a/include/dt-bindings/gce/mt6779-gce.h b/include/dt-bindings/gce/mt6779-gce.h
deleted file mode 100644 (file)
index 0610131..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (c) 2019 MediaTek Inc.
- * Author: Dennis-YC Hsieh <dennis-yc.hsieh@mediatek.com>
- */
-
-#ifndef _DT_BINDINGS_GCE_MT6779_H
-#define _DT_BINDINGS_GCE_MT6779_H
-
-#define CMDQ_NO_TIMEOUT                0xffffffff
-
-/* GCE HW thread priority */
-#define CMDQ_THR_PRIO_LOWEST   0
-#define CMDQ_THR_PRIO_1                1
-#define CMDQ_THR_PRIO_2                2
-#define CMDQ_THR_PRIO_3                3
-#define CMDQ_THR_PRIO_4                4
-#define CMDQ_THR_PRIO_5                5
-#define CMDQ_THR_PRIO_6                6
-#define CMDQ_THR_PRIO_HIGHEST  7
-
-/* GCE subsys table */
-#define SUBSYS_1300XXXX                0
-#define SUBSYS_1400XXXX                1
-#define SUBSYS_1401XXXX                2
-#define SUBSYS_1402XXXX                3
-#define SUBSYS_1502XXXX                4
-#define SUBSYS_1880XXXX                5
-#define SUBSYS_1881XXXX                6
-#define SUBSYS_1882XXXX                7
-#define SUBSYS_1883XXXX                8
-#define SUBSYS_1884XXXX                9
-#define SUBSYS_1000XXXX                10
-#define SUBSYS_1001XXXX                11
-#define SUBSYS_1002XXXX                12
-#define SUBSYS_1003XXXX                13
-#define SUBSYS_1004XXXX                14
-#define SUBSYS_1005XXXX                15
-#define SUBSYS_1020XXXX                16
-#define SUBSYS_1028XXXX                17
-#define SUBSYS_1700XXXX                18
-#define SUBSYS_1701XXXX                19
-#define SUBSYS_1702XXXX                20
-#define SUBSYS_1703XXXX                21
-#define SUBSYS_1800XXXX                22
-#define SUBSYS_1801XXXX                23
-#define SUBSYS_1802XXXX                24
-#define SUBSYS_1804XXXX                25
-#define SUBSYS_1805XXXX                26
-#define SUBSYS_1808XXXX                27
-#define SUBSYS_180aXXXX                28
-#define SUBSYS_180bXXXX                29
-#define CMDQ_SUBSYS_OFF                32
-
-/* GCE hardware events */
-#define CMDQ_EVENT_DISP_RDMA0_SOF              0
-#define CMDQ_EVENT_DISP_RDMA1_SOF              1
-#define CMDQ_EVENT_MDP_RDMA0_SOF               2
-#define CMDQ_EVENT_MDP_RDMA1_SOF               3
-#define CMDQ_EVENT_MDP_RSZ0_SOF                        4
-#define CMDQ_EVENT_MDP_RSZ1_SOF                        5
-#define CMDQ_EVENT_MDP_TDSHP_SOF               6
-#define CMDQ_EVENT_MDP_WROT0_SOF               7
-#define CMDQ_EVENT_MDP_WROT1_SOF               8
-#define CMDQ_EVENT_DISP_OVL0_SOF               9
-#define CMDQ_EVENT_DISP_2L_OVL0_SOF            10
-#define CMDQ_EVENT_DISP_2L_OVL1_SOF            11
-#define CMDQ_EVENT_DISP_WDMA0_SOF              12
-#define CMDQ_EVENT_DISP_COLOR0_SOF             13
-#define CMDQ_EVENT_DISP_CCORR0_SOF             14
-#define CMDQ_EVENT_DISP_AAL0_SOF               15
-#define CMDQ_EVENT_DISP_GAMMA0_SOF             16
-#define CMDQ_EVENT_DISP_DITHER0_SOF            17
-#define CMDQ_EVENT_DISP_PWM0_SOF               18
-#define CMDQ_EVENT_DISP_DSI0_SOF               19
-#define CMDQ_EVENT_DISP_DPI0_SOF               20
-#define CMDQ_EVENT_DISP_POSTMASK0_SOF          21
-#define CMDQ_EVENT_DISP_RSZ0_SOF               22
-#define CMDQ_EVENT_MDP_AAL_SOF                 23
-#define CMDQ_EVENT_MDP_CCORR_SOF               24
-#define CMDQ_EVENT_DISP_DBI0_SOF               25
-#define CMDQ_EVENT_ISP_RELAY_SOF               26
-#define CMDQ_EVENT_IPU_RELAY_SOF               27
-#define CMDQ_EVENT_DISP_RDMA0_EOF              28
-#define CMDQ_EVENT_DISP_RDMA1_EOF              29
-#define CMDQ_EVENT_MDP_RDMA0_EOF               30
-#define CMDQ_EVENT_MDP_RDMA1_EOF               31
-#define CMDQ_EVENT_MDP_RSZ0_EOF                        32
-#define CMDQ_EVENT_MDP_RSZ1_EOF                        33
-#define CMDQ_EVENT_MDP_TDSHP_EOF               34
-#define CMDQ_EVENT_MDP_WROT0_W_EOF             35
-#define CMDQ_EVENT_MDP_WROT1_W_EOF             36
-#define CMDQ_EVENT_DISP_OVL0_EOF               37
-#define CMDQ_EVENT_DISP_2L_OVL0_EOF            38
-#define CMDQ_EVENT_DISP_2L_OVL1_EOF            39
-#define CMDQ_EVENT_DISP_WDMA0_EOF              40
-#define CMDQ_EVENT_DISP_COLOR0_EOF             41
-#define CMDQ_EVENT_DISP_CCORR0_EOF             42
-#define CMDQ_EVENT_DISP_AAL0_EOF               43
-#define CMDQ_EVENT_DISP_GAMMA0_EOF             44
-#define CMDQ_EVENT_DISP_DITHER0_EOF            45
-#define CMDQ_EVENT_DISP_DSI0_EOF               46
-#define CMDQ_EVENT_DISP_DPI0_EOF               47
-#define CMDQ_EVENT_DISP_RSZ0_EOF               49
-#define CMDQ_EVENT_MDP_AAL_FRAME_DONE          50
-#define CMDQ_EVENT_MDP_CCORR_FRAME_DONE                51
-#define CMDQ_EVENT_DISP_POSTMASK0_FRAME_DONE   52
-#define CMDQ_EVENT_MUTEX0_STREAM_EOF           130
-#define CMDQ_EVENT_MUTEX1_STREAM_EOF           131
-#define CMDQ_EVENT_MUTEX2_STREAM_EOF           132
-#define CMDQ_EVENT_MUTEX3_STREAM_EOF           133
-#define CMDQ_EVENT_MUTEX4_STREAM_EOF           134
-#define CMDQ_EVENT_MUTEX5_STREAM_EOF           135
-#define CMDQ_EVENT_MUTEX6_STREAM_EOF           136
-#define CMDQ_EVENT_MUTEX7_STREAM_EOF           137
-#define CMDQ_EVENT_MUTEX8_STREAM_EOF           138
-#define CMDQ_EVENT_MUTEX9_STREAM_EOF           139
-#define CMDQ_EVENT_MUTEX10_STREAM_EOF          140
-#define CMDQ_EVENT_MUTEX11_STREAM_EOF          141
-#define CMDQ_EVENT_DISP_RDMA0_UNDERRUN         142
-#define CMDQ_EVENT_DISP_RDMA1_UNDERRUN         143
-#define CMDQ_EVENT_DISP_RDMA2_UNDERRUN         144
-#define CMDQ_EVENT_DISP_RDMA3_UNDERRUN         145
-#define CMDQ_EVENT_DSI0_TE                     146
-#define CMDQ_EVENT_DSI0_IRQ_EVENT              147
-#define CMDQ_EVENT_DSI0_DONE_EVENT             148
-#define CMDQ_EVENT_DISP_POSTMASK0_RST_DONE     150
-#define CMDQ_EVENT_DISP_WDMA0_RST_DONE         151
-#define CMDQ_EVENT_MDP_WROT0_RST_DONE          153
-#define CMDQ_EVENT_MDP_RDMA0_RST_DONE          154
-#define CMDQ_EVENT_DISP_OVL0_RST_DONE          155
-#define CMDQ_EVENT_DISP_OVL0_2L_RST_DONE       156
-#define CMDQ_EVENT_DISP_OVL1_2L_RST_DONE       157
-#define CMDQ_EVENT_DIP_CQ_THREAD0_EOF          257
-#define CMDQ_EVENT_DIP_CQ_THREAD1_EOF          258
-#define CMDQ_EVENT_DIP_CQ_THREAD2_EOF          259
-#define CMDQ_EVENT_DIP_CQ_THREAD3_EOF          260
-#define CMDQ_EVENT_DIP_CQ_THREAD4_EOF          261
-#define CMDQ_EVENT_DIP_CQ_THREAD5_EOF          262
-#define CMDQ_EVENT_DIP_CQ_THREAD6_EOF          263
-#define CMDQ_EVENT_DIP_CQ_THREAD7_EOF          264
-#define CMDQ_EVENT_DIP_CQ_THREAD8_EOF          265
-#define CMDQ_EVENT_DIP_CQ_THREAD9_EOF          266
-#define CMDQ_EVENT_DIP_CQ_THREAD10_EOF         267
-#define CMDQ_EVENT_DIP_CQ_THREAD11_EOF         268
-#define CMDQ_EVENT_DIP_CQ_THREAD12_EOF         269
-#define CMDQ_EVENT_DIP_CQ_THREAD13_EOF         270
-#define CMDQ_EVENT_DIP_CQ_THREAD14_EOF         271
-#define CMDQ_EVENT_DIP_CQ_THREAD15_EOF         272
-#define CMDQ_EVENT_DIP_CQ_THREAD16_EOF         273
-#define CMDQ_EVENT_DIP_CQ_THREAD17_EOF         274
-#define CMDQ_EVENT_DIP_CQ_THREAD18_EOF         275
-#define CMDQ_EVENT_DIP_DMA_ERR_EVENT           276
-#define CMDQ_EVENT_AMD_FRAME_DONE              277
-#define CMDQ_EVENT_MFB_DONE                    278
-#define CMDQ_EVENT_WPE_A_EOF                   279
-#define CMDQ_EVENT_VENC_EOF                    289
-#define CMDQ_EVENT_VENC_CMDQ_PAUSE_DONE                290
-#define CMDQ_EVENT_JPEG_ENC_EOF                        291
-#define CMDQ_EVENT_VENC_MB_DONE                        292
-#define CMDQ_EVENT_VENC_128BYTE_CNT_DONE       293
-#define CMDQ_EVENT_ISP_FRAME_DONE_A            321
-#define CMDQ_EVENT_ISP_FRAME_DONE_B            322
-#define CMDQ_EVENT_ISP_FRAME_DONE_C            323
-#define CMDQ_EVENT_ISP_CAMSV_0_PASS1_DONE      324
-#define CMDQ_EVENT_ISP_CAMSV_0_2_PASS1_DONE    325
-#define CMDQ_EVENT_ISP_CAMSV_1_PASS1_DONE      326
-#define CMDQ_EVENT_ISP_CAMSV_2_PASS1_DONE      327
-#define CMDQ_EVENT_ISP_CAMSV_3_PASS1_DONE      328
-#define CMDQ_EVENT_ISP_TSF_DONE                        329
-#define CMDQ_EVENT_SENINF_0_FIFO_FULL          330
-#define CMDQ_EVENT_SENINF_1_FIFO_FULL          331
-#define CMDQ_EVENT_SENINF_2_FIFO_FULL          332
-#define CMDQ_EVENT_SENINF_3_FIFO_FULL          333
-#define CMDQ_EVENT_SENINF_4_FIFO_FULL          334
-#define CMDQ_EVENT_SENINF_5_FIFO_FULL          335
-#define CMDQ_EVENT_SENINF_6_FIFO_FULL          336
-#define CMDQ_EVENT_SENINF_7_FIFO_FULL          337
-#define CMDQ_EVENT_TG_OVRUN_A_INT_DLY          338
-#define CMDQ_EVENT_TG_OVRUN_B_INT_DLY          339
-#define CMDQ_EVENT_TG_OVRUN_C_INT              340
-#define CMDQ_EVENT_TG_GRABERR_A_INT_DLY                341
-#define CMDQ_EVENT_TG_GRABERR_B_INT_DLY                342
-#define CMDQ_EVENT_TG_GRABERR_C_INT            343
-#define CMDQ_EVENT_CQ_VR_SNAP_A_INT_DLY                344
-#define CMDQ_EVENT_CQ_VR_SNAP_B_INT_DLY                345
-#define CMDQ_EVENT_CQ_VR_SNAP_C_INT            346
-#define CMDQ_EVENT_DMA_R1_ERROR_A_INT_DLY      347
-#define CMDQ_EVENT_DMA_R1_ERROR_B_INT_DLY      348
-#define CMDQ_EVENT_DMA_R1_ERROR_C_INT          349
-#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_0       353
-#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_1       354
-#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_2       355
-#define CMDQ_EVENT_APU_GCE_CORE0_EVENT_3       356
-#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_0       385
-#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_1       386
-#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_2       387
-#define CMDQ_EVENT_APU_GCE_CORE1_EVENT_3       388
-#define CMDQ_EVENT_VDEC_EVENT_0                        416
-#define CMDQ_EVENT_VDEC_EVENT_1                        417
-#define CMDQ_EVENT_VDEC_EVENT_2                        418
-#define CMDQ_EVENT_VDEC_EVENT_3                        419
-#define CMDQ_EVENT_VDEC_EVENT_4                        420
-#define CMDQ_EVENT_VDEC_EVENT_5                        421
-#define CMDQ_EVENT_VDEC_EVENT_6                        422
-#define CMDQ_EVENT_VDEC_EVENT_7                        423
-#define CMDQ_EVENT_VDEC_EVENT_8                        424
-#define CMDQ_EVENT_VDEC_EVENT_9                        425
-#define CMDQ_EVENT_VDEC_EVENT_10               426
-#define CMDQ_EVENT_VDEC_EVENT_11               427
-#define CMDQ_EVENT_VDEC_EVENT_12               428
-#define CMDQ_EVENT_VDEC_EVENT_13               429
-#define CMDQ_EVENT_VDEC_EVENT_14               430
-#define CMDQ_EVENT_VDEC_EVENT_15               431
-#define CMDQ_EVENT_FDVT_DONE                   449
-#define CMDQ_EVENT_FE_DONE                     450
-#define CMDQ_EVENT_RSC_EOF                     451
-#define CMDQ_EVENT_DVS_DONE_ASYNC_SHOT         452
-#define CMDQ_EVENT_DVP_DONE_ASYNC_SHOT         453
-#define CMDQ_EVENT_DSI0_TE_INFRA               898
-
-#endif
diff --git a/include/dt-bindings/gpio/nvidia,tegra264-gpio.h b/include/dt-bindings/gpio/nvidia,tegra264-gpio.h
new file mode 100644 (file)
index 0000000..25fb66f
--- /dev/null
@@ -0,0 +1,61 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/* Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved. */
+
+/*
+ * This header provides constants for binding nvidia,tegra264-gpio*.
+ *
+ * The first cell in Tegra's GPIO specifier is the GPIO ID. The macros below
+ * provide names for this.
+ *
+ * The second cell contains standard flag values specified in gpio.h.
+ */
+
+#ifndef _DT_BINDINGS_GPIO_TEGRA264_GPIO_H
+#define _DT_BINDINGS_GPIO_TEGRA264_GPIO_H
+
+#include <dt-bindings/gpio/gpio.h>
+
+/* GPIOs implemented by main GPIO controller */
+#define TEGRA264_MAIN_GPIO_PORT_T  0
+#define TEGRA264_MAIN_GPIO_PORT_U  1
+#define TEGRA264_MAIN_GPIO_PORT_V  2
+#define TEGRA264_MAIN_GPIO_PORT_W  3
+#define TEGRA264_MAIN_GPIO_PORT_AL 4
+#define TEGRA264_MAIN_GPIO_PORT_Y  5
+#define TEGRA264_MAIN_GPIO_PORT_Z  6
+#define TEGRA264_MAIN_GPIO_PORT_X  7
+#define TEGRA264_MAIN_GPIO_PORT_H  8
+#define TEGRA264_MAIN_GPIO_PORT_J  9
+#define TEGRA264_MAIN_GPIO_PORT_K  10
+#define TEGRA264_MAIN_GPIO_PORT_L  11
+#define TEGRA264_MAIN_GPIO_PORT_M  12
+#define TEGRA264_MAIN_GPIO_PORT_P  13
+#define TEGRA264_MAIN_GPIO_PORT_Q  14
+#define TEGRA264_MAIN_GPIO_PORT_R  15
+#define TEGRA264_MAIN_GPIO_PORT_S  16
+#define TEGRA264_MAIN_GPIO_PORT_F  17
+#define TEGRA264_MAIN_GPIO_PORT_G  18
+
+#define TEGRA264_MAIN_GPIO(port, offset) \
+       ((TEGRA264_MAIN_GPIO_PORT_##port * 8) + (offset))
+
+/* GPIOs implemented by AON GPIO controller */
+#define TEGRA264_AON_GPIO_PORT_AA  0
+#define TEGRA264_AON_GPIO_PORT_BB  1
+#define TEGRA264_AON_GPIO_PORT_CC  2
+#define TEGRA264_AON_GPIO_PORT_DD  3
+#define TEGRA264_AON_GPIO_PORT_EE  4
+
+#define TEGRA264_AON_GPIO(port, offset) \
+       ((TEGRA264_AON_GPIO_PORT_##port * 8) + (offset))
+
+#define TEGRA264_UPHY_GPIO_PORT_A  0
+#define TEGRA264_UPHY_GPIO_PORT_B  1
+#define TEGRA264_UPHY_GPIO_PORT_C  2
+#define TEGRA264_UPHY_GPIO_PORT_D  3
+#define TEGRA264_UPHY_GPIO_PORT_E  4
+
+#define TEGRA264_UPHY_GPIO(port, offset) \
+       ((TEGRA264_UPHY_GPIO_PORT_##port * 8) + (offset))
+
+#endif
index 4bdb6a1659873dfc625ded30a68cb387e328f34e..3528168f7c6d7098f77721f84f2c6286314ccded 100644 (file)
 #define KEY_EPRIVACY_SCREEN_ON         0x252
 #define KEY_EPRIVACY_SCREEN_OFF                0x253
 
+#define KEY_ACTION_ON_SELECTION                0x254   /* AL Action on Selection (HUTRR119) */
+#define KEY_CONTEXTUAL_INSERT          0x255   /* AL Contextual Insertion (HUTRR119) */
+#define KEY_CONTEXTUAL_QUERY           0x256   /* AL Contextual Query (HUTRR119) */
+
 #define KEY_KBDINPUTASSIST_PREV                0x260
 #define KEY_KBDINPUTASSIST_NEXT                0x261
 #define KEY_KBDINPUTASSIST_PREVGROUP           0x262
diff --git a/include/dt-bindings/interconnect/mediatek,mt8196.h b/include/dt-bindings/interconnect/mediatek,mt8196.h
new file mode 100644 (file)
index 0000000..de700fa
--- /dev/null
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2025 Collabora Ltd.
+ *                    AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_MEDIATEK_MT8196_H
+#define __DT_BINDINGS_INTERCONNECT_MEDIATEK_MT8196_H
+
+#define SLAVE_DDR_EMI          0
+#define MASTER_MCUSYS          1
+#define MASTER_MCU_0           2
+#define MASTER_MCU_1           3
+#define MASTER_MCU_2           4
+#define MASTER_MCU_3           5
+#define MASTER_MCU_4           6
+#define MASTER_GPUSYS          7
+#define MASTER_MMSYS           8
+#define MASTER_MM_VPU          9
+#define MASTER_MM_DISP         10
+#define MASTER_MM_VDEC         11
+#define MASTER_MM_VENC         12
+#define MASTER_MM_CAM          13
+#define MASTER_MM_IMG          14
+#define MASTER_MM_MDP          15
+#define MASTER_VPUSYS          16
+#define MASTER_VPU_0           17
+#define MASTER_VPU_1           18
+#define MASTER_MDLASYS         19
+#define MASTER_MDLA_0          20
+#define MASTER_UFS             21
+#define MASTER_PCIE            22
+#define MASTER_USB             23
+#define MASTER_WIFI            24
+#define MASTER_BT              25
+#define MASTER_NETSYS          26
+#define MASTER_DBGIF           27
+#define SLAVE_HRT_DDR_EMI      28
+#define MASTER_HRT_MMSYS       29
+#define MASTER_HRT_MM_DISP     30
+#define MASTER_HRT_MM_VDEC     31
+#define MASTER_HRT_MM_VENC     32
+#define MASTER_HRT_MM_CAM      33
+#define MASTER_HRT_MM_IMG      34
+#define MASTER_HRT_MM_MDP      35
+#define MASTER_HRT_ADSP                36
+#define MASTER_HRT_DBGIF       37
+#endif
diff --git a/include/dt-bindings/memory/mt6779-larb-port.h b/include/dt-bindings/memory/mt6779-larb-port.h
deleted file mode 100644 (file)
index 3fb438a..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * Copyright (c) 2019 MediaTek Inc.
- * Author: Chao Hao <chao.hao@mediatek.com>
- */
-
-#ifndef _DT_BINDINGS_MEMORY_MT6779_LARB_PORT_H_
-#define _DT_BINDINGS_MEMORY_MT6779_LARB_PORT_H_
-
-#include <dt-bindings/memory/mtk-memory-port.h>
-
-#define M4U_LARB0_ID                    0
-#define M4U_LARB1_ID                    1
-#define M4U_LARB2_ID                    2
-#define M4U_LARB3_ID                    3
-#define M4U_LARB4_ID                    4
-#define M4U_LARB5_ID                    5
-#define M4U_LARB6_ID                    6
-#define M4U_LARB7_ID                    7
-#define M4U_LARB8_ID                    8
-#define M4U_LARB9_ID                    9
-#define M4U_LARB10_ID                   10
-#define M4U_LARB11_ID                   11
-
-/* larb0 */
-#define M4U_PORT_DISP_POSTMASK0                 MTK_M4U_ID(M4U_LARB0_ID, 0)
-#define M4U_PORT_DISP_OVL0_HDR          MTK_M4U_ID(M4U_LARB0_ID, 1)
-#define M4U_PORT_DISP_OVL1_HDR          MTK_M4U_ID(M4U_LARB0_ID, 2)
-#define M4U_PORT_DISP_OVL0              MTK_M4U_ID(M4U_LARB0_ID, 3)
-#define M4U_PORT_DISP_OVL1              MTK_M4U_ID(M4U_LARB0_ID, 4)
-#define M4U_PORT_DISP_PVRIC0            MTK_M4U_ID(M4U_LARB0_ID, 5)
-#define M4U_PORT_DISP_RDMA0             MTK_M4U_ID(M4U_LARB0_ID, 6)
-#define M4U_PORT_DISP_WDMA0             MTK_M4U_ID(M4U_LARB0_ID, 7)
-#define M4U_PORT_DISP_FAKE0             MTK_M4U_ID(M4U_LARB0_ID, 8)
-
-/* larb1 */
-#define M4U_PORT_DISP_OVL0_2L_HDR       MTK_M4U_ID(M4U_LARB1_ID, 0)
-#define M4U_PORT_DISP_OVL1_2L_HDR       MTK_M4U_ID(M4U_LARB1_ID, 1)
-#define M4U_PORT_DISP_OVL0_2L           MTK_M4U_ID(M4U_LARB1_ID, 2)
-#define M4U_PORT_DISP_OVL1_2L           MTK_M4U_ID(M4U_LARB1_ID, 3)
-#define M4U_PORT_DISP_RDMA1             MTK_M4U_ID(M4U_LARB1_ID, 4)
-#define M4U_PORT_MDP_PVRIC0             MTK_M4U_ID(M4U_LARB1_ID, 5)
-#define M4U_PORT_MDP_PVRIC1             MTK_M4U_ID(M4U_LARB1_ID, 6)
-#define M4U_PORT_MDP_RDMA0              MTK_M4U_ID(M4U_LARB1_ID, 7)
-#define M4U_PORT_MDP_RDMA1              MTK_M4U_ID(M4U_LARB1_ID, 8)
-#define M4U_PORT_MDP_WROT0_R            MTK_M4U_ID(M4U_LARB1_ID, 9)
-#define M4U_PORT_MDP_WROT0_W            MTK_M4U_ID(M4U_LARB1_ID, 10)
-#define M4U_PORT_MDP_WROT1_R            MTK_M4U_ID(M4U_LARB1_ID, 11)
-#define M4U_PORT_MDP_WROT1_W            MTK_M4U_ID(M4U_LARB1_ID, 12)
-#define M4U_PORT_DISP_FAKE1             MTK_M4U_ID(M4U_LARB1_ID, 13)
-
-/* larb2-VDEC */
-#define M4U_PORT_HW_VDEC_MC_EXT          MTK_M4U_ID(M4U_LARB2_ID, 0)
-#define M4U_PORT_HW_VDEC_UFO_EXT         MTK_M4U_ID(M4U_LARB2_ID, 1)
-#define M4U_PORT_HW_VDEC_PP_EXT          MTK_M4U_ID(M4U_LARB2_ID, 2)
-#define M4U_PORT_HW_VDEC_PRED_RD_EXT     MTK_M4U_ID(M4U_LARB2_ID, 3)
-#define M4U_PORT_HW_VDEC_PRED_WR_EXT     MTK_M4U_ID(M4U_LARB2_ID, 4)
-#define M4U_PORT_HW_VDEC_PPWRAP_EXT      MTK_M4U_ID(M4U_LARB2_ID, 5)
-#define M4U_PORT_HW_VDEC_TILE_EXT        MTK_M4U_ID(M4U_LARB2_ID, 6)
-#define M4U_PORT_HW_VDEC_VLD_EXT         MTK_M4U_ID(M4U_LARB2_ID, 7)
-#define M4U_PORT_HW_VDEC_VLD2_EXT        MTK_M4U_ID(M4U_LARB2_ID, 8)
-#define M4U_PORT_HW_VDEC_AVC_MV_EXT      MTK_M4U_ID(M4U_LARB2_ID, 9)
-#define M4U_PORT_HW_VDEC_UFO_ENC_EXT     MTK_M4U_ID(M4U_LARB2_ID, 10)
-#define M4U_PORT_HW_VDEC_RG_CTRL_DMA_EXT MTK_M4U_ID(M4U_LARB2_ID, 11)
-
-/* larb3-VENC */
-#define M4U_PORT_VENC_RCPU              MTK_M4U_ID(M4U_LARB3_ID, 0)
-#define M4U_PORT_VENC_REC               MTK_M4U_ID(M4U_LARB3_ID, 1)
-#define M4U_PORT_VENC_BSDMA             MTK_M4U_ID(M4U_LARB3_ID, 2)
-#define M4U_PORT_VENC_SV_COMV           MTK_M4U_ID(M4U_LARB3_ID, 3)
-#define M4U_PORT_VENC_RD_COMV           MTK_M4U_ID(M4U_LARB3_ID, 4)
-#define M4U_PORT_VENC_NBM_RDMA          MTK_M4U_ID(M4U_LARB3_ID, 5)
-#define M4U_PORT_VENC_NBM_RDMA_LITE     MTK_M4U_ID(M4U_LARB3_ID, 6)
-#define M4U_PORT_JPGENC_Y_RDMA          MTK_M4U_ID(M4U_LARB3_ID, 7)
-#define M4U_PORT_JPGENC_C_RDMA          MTK_M4U_ID(M4U_LARB3_ID, 8)
-#define M4U_PORT_JPGENC_Q_TABLE                 MTK_M4U_ID(M4U_LARB3_ID, 9)
-#define M4U_PORT_JPGENC_BSDMA           MTK_M4U_ID(M4U_LARB3_ID, 10)
-#define M4U_PORT_JPGDEC_WDMA            MTK_M4U_ID(M4U_LARB3_ID, 11)
-#define M4U_PORT_JPGDEC_BSDMA           MTK_M4U_ID(M4U_LARB3_ID, 12)
-#define M4U_PORT_VENC_NBM_WDMA          MTK_M4U_ID(M4U_LARB3_ID, 13)
-#define M4U_PORT_VENC_NBM_WDMA_LITE     MTK_M4U_ID(M4U_LARB3_ID, 14)
-#define M4U_PORT_VENC_CUR_LUMA          MTK_M4U_ID(M4U_LARB3_ID, 15)
-#define M4U_PORT_VENC_CUR_CHROMA        MTK_M4U_ID(M4U_LARB3_ID, 16)
-#define M4U_PORT_VENC_REF_LUMA          MTK_M4U_ID(M4U_LARB3_ID, 17)
-#define M4U_PORT_VENC_REF_CHROMA        MTK_M4U_ID(M4U_LARB3_ID, 18)
-
-/* larb4-dummy */
-
-/* larb5-IMG */
-#define M4U_PORT_IMGI_D1                MTK_M4U_ID(M4U_LARB5_ID, 0)
-#define M4U_PORT_IMGBI_D1               MTK_M4U_ID(M4U_LARB5_ID, 1)
-#define M4U_PORT_DMGI_D1                MTK_M4U_ID(M4U_LARB5_ID, 2)
-#define M4U_PORT_DEPI_D1                MTK_M4U_ID(M4U_LARB5_ID, 3)
-#define M4U_PORT_LCEI_D1                MTK_M4U_ID(M4U_LARB5_ID, 4)
-#define M4U_PORT_SMTI_D1                MTK_M4U_ID(M4U_LARB5_ID, 5)
-#define M4U_PORT_SMTO_D2                MTK_M4U_ID(M4U_LARB5_ID, 6)
-#define M4U_PORT_SMTO_D1                MTK_M4U_ID(M4U_LARB5_ID, 7)
-#define M4U_PORT_CRZO_D1                MTK_M4U_ID(M4U_LARB5_ID, 8)
-#define M4U_PORT_IMG3O_D1               MTK_M4U_ID(M4U_LARB5_ID, 9)
-#define M4U_PORT_VIPI_D1                MTK_M4U_ID(M4U_LARB5_ID, 10)
-#define M4U_PORT_WPE_RDMA1              MTK_M4U_ID(M4U_LARB5_ID, 11)
-#define M4U_PORT_WPE_RDMA0              MTK_M4U_ID(M4U_LARB5_ID, 12)
-#define M4U_PORT_WPE_WDMA               MTK_M4U_ID(M4U_LARB5_ID, 13)
-#define M4U_PORT_TIMGO_D1               MTK_M4U_ID(M4U_LARB5_ID, 14)
-#define M4U_PORT_MFB_RDMA0              MTK_M4U_ID(M4U_LARB5_ID, 15)
-#define M4U_PORT_MFB_RDMA1              MTK_M4U_ID(M4U_LARB5_ID, 16)
-#define M4U_PORT_MFB_RDMA2              MTK_M4U_ID(M4U_LARB5_ID, 17)
-#define M4U_PORT_MFB_RDMA3              MTK_M4U_ID(M4U_LARB5_ID, 18)
-#define M4U_PORT_MFB_WDMA               MTK_M4U_ID(M4U_LARB5_ID, 19)
-#define M4U_PORT_RESERVE1               MTK_M4U_ID(M4U_LARB5_ID, 20)
-#define M4U_PORT_RESERVE2               MTK_M4U_ID(M4U_LARB5_ID, 21)
-#define M4U_PORT_RESERVE3               MTK_M4U_ID(M4U_LARB5_ID, 22)
-#define M4U_PORT_RESERVE4               MTK_M4U_ID(M4U_LARB5_ID, 23)
-#define M4U_PORT_RESERVE5               MTK_M4U_ID(M4U_LARB5_ID, 24)
-#define M4U_PORT_RESERVE6               MTK_M4U_ID(M4U_LARB5_ID, 25)
-
-/* larb6-IMG-VPU */
-#define M4U_PORT_IMG_IPUO               MTK_M4U_ID(M4U_LARB6_ID, 0)
-#define M4U_PORT_IMG_IPU3O              MTK_M4U_ID(M4U_LARB6_ID, 1)
-#define M4U_PORT_IMG_IPUI               MTK_M4U_ID(M4U_LARB6_ID, 2)
-
-/* larb7-DVS */
-#define M4U_PORT_DVS_RDMA               MTK_M4U_ID(M4U_LARB7_ID, 0)
-#define M4U_PORT_DVS_WDMA               MTK_M4U_ID(M4U_LARB7_ID, 1)
-#define M4U_PORT_DVP_RDMA               MTK_M4U_ID(M4U_LARB7_ID, 2)
-#define M4U_PORT_DVP_WDMA               MTK_M4U_ID(M4U_LARB7_ID, 3)
-
-/* larb8-IPESYS */
-#define M4U_PORT_FDVT_RDA               MTK_M4U_ID(M4U_LARB8_ID, 0)
-#define M4U_PORT_FDVT_RDB               MTK_M4U_ID(M4U_LARB8_ID, 1)
-#define M4U_PORT_FDVT_WRA               MTK_M4U_ID(M4U_LARB8_ID, 2)
-#define M4U_PORT_FDVT_WRB               MTK_M4U_ID(M4U_LARB8_ID, 3)
-#define M4U_PORT_FE_RD0                         MTK_M4U_ID(M4U_LARB8_ID, 4)
-#define M4U_PORT_FE_RD1                         MTK_M4U_ID(M4U_LARB8_ID, 5)
-#define M4U_PORT_FE_WR0                         MTK_M4U_ID(M4U_LARB8_ID, 6)
-#define M4U_PORT_FE_WR1                         MTK_M4U_ID(M4U_LARB8_ID, 7)
-#define M4U_PORT_RSC_RDMA0              MTK_M4U_ID(M4U_LARB8_ID, 8)
-#define M4U_PORT_RSC_WDMA               MTK_M4U_ID(M4U_LARB8_ID, 9)
-
-/* larb9-CAM */
-#define M4U_PORT_CAM_IMGO_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 0)
-#define M4U_PORT_CAM_RRZO_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 1)
-#define M4U_PORT_CAM_LSCI_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 2)
-#define M4U_PORT_CAM_BPCI_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 3)
-#define M4U_PORT_CAM_YUVO_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 4)
-#define M4U_PORT_CAM_UFDI_R2_C          MTK_M4U_ID(M4U_LARB9_ID, 5)
-#define M4U_PORT_CAM_RAWI_R2_C          MTK_M4U_ID(M4U_LARB9_ID, 6)
-#define M4U_PORT_CAM_RAWI_R5_C          MTK_M4U_ID(M4U_LARB9_ID, 7)
-#define M4U_PORT_CAM_CAMSV_1            MTK_M4U_ID(M4U_LARB9_ID, 8)
-#define M4U_PORT_CAM_CAMSV_2            MTK_M4U_ID(M4U_LARB9_ID, 9)
-#define M4U_PORT_CAM_CAMSV_3            MTK_M4U_ID(M4U_LARB9_ID, 10)
-#define M4U_PORT_CAM_CAMSV_4            MTK_M4U_ID(M4U_LARB9_ID, 11)
-#define M4U_PORT_CAM_CAMSV_5            MTK_M4U_ID(M4U_LARB9_ID, 12)
-#define M4U_PORT_CAM_CAMSV_6            MTK_M4U_ID(M4U_LARB9_ID, 13)
-#define M4U_PORT_CAM_AAO_R1_C           MTK_M4U_ID(M4U_LARB9_ID, 14)
-#define M4U_PORT_CAM_AFO_R1_C           MTK_M4U_ID(M4U_LARB9_ID, 15)
-#define M4U_PORT_CAM_FLKO_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 16)
-#define M4U_PORT_CAM_LCESO_R1_C                 MTK_M4U_ID(M4U_LARB9_ID, 17)
-#define M4U_PORT_CAM_CRZO_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 18)
-#define M4U_PORT_CAM_LTMSO_R1_C                 MTK_M4U_ID(M4U_LARB9_ID, 19)
-#define M4U_PORT_CAM_RSSO_R1_C          MTK_M4U_ID(M4U_LARB9_ID, 20)
-#define M4U_PORT_CAM_CCUI               MTK_M4U_ID(M4U_LARB9_ID, 21)
-#define M4U_PORT_CAM_CCUO               MTK_M4U_ID(M4U_LARB9_ID, 22)
-#define M4U_PORT_CAM_FAKE               MTK_M4U_ID(M4U_LARB9_ID, 23)
-
-/* larb10-CAM_A */
-#define M4U_PORT_CAM_IMGO_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 0)
-#define M4U_PORT_CAM_RRZO_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 1)
-#define M4U_PORT_CAM_LSCI_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 2)
-#define M4U_PORT_CAM_BPCI_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 3)
-#define M4U_PORT_CAM_YUVO_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 4)
-#define M4U_PORT_CAM_UFDI_R2_A          MTK_M4U_ID(M4U_LARB10_ID, 5)
-#define M4U_PORT_CAM_RAWI_R2_A          MTK_M4U_ID(M4U_LARB10_ID, 6)
-#define M4U_PORT_CAM_RAWI_R5_A          MTK_M4U_ID(M4U_LARB10_ID, 7)
-#define M4U_PORT_CAM_IMGO_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 8)
-#define M4U_PORT_CAM_RRZO_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 9)
-#define M4U_PORT_CAM_LSCI_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 10)
-#define M4U_PORT_CAM_BPCI_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 11)
-#define M4U_PORT_CAM_YUVO_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 12)
-#define M4U_PORT_CAM_UFDI_R2_B          MTK_M4U_ID(M4U_LARB10_ID, 13)
-#define M4U_PORT_CAM_RAWI_R2_B          MTK_M4U_ID(M4U_LARB10_ID, 14)
-#define M4U_PORT_CAM_RAWI_R5_B          MTK_M4U_ID(M4U_LARB10_ID, 15)
-#define M4U_PORT_CAM_CAMSV_0            MTK_M4U_ID(M4U_LARB10_ID, 16)
-#define M4U_PORT_CAM_AAO_R1_A           MTK_M4U_ID(M4U_LARB10_ID, 17)
-#define M4U_PORT_CAM_AFO_R1_A           MTK_M4U_ID(M4U_LARB10_ID, 18)
-#define M4U_PORT_CAM_FLKO_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 19)
-#define M4U_PORT_CAM_LCESO_R1_A                 MTK_M4U_ID(M4U_LARB10_ID, 20)
-#define M4U_PORT_CAM_CRZO_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 21)
-#define M4U_PORT_CAM_AAO_R1_B           MTK_M4U_ID(M4U_LARB10_ID, 22)
-#define M4U_PORT_CAM_AFO_R1_B           MTK_M4U_ID(M4U_LARB10_ID, 23)
-#define M4U_PORT_CAM_FLKO_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 24)
-#define M4U_PORT_CAM_LCESO_R1_B                 MTK_M4U_ID(M4U_LARB10_ID, 25)
-#define M4U_PORT_CAM_CRZO_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 26)
-#define M4U_PORT_CAM_LTMSO_R1_A                 MTK_M4U_ID(M4U_LARB10_ID, 27)
-#define M4U_PORT_CAM_RSSO_R1_A          MTK_M4U_ID(M4U_LARB10_ID, 28)
-#define M4U_PORT_CAM_LTMSO_R1_B                 MTK_M4U_ID(M4U_LARB10_ID, 29)
-#define M4U_PORT_CAM_RSSO_R1_B          MTK_M4U_ID(M4U_LARB10_ID, 30)
-
-/* larb11-CAM-VPU */
-#define M4U_PORT_CAM_IPUO               MTK_M4U_ID(M4U_LARB11_ID, 0)
-#define M4U_PORT_CAM_IPU2O              MTK_M4U_ID(M4U_LARB11_ID, 1)
-#define M4U_PORT_CAM_IPU3O              MTK_M4U_ID(M4U_LARB11_ID, 2)
-#define M4U_PORT_CAM_IPUI               MTK_M4U_ID(M4U_LARB11_ID, 3)
-#define M4U_PORT_CAM_IPU2I              MTK_M4U_ID(M4U_LARB11_ID, 4)
-
-#endif
diff --git a/include/dt-bindings/mux/ti-serdes.h b/include/dt-bindings/mux/ti-serdes.h
deleted file mode 100644 (file)
index b0b1091..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * This header provides constants for SERDES MUX for TI SoCs
- */
-
-#ifndef _DT_BINDINGS_MUX_TI_SERDES
-#define _DT_BINDINGS_MUX_TI_SERDES
-
-/*
- * These bindings are deprecated, because they do not match the actual
- * concept of bindings but rather contain pure constants values used only
- * in DTS board files.
- * Instead include the header in the DTS source directory.
- */
-#warning "These bindings are deprecated. Instead, use the header in the DTS source directory."
-
-/* J721E */
-
-#define J721E_SERDES0_LANE0_QSGMII_LANE1       0x0
-#define J721E_SERDES0_LANE0_PCIE0_LANE0                0x1
-#define J721E_SERDES0_LANE0_USB3_0_SWAP                0x2
-#define J721E_SERDES0_LANE0_IP4_UNUSED         0x3
-
-#define J721E_SERDES0_LANE1_QSGMII_LANE2       0x0
-#define J721E_SERDES0_LANE1_PCIE0_LANE1                0x1
-#define J721E_SERDES0_LANE1_USB3_0             0x2
-#define J721E_SERDES0_LANE1_IP4_UNUSED         0x3
-
-#define J721E_SERDES1_LANE0_QSGMII_LANE3       0x0
-#define J721E_SERDES1_LANE0_PCIE1_LANE0                0x1
-#define J721E_SERDES1_LANE0_USB3_1_SWAP                0x2
-#define J721E_SERDES1_LANE0_SGMII_LANE0                0x3
-
-#define J721E_SERDES1_LANE1_QSGMII_LANE4       0x0
-#define J721E_SERDES1_LANE1_PCIE1_LANE1                0x1
-#define J721E_SERDES1_LANE1_USB3_1             0x2
-#define J721E_SERDES1_LANE1_SGMII_LANE1                0x3
-
-#define J721E_SERDES2_LANE0_IP1_UNUSED         0x0
-#define J721E_SERDES2_LANE0_PCIE2_LANE0                0x1
-#define J721E_SERDES2_LANE0_USB3_1_SWAP                0x2
-#define J721E_SERDES2_LANE0_SGMII_LANE0                0x3
-
-#define J721E_SERDES2_LANE1_IP1_UNUSED         0x0
-#define J721E_SERDES2_LANE1_PCIE2_LANE1                0x1
-#define J721E_SERDES2_LANE1_USB3_1             0x2
-#define J721E_SERDES2_LANE1_SGMII_LANE1                0x3
-
-#define J721E_SERDES3_LANE0_IP1_UNUSED         0x0
-#define J721E_SERDES3_LANE0_PCIE3_LANE0                0x1
-#define J721E_SERDES3_LANE0_USB3_0_SWAP                0x2
-#define J721E_SERDES3_LANE0_IP4_UNUSED         0x3
-
-#define J721E_SERDES3_LANE1_IP1_UNUSED         0x0
-#define J721E_SERDES3_LANE1_PCIE3_LANE1                0x1
-#define J721E_SERDES3_LANE1_USB3_0             0x2
-#define J721E_SERDES3_LANE1_IP4_UNUSED         0x3
-
-#define J721E_SERDES4_LANE0_EDP_LANE0          0x0
-#define J721E_SERDES4_LANE0_IP2_UNUSED         0x1
-#define J721E_SERDES4_LANE0_QSGMII_LANE5       0x2
-#define J721E_SERDES4_LANE0_IP4_UNUSED         0x3
-
-#define J721E_SERDES4_LANE1_EDP_LANE1          0x0
-#define J721E_SERDES4_LANE1_IP2_UNUSED         0x1
-#define J721E_SERDES4_LANE1_QSGMII_LANE6       0x2
-#define J721E_SERDES4_LANE1_IP4_UNUSED         0x3
-
-#define J721E_SERDES4_LANE2_EDP_LANE2          0x0
-#define J721E_SERDES4_LANE2_IP2_UNUSED         0x1
-#define J721E_SERDES4_LANE2_QSGMII_LANE7       0x2
-#define J721E_SERDES4_LANE2_IP4_UNUSED         0x3
-
-#define J721E_SERDES4_LANE3_EDP_LANE3          0x0
-#define J721E_SERDES4_LANE3_IP2_UNUSED         0x1
-#define J721E_SERDES4_LANE3_QSGMII_LANE8       0x2
-#define J721E_SERDES4_LANE3_IP4_UNUSED         0x3
-
-/* J7200 */
-
-#define J7200_SERDES0_LANE0_QSGMII_LANE3       0x0
-#define J7200_SERDES0_LANE0_PCIE1_LANE0                0x1
-#define J7200_SERDES0_LANE0_IP3_UNUSED         0x2
-#define J7200_SERDES0_LANE0_IP4_UNUSED         0x3
-
-#define J7200_SERDES0_LANE1_QSGMII_LANE4       0x0
-#define J7200_SERDES0_LANE1_PCIE1_LANE1                0x1
-#define J7200_SERDES0_LANE1_IP3_UNUSED         0x2
-#define J7200_SERDES0_LANE1_IP4_UNUSED         0x3
-
-#define J7200_SERDES0_LANE2_QSGMII_LANE1       0x0
-#define J7200_SERDES0_LANE2_PCIE1_LANE2                0x1
-#define J7200_SERDES0_LANE2_IP3_UNUSED         0x2
-#define J7200_SERDES0_LANE2_IP4_UNUSED         0x3
-
-#define J7200_SERDES0_LANE3_QSGMII_LANE2       0x0
-#define J7200_SERDES0_LANE3_PCIE1_LANE3                0x1
-#define J7200_SERDES0_LANE3_USB                        0x2
-#define J7200_SERDES0_LANE3_IP4_UNUSED         0x3
-
-/* AM64 */
-
-#define AM64_SERDES0_LANE0_PCIE0               0x0
-#define AM64_SERDES0_LANE0_USB                 0x1
-
-/* J721S2 */
-
-#define J721S2_SERDES0_LANE0_EDP_LANE0         0x0
-#define J721S2_SERDES0_LANE0_PCIE1_LANE0       0x1
-#define J721S2_SERDES0_LANE0_IP3_UNUSED                0x2
-#define J721S2_SERDES0_LANE0_IP4_UNUSED                0x3
-
-#define J721S2_SERDES0_LANE1_EDP_LANE1         0x0
-#define J721S2_SERDES0_LANE1_PCIE1_LANE1       0x1
-#define J721S2_SERDES0_LANE1_USB               0x2
-#define J721S2_SERDES0_LANE1_IP4_UNUSED                0x3
-
-#define J721S2_SERDES0_LANE2_EDP_LANE2         0x0
-#define J721S2_SERDES0_LANE2_PCIE1_LANE2       0x1
-#define J721S2_SERDES0_LANE2_IP3_UNUSED                0x2
-#define J721S2_SERDES0_LANE2_IP4_UNUSED                0x3
-
-#define J721S2_SERDES0_LANE3_EDP_LANE3         0x0
-#define J721S2_SERDES0_LANE3_PCIE1_LANE3       0x1
-#define J721S2_SERDES0_LANE3_USB               0x2
-#define J721S2_SERDES0_LANE3_IP4_UNUSED                0x3
-
-/* J784S4 */
-
-#define J784S4_SERDES0_LANE0_IP1_UNUSED                0x0
-#define J784S4_SERDES0_LANE0_PCIE1_LANE0       0x1
-#define J784S4_SERDES0_LANE0_IP3_UNUSED                0x2
-#define J784S4_SERDES0_LANE0_IP4_UNUSED                0x3
-
-#define J784S4_SERDES0_LANE1_IP1_UNUSED                0x0
-#define J784S4_SERDES0_LANE1_PCIE1_LANE1       0x1
-#define J784S4_SERDES0_LANE1_IP3_UNUSED                0x2
-#define J784S4_SERDES0_LANE1_IP4_UNUSED                0x3
-
-#define J784S4_SERDES0_LANE2_PCIE3_LANE0       0x0
-#define J784S4_SERDES0_LANE2_PCIE1_LANE2       0x1
-#define J784S4_SERDES0_LANE2_IP3_UNUSED                0x2
-#define J784S4_SERDES0_LANE2_IP4_UNUSED                0x3
-
-#define J784S4_SERDES0_LANE3_PCIE3_LANE1       0x0
-#define J784S4_SERDES0_LANE3_PCIE1_LANE3       0x1
-#define J784S4_SERDES0_LANE3_USB               0x2
-#define J784S4_SERDES0_LANE3_IP4_UNUSED                0x3
-
-#define J784S4_SERDES1_LANE0_QSGMII_LANE3      0x0
-#define J784S4_SERDES1_LANE0_PCIE0_LANE0       0x1
-#define J784S4_SERDES1_LANE0_IP3_UNUSED                0x2
-#define J784S4_SERDES1_LANE0_IP4_UNUSED                0x3
-
-#define J784S4_SERDES1_LANE1_QSGMII_LANE4      0x0
-#define J784S4_SERDES1_LANE1_PCIE0_LANE1       0x1
-#define J784S4_SERDES1_LANE1_IP3_UNUSED                0x2
-#define J784S4_SERDES1_LANE1_IP4_UNUSED                0x3
-
-#define J784S4_SERDES1_LANE2_QSGMII_LANE1      0x0
-#define J784S4_SERDES1_LANE2_PCIE0_LANE2       0x1
-#define J784S4_SERDES1_LANE2_PCIE2_LANE0       0x2
-#define J784S4_SERDES1_LANE2_IP4_UNUSED                0x3
-
-#define J784S4_SERDES1_LANE3_QSGMII_LANE2      0x0
-#define J784S4_SERDES1_LANE3_PCIE0_LANE3       0x1
-#define J784S4_SERDES1_LANE3_PCIE2_LANE1       0x2
-#define J784S4_SERDES1_LANE3_IP4_UNUSED                0x3
-
-#define J784S4_SERDES2_LANE0_QSGMII_LANE5      0x0
-#define J784S4_SERDES2_LANE0_IP2_UNUSED                0x1
-#define J784S4_SERDES2_LANE0_IP3_UNUSED                0x2
-#define J784S4_SERDES2_LANE0_IP4_UNUSED                0x3
-
-#define J784S4_SERDES2_LANE1_QSGMII_LANE6      0x0
-#define J784S4_SERDES2_LANE1_IP2_UNUSED                0x1
-#define J784S4_SERDES2_LANE1_IP3_UNUSED                0x2
-#define J784S4_SERDES2_LANE1_IP4_UNUSED                0x3
-
-#define J784S4_SERDES2_LANE2_QSGMII_LANE7      0x0
-#define J784S4_SERDES2_LANE2_QSGMII_LANE1      0x1
-#define J784S4_SERDES2_LANE2_IP3_UNUSED                0x2
-#define J784S4_SERDES2_LANE2_IP4_UNUSED                0x3
-
-#define J784S4_SERDES2_LANE3_QSGMII_LANE8      0x0
-#define J784S4_SERDES2_LANE3_QSGMII_LANE2      0x1
-#define J784S4_SERDES2_LANE3_IP3_UNUSED                0x2
-#define J784S4_SERDES2_LANE3_IP4_UNUSED                0x3
-
-#endif /* _DT_BINDINGS_MUX_TI_SERDES */
index 6b901b342348641868335857bbc1aa3f3ae3d817..979b5dfd8353d2cd8a2886897d8b7670ba21eee1 100644 (file)
 #define PHY_TYPE_DPHY          10
 #define PHY_TYPE_CPHY          11
 #define PHY_TYPE_USXGMII       12
+#define PHY_TYPE_XAUI          13
+
+#define PHY_POL_NORMAL         0
+#define PHY_POL_INVERT         1
+#define PHY_POL_AUTO           2
 
 #endif /* _DT_BINDINGS_PHY */
diff --git a/include/dt-bindings/pinctrl/mt6397-pinfunc.h b/include/dt-bindings/pinctrl/mt6397-pinfunc.h
deleted file mode 100644 (file)
index f393fbd..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __DTS_MT6397_PINFUNC_H
-#define __DTS_MT6397_PINFUNC_H
-
-#include <dt-bindings/pinctrl/mt65xx.h>
-
-#define MT6397_PIN_0_INT__FUNC_GPIO0 (MTK_PIN_NO(0) | 0)
-#define MT6397_PIN_0_INT__FUNC_INT (MTK_PIN_NO(0) | 1)
-
-#define MT6397_PIN_1_SRCVOLTEN__FUNC_GPIO1 (MTK_PIN_NO(1) | 0)
-#define MT6397_PIN_1_SRCVOLTEN__FUNC_SRCVOLTEN (MTK_PIN_NO(1) | 1)
-#define MT6397_PIN_1_SRCVOLTEN__FUNC_TEST_CK1 (MTK_PIN_NO(1) | 6)
-
-#define MT6397_PIN_2_SRCLKEN_PERI__FUNC_GPIO2 (MTK_PIN_NO(2) | 0)
-#define MT6397_PIN_2_SRCLKEN_PERI__FUNC_SRCLKEN_PERI (MTK_PIN_NO(2) | 1)
-#define MT6397_PIN_2_SRCLKEN_PERI__FUNC_TEST_CK2 (MTK_PIN_NO(2) | 6)
-
-#define MT6397_PIN_3_RTC_32K1V8__FUNC_GPIO3 (MTK_PIN_NO(3) | 0)
-#define MT6397_PIN_3_RTC_32K1V8__FUNC_RTC_32K1V8 (MTK_PIN_NO(3) | 1)
-#define MT6397_PIN_3_RTC_32K1V8__FUNC_TEST_CK3 (MTK_PIN_NO(3) | 6)
-
-#define MT6397_PIN_4_WRAP_EVENT__FUNC_GPIO4 (MTK_PIN_NO(4) | 0)
-#define MT6397_PIN_4_WRAP_EVENT__FUNC_WRAP_EVENT (MTK_PIN_NO(4) | 1)
-
-#define MT6397_PIN_5_SPI_CLK__FUNC_GPIO5 (MTK_PIN_NO(5) | 0)
-#define MT6397_PIN_5_SPI_CLK__FUNC_SPI_CLK (MTK_PIN_NO(5) | 1)
-
-#define MT6397_PIN_6_SPI_CSN__FUNC_GPIO6 (MTK_PIN_NO(6) | 0)
-#define MT6397_PIN_6_SPI_CSN__FUNC_SPI_CSN (MTK_PIN_NO(6) | 1)
-
-#define MT6397_PIN_7_SPI_MOSI__FUNC_GPIO7 (MTK_PIN_NO(7) | 0)
-#define MT6397_PIN_7_SPI_MOSI__FUNC_SPI_MOSI (MTK_PIN_NO(7) | 1)
-
-#define MT6397_PIN_8_SPI_MISO__FUNC_GPIO8 (MTK_PIN_NO(8) | 0)
-#define MT6397_PIN_8_SPI_MISO__FUNC_SPI_MISO (MTK_PIN_NO(8) | 1)
-
-#define MT6397_PIN_9_AUD_CLK_MOSI__FUNC_GPIO9 (MTK_PIN_NO(9) | 0)
-#define MT6397_PIN_9_AUD_CLK_MOSI__FUNC_AUD_CLK (MTK_PIN_NO(9) | 1)
-#define MT6397_PIN_9_AUD_CLK_MOSI__FUNC_TEST_IN0 (MTK_PIN_NO(9) | 6)
-#define MT6397_PIN_9_AUD_CLK_MOSI__FUNC_TEST_OUT0 (MTK_PIN_NO(9) | 7)
-
-#define MT6397_PIN_10_AUD_DAT_MISO__FUNC_GPIO10 (MTK_PIN_NO(10) | 0)
-#define MT6397_PIN_10_AUD_DAT_MISO__FUNC_AUD_MISO (MTK_PIN_NO(10) | 1)
-#define MT6397_PIN_10_AUD_DAT_MISO__FUNC_TEST_IN1 (MTK_PIN_NO(10) | 6)
-#define MT6397_PIN_10_AUD_DAT_MISO__FUNC_TEST_OUT1 (MTK_PIN_NO(10) | 7)
-
-#define MT6397_PIN_11_AUD_DAT_MOSI__FUNC_GPIO11 (MTK_PIN_NO(11) | 0)
-#define MT6397_PIN_11_AUD_DAT_MOSI__FUNC_AUD_MOSI (MTK_PIN_NO(11) | 1)
-#define MT6397_PIN_11_AUD_DAT_MOSI__FUNC_TEST_IN2 (MTK_PIN_NO(11) | 6)
-#define MT6397_PIN_11_AUD_DAT_MOSI__FUNC_TEST_OUT2 (MTK_PIN_NO(11) | 7)
-
-#define MT6397_PIN_12_COL0__FUNC_GPIO12 (MTK_PIN_NO(12) | 0)
-#define MT6397_PIN_12_COL0__FUNC_COL0_USBDL (MTK_PIN_NO(12) | 1)
-#define MT6397_PIN_12_COL0__FUNC_EINT10_1X (MTK_PIN_NO(12) | 2)
-#define MT6397_PIN_12_COL0__FUNC_PWM1_3X (MTK_PIN_NO(12) | 3)
-#define MT6397_PIN_12_COL0__FUNC_TEST_IN3 (MTK_PIN_NO(12) | 6)
-#define MT6397_PIN_12_COL0__FUNC_TEST_OUT3 (MTK_PIN_NO(12) | 7)
-
-#define MT6397_PIN_13_COL1__FUNC_GPIO13 (MTK_PIN_NO(13) | 0)
-#define MT6397_PIN_13_COL1__FUNC_COL1 (MTK_PIN_NO(13) | 1)
-#define MT6397_PIN_13_COL1__FUNC_EINT11_1X (MTK_PIN_NO(13) | 2)
-#define MT6397_PIN_13_COL1__FUNC_SCL0_2X (MTK_PIN_NO(13) | 3)
-#define MT6397_PIN_13_COL1__FUNC_TEST_IN4 (MTK_PIN_NO(13) | 6)
-#define MT6397_PIN_13_COL1__FUNC_TEST_OUT4 (MTK_PIN_NO(13) | 7)
-
-#define MT6397_PIN_14_COL2__FUNC_GPIO14 (MTK_PIN_NO(14) | 0)
-#define MT6397_PIN_14_COL2__FUNC_COL2 (MTK_PIN_NO(14) | 1)
-#define MT6397_PIN_14_COL2__FUNC_EINT12_1X (MTK_PIN_NO(14) | 2)
-#define MT6397_PIN_14_COL2__FUNC_SDA0_2X (MTK_PIN_NO(14) | 3)
-#define MT6397_PIN_14_COL2__FUNC_TEST_IN5 (MTK_PIN_NO(14) | 6)
-#define MT6397_PIN_14_COL2__FUNC_TEST_OUT5 (MTK_PIN_NO(14) | 7)
-
-#define MT6397_PIN_15_COL3__FUNC_GPIO15 (MTK_PIN_NO(15) | 0)
-#define MT6397_PIN_15_COL3__FUNC_COL3 (MTK_PIN_NO(15) | 1)
-#define MT6397_PIN_15_COL3__FUNC_EINT13_1X (MTK_PIN_NO(15) | 2)
-#define MT6397_PIN_15_COL3__FUNC_SCL1_2X (MTK_PIN_NO(15) | 3)
-#define MT6397_PIN_15_COL3__FUNC_TEST_IN6 (MTK_PIN_NO(15) | 6)
-#define MT6397_PIN_15_COL3__FUNC_TEST_OUT6 (MTK_PIN_NO(15) | 7)
-
-#define MT6397_PIN_16_COL4__FUNC_GPIO16 (MTK_PIN_NO(16) | 0)
-#define MT6397_PIN_16_COL4__FUNC_COL4 (MTK_PIN_NO(16) | 1)
-#define MT6397_PIN_16_COL4__FUNC_EINT14_1X (MTK_PIN_NO(16) | 2)
-#define MT6397_PIN_16_COL4__FUNC_SDA1_2X (MTK_PIN_NO(16) | 3)
-#define MT6397_PIN_16_COL4__FUNC_TEST_IN7 (MTK_PIN_NO(16) | 6)
-#define MT6397_PIN_16_COL4__FUNC_TEST_OUT7 (MTK_PIN_NO(16) | 7)
-
-#define MT6397_PIN_17_COL5__FUNC_GPIO17 (MTK_PIN_NO(17) | 0)
-#define MT6397_PIN_17_COL5__FUNC_COL5 (MTK_PIN_NO(17) | 1)
-#define MT6397_PIN_17_COL5__FUNC_EINT15_1X (MTK_PIN_NO(17) | 2)
-#define MT6397_PIN_17_COL5__FUNC_SCL2_2X (MTK_PIN_NO(17) | 3)
-#define MT6397_PIN_17_COL5__FUNC_TEST_IN8 (MTK_PIN_NO(17) | 6)
-#define MT6397_PIN_17_COL5__FUNC_TEST_OUT8 (MTK_PIN_NO(17) | 7)
-
-#define MT6397_PIN_18_COL6__FUNC_GPIO18 (MTK_PIN_NO(18) | 0)
-#define MT6397_PIN_18_COL6__FUNC_COL6 (MTK_PIN_NO(18) | 1)
-#define MT6397_PIN_18_COL6__FUNC_EINT16_1X (MTK_PIN_NO(18) | 2)
-#define MT6397_PIN_18_COL6__FUNC_SDA2_2X (MTK_PIN_NO(18) | 3)
-#define MT6397_PIN_18_COL6__FUNC_GPIO32K_0 (MTK_PIN_NO(18) | 4)
-#define MT6397_PIN_18_COL6__FUNC_GPIO26M_0 (MTK_PIN_NO(18) | 5)
-#define MT6397_PIN_18_COL6__FUNC_TEST_IN9 (MTK_PIN_NO(18) | 6)
-#define MT6397_PIN_18_COL6__FUNC_TEST_OUT9 (MTK_PIN_NO(18) | 7)
-
-#define MT6397_PIN_19_COL7__FUNC_GPIO19 (MTK_PIN_NO(19) | 0)
-#define MT6397_PIN_19_COL7__FUNC_COL7 (MTK_PIN_NO(19) | 1)
-#define MT6397_PIN_19_COL7__FUNC_EINT17_1X (MTK_PIN_NO(19) | 2)
-#define MT6397_PIN_19_COL7__FUNC_PWM2_3X (MTK_PIN_NO(19) | 3)
-#define MT6397_PIN_19_COL7__FUNC_GPIO32K_1 (MTK_PIN_NO(19) | 4)
-#define MT6397_PIN_19_COL7__FUNC_GPIO26M_1 (MTK_PIN_NO(19) | 5)
-#define MT6397_PIN_19_COL7__FUNC_TEST_IN10 (MTK_PIN_NO(19) | 6)
-#define MT6397_PIN_19_COL7__FUNC_TEST_OUT10 (MTK_PIN_NO(19) | 7)
-
-#define MT6397_PIN_20_ROW0__FUNC_GPIO20 (MTK_PIN_NO(20) | 0)
-#define MT6397_PIN_20_ROW0__FUNC_ROW0 (MTK_PIN_NO(20) | 1)
-#define MT6397_PIN_20_ROW0__FUNC_EINT18_1X (MTK_PIN_NO(20) | 2)
-#define MT6397_PIN_20_ROW0__FUNC_SCL0_3X (MTK_PIN_NO(20) | 3)
-#define MT6397_PIN_20_ROW0__FUNC_TEST_IN11 (MTK_PIN_NO(20) | 6)
-#define MT6397_PIN_20_ROW0__FUNC_TEST_OUT11 (MTK_PIN_NO(20) | 7)
-
-#define MT6397_PIN_21_ROW1__FUNC_GPIO21 (MTK_PIN_NO(21) | 0)
-#define MT6397_PIN_21_ROW1__FUNC_ROW1 (MTK_PIN_NO(21) | 1)
-#define MT6397_PIN_21_ROW1__FUNC_EINT19_1X (MTK_PIN_NO(21) | 2)
-#define MT6397_PIN_21_ROW1__FUNC_SDA0_3X (MTK_PIN_NO(21) | 3)
-#define MT6397_PIN_21_ROW1__FUNC_AUD_TSTCK (MTK_PIN_NO(21) | 4)
-#define MT6397_PIN_21_ROW1__FUNC_TEST_IN12 (MTK_PIN_NO(21) | 6)
-#define MT6397_PIN_21_ROW1__FUNC_TEST_OUT12 (MTK_PIN_NO(21) | 7)
-
-#define MT6397_PIN_22_ROW2__FUNC_GPIO22 (MTK_PIN_NO(22) | 0)
-#define MT6397_PIN_22_ROW2__FUNC_ROW2 (MTK_PIN_NO(22) | 1)
-#define MT6397_PIN_22_ROW2__FUNC_EINT20_1X (MTK_PIN_NO(22) | 2)
-#define MT6397_PIN_22_ROW2__FUNC_SCL1_3X (MTK_PIN_NO(22) | 3)
-#define MT6397_PIN_22_ROW2__FUNC_TEST_IN13 (MTK_PIN_NO(22) | 6)
-#define MT6397_PIN_22_ROW2__FUNC_TEST_OUT13 (MTK_PIN_NO(22) | 7)
-
-#define MT6397_PIN_23_ROW3__FUNC_GPIO23 (MTK_PIN_NO(23) | 0)
-#define MT6397_PIN_23_ROW3__FUNC_ROW3 (MTK_PIN_NO(23) | 1)
-#define MT6397_PIN_23_ROW3__FUNC_EINT21_1X (MTK_PIN_NO(23) | 2)
-#define MT6397_PIN_23_ROW3__FUNC_SDA1_3X (MTK_PIN_NO(23) | 3)
-#define MT6397_PIN_23_ROW3__FUNC_TEST_IN14 (MTK_PIN_NO(23) | 6)
-#define MT6397_PIN_23_ROW3__FUNC_TEST_OUT14 (MTK_PIN_NO(23) | 7)
-
-#define MT6397_PIN_24_ROW4__FUNC_GPIO24 (MTK_PIN_NO(24) | 0)
-#define MT6397_PIN_24_ROW4__FUNC_ROW4 (MTK_PIN_NO(24) | 1)
-#define MT6397_PIN_24_ROW4__FUNC_EINT22_1X (MTK_PIN_NO(24) | 2)
-#define MT6397_PIN_24_ROW4__FUNC_SCL2_3X (MTK_PIN_NO(24) | 3)
-#define MT6397_PIN_24_ROW4__FUNC_TEST_IN15 (MTK_PIN_NO(24) | 6)
-#define MT6397_PIN_24_ROW4__FUNC_TEST_OUT15 (MTK_PIN_NO(24) | 7)
-
-#define MT6397_PIN_25_ROW5__FUNC_GPIO25 (MTK_PIN_NO(25) | 0)
-#define MT6397_PIN_25_ROW5__FUNC_ROW5 (MTK_PIN_NO(25) | 1)
-#define MT6397_PIN_25_ROW5__FUNC_EINT23_1X (MTK_PIN_NO(25) | 2)
-#define MT6397_PIN_25_ROW5__FUNC_SDA2_3X (MTK_PIN_NO(25) | 3)
-#define MT6397_PIN_25_ROW5__FUNC_TEST_IN16 (MTK_PIN_NO(25) | 6)
-#define MT6397_PIN_25_ROW5__FUNC_TEST_OUT16 (MTK_PIN_NO(25) | 7)
-
-#define MT6397_PIN_26_ROW6__FUNC_GPIO26 (MTK_PIN_NO(26) | 0)
-#define MT6397_PIN_26_ROW6__FUNC_ROW6 (MTK_PIN_NO(26) | 1)
-#define MT6397_PIN_26_ROW6__FUNC_EINT24_1X (MTK_PIN_NO(26) | 2)
-#define MT6397_PIN_26_ROW6__FUNC_PWM3_3X (MTK_PIN_NO(26) | 3)
-#define MT6397_PIN_26_ROW6__FUNC_GPIO32K_2 (MTK_PIN_NO(26) | 4)
-#define MT6397_PIN_26_ROW6__FUNC_GPIO26M_2 (MTK_PIN_NO(26) | 5)
-#define MT6397_PIN_26_ROW6__FUNC_TEST_IN17 (MTK_PIN_NO(26) | 6)
-#define MT6397_PIN_26_ROW6__FUNC_TEST_OUT17 (MTK_PIN_NO(26) | 7)
-
-#define MT6397_PIN_27_ROW7__FUNC_GPIO27 (MTK_PIN_NO(27) | 0)
-#define MT6397_PIN_27_ROW7__FUNC_ROW7 (MTK_PIN_NO(27) | 1)
-#define MT6397_PIN_27_ROW7__FUNC_EINT3_1X (MTK_PIN_NO(27) | 2)
-#define MT6397_PIN_27_ROW7__FUNC_CBUS (MTK_PIN_NO(27) | 3)
-#define MT6397_PIN_27_ROW7__FUNC_GPIO32K_3 (MTK_PIN_NO(27) | 4)
-#define MT6397_PIN_27_ROW7__FUNC_GPIO26M_3 (MTK_PIN_NO(27) | 5)
-#define MT6397_PIN_27_ROW7__FUNC_TEST_IN18 (MTK_PIN_NO(27) | 6)
-#define MT6397_PIN_27_ROW7__FUNC_TEST_OUT18 (MTK_PIN_NO(27) | 7)
-
-#define MT6397_PIN_28_PWM1__FUNC_GPIO28 (MTK_PIN_NO(28) | 0)
-#define MT6397_PIN_28_PWM1__FUNC_PWM1 (MTK_PIN_NO(28) | 1)
-#define MT6397_PIN_28_PWM1__FUNC_EINT4_1X (MTK_PIN_NO(28) | 2)
-#define MT6397_PIN_28_PWM1__FUNC_GPIO32K_4 (MTK_PIN_NO(28) | 4)
-#define MT6397_PIN_28_PWM1__FUNC_GPIO26M_4 (MTK_PIN_NO(28) | 5)
-#define MT6397_PIN_28_PWM1__FUNC_TEST_IN19 (MTK_PIN_NO(28) | 6)
-#define MT6397_PIN_28_PWM1__FUNC_TEST_OUT19 (MTK_PIN_NO(28) | 7)
-
-#define MT6397_PIN_29_PWM2__FUNC_GPIO29 (MTK_PIN_NO(29) | 0)
-#define MT6397_PIN_29_PWM2__FUNC_PWM2 (MTK_PIN_NO(29) | 1)
-#define MT6397_PIN_29_PWM2__FUNC_EINT5_1X (MTK_PIN_NO(29) | 2)
-#define MT6397_PIN_29_PWM2__FUNC_GPIO32K_5 (MTK_PIN_NO(29) | 4)
-#define MT6397_PIN_29_PWM2__FUNC_GPIO26M_5 (MTK_PIN_NO(29) | 5)
-#define MT6397_PIN_29_PWM2__FUNC_TEST_IN20 (MTK_PIN_NO(29) | 6)
-#define MT6397_PIN_29_PWM2__FUNC_TEST_OUT20 (MTK_PIN_NO(29) | 7)
-
-#define MT6397_PIN_30_PWM3__FUNC_GPIO30 (MTK_PIN_NO(30) | 0)
-#define MT6397_PIN_30_PWM3__FUNC_PWM3 (MTK_PIN_NO(30) | 1)
-#define MT6397_PIN_30_PWM3__FUNC_EINT6_1X (MTK_PIN_NO(30) | 2)
-#define MT6397_PIN_30_PWM3__FUNC_COL0 (MTK_PIN_NO(30) | 3)
-#define MT6397_PIN_30_PWM3__FUNC_GPIO32K_6 (MTK_PIN_NO(30) | 4)
-#define MT6397_PIN_30_PWM3__FUNC_GPIO26M_6 (MTK_PIN_NO(30) | 5)
-#define MT6397_PIN_30_PWM3__FUNC_TEST_IN21 (MTK_PIN_NO(30) | 6)
-#define MT6397_PIN_30_PWM3__FUNC_TEST_OUT21 (MTK_PIN_NO(30) | 7)
-
-#define MT6397_PIN_31_SCL0__FUNC_GPIO31 (MTK_PIN_NO(31) | 0)
-#define MT6397_PIN_31_SCL0__FUNC_SCL0 (MTK_PIN_NO(31) | 1)
-#define MT6397_PIN_31_SCL0__FUNC_EINT7_1X (MTK_PIN_NO(31) | 2)
-#define MT6397_PIN_31_SCL0__FUNC_PWM1_2X (MTK_PIN_NO(31) | 3)
-#define MT6397_PIN_31_SCL0__FUNC_TEST_IN22 (MTK_PIN_NO(31) | 6)
-#define MT6397_PIN_31_SCL0__FUNC_TEST_OUT22 (MTK_PIN_NO(31) | 7)
-
-#define MT6397_PIN_32_SDA0__FUNC_GPIO32 (MTK_PIN_NO(32) | 0)
-#define MT6397_PIN_32_SDA0__FUNC_SDA0 (MTK_PIN_NO(32) | 1)
-#define MT6397_PIN_32_SDA0__FUNC_EINT8_1X (MTK_PIN_NO(32) | 2)
-#define MT6397_PIN_32_SDA0__FUNC_TEST_IN23 (MTK_PIN_NO(32) | 6)
-#define MT6397_PIN_32_SDA0__FUNC_TEST_OUT23 (MTK_PIN_NO(32) | 7)
-
-#define MT6397_PIN_33_SCL1__FUNC_GPIO33 (MTK_PIN_NO(33) | 0)
-#define MT6397_PIN_33_SCL1__FUNC_SCL1 (MTK_PIN_NO(33) | 1)
-#define MT6397_PIN_33_SCL1__FUNC_EINT9_1X (MTK_PIN_NO(33) | 2)
-#define MT6397_PIN_33_SCL1__FUNC_PWM2_2X (MTK_PIN_NO(33) | 3)
-#define MT6397_PIN_33_SCL1__FUNC_TEST_IN24 (MTK_PIN_NO(33) | 6)
-#define MT6397_PIN_33_SCL1__FUNC_TEST_OUT24 (MTK_PIN_NO(33) | 7)
-
-#define MT6397_PIN_34_SDA1__FUNC_GPIO34 (MTK_PIN_NO(34) | 0)
-#define MT6397_PIN_34_SDA1__FUNC_SDA1 (MTK_PIN_NO(34) | 1)
-#define MT6397_PIN_34_SDA1__FUNC_EINT0_1X (MTK_PIN_NO(34) | 2)
-#define MT6397_PIN_34_SDA1__FUNC_TEST_IN25 (MTK_PIN_NO(34) | 6)
-#define MT6397_PIN_34_SDA1__FUNC_TEST_OUT25 (MTK_PIN_NO(34) | 7)
-
-#define MT6397_PIN_35_SCL2__FUNC_GPIO35 (MTK_PIN_NO(35) | 0)
-#define MT6397_PIN_35_SCL2__FUNC_SCL2 (MTK_PIN_NO(35) | 1)
-#define MT6397_PIN_35_SCL2__FUNC_EINT1_1X (MTK_PIN_NO(35) | 2)
-#define MT6397_PIN_35_SCL2__FUNC_PWM3_2X (MTK_PIN_NO(35) | 3)
-#define MT6397_PIN_35_SCL2__FUNC_TEST_IN26 (MTK_PIN_NO(35) | 6)
-#define MT6397_PIN_35_SCL2__FUNC_TEST_OUT26 (MTK_PIN_NO(35) | 7)
-
-#define MT6397_PIN_36_SDA2__FUNC_GPIO36 (MTK_PIN_NO(36) | 0)
-#define MT6397_PIN_36_SDA2__FUNC_SDA2 (MTK_PIN_NO(36) | 1)
-#define MT6397_PIN_36_SDA2__FUNC_EINT2_1X (MTK_PIN_NO(36) | 2)
-#define MT6397_PIN_36_SDA2__FUNC_TEST_IN27 (MTK_PIN_NO(36) | 6)
-#define MT6397_PIN_36_SDA2__FUNC_TEST_OUT27 (MTK_PIN_NO(36) | 7)
-
-#define MT6397_PIN_37_HDMISD__FUNC_GPIO37 (MTK_PIN_NO(37) | 0)
-#define MT6397_PIN_37_HDMISD__FUNC_HDMISD (MTK_PIN_NO(37) | 1)
-#define MT6397_PIN_37_HDMISD__FUNC_TEST_IN28 (MTK_PIN_NO(37) | 6)
-#define MT6397_PIN_37_HDMISD__FUNC_TEST_OUT28 (MTK_PIN_NO(37) | 7)
-
-#define MT6397_PIN_38_HDMISCK__FUNC_GPIO38 (MTK_PIN_NO(38) | 0)
-#define MT6397_PIN_38_HDMISCK__FUNC_HDMISCK (MTK_PIN_NO(38) | 1)
-#define MT6397_PIN_38_HDMISCK__FUNC_TEST_IN29 (MTK_PIN_NO(38) | 6)
-#define MT6397_PIN_38_HDMISCK__FUNC_TEST_OUT29 (MTK_PIN_NO(38) | 7)
-
-#define MT6397_PIN_39_HTPLG__FUNC_GPIO39 (MTK_PIN_NO(39) | 0)
-#define MT6397_PIN_39_HTPLG__FUNC_HTPLG (MTK_PIN_NO(39) | 1)
-#define MT6397_PIN_39_HTPLG__FUNC_TEST_IN30 (MTK_PIN_NO(39) | 6)
-#define MT6397_PIN_39_HTPLG__FUNC_TEST_OUT30 (MTK_PIN_NO(39) | 7)
-
-#define MT6397_PIN_40_CEC__FUNC_GPIO40 (MTK_PIN_NO(40) | 0)
-#define MT6397_PIN_40_CEC__FUNC_CEC (MTK_PIN_NO(40) | 1)
-#define MT6397_PIN_40_CEC__FUNC_TEST_IN31 (MTK_PIN_NO(40) | 6)
-#define MT6397_PIN_40_CEC__FUNC_TEST_OUT31 (MTK_PIN_NO(40) | 7)
-
-#endif /* __DTS_MT6397_PINFUNC_H */
diff --git a/include/dt-bindings/regulator/samsung,s2mpg10-regulator.h b/include/dt-bindings/regulator/samsung,s2mpg10-regulator.h
new file mode 100644 (file)
index 0000000..d9c16bb
--- /dev/null
@@ -0,0 +1,53 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright 2021 Google LLC
+ * Copyright 2025 Linaro Ltd.
+ *
+ * Device Tree binding constants for the Samsung S2MPG1x PMIC regulators
+ */
+
+#ifndef _DT_BINDINGS_REGULATOR_SAMSUNG_S2MPG10_H
+#define _DT_BINDINGS_REGULATOR_SAMSUNG_S2MPG10_H
+
+/*
+ * Several regulators may be controlled via external signals instead of via
+ * software. These constants describe the possible signals for such regulators
+ * and generally correspond to the respecitve on-chip pins.
+ *
+ * S2MPG10 regulators supporting these are:
+ * - buck1m .. buck7m buck10m
+ * - ldo3m .. ldo19m
+ *
+ * ldo20m supports external control, but using a different set of control
+ * signals.
+ *
+ * S2MPG11 regulators supporting these are:
+ * - buck1s .. buck3s buck5s buck8s buck9s bucka buckd
+ * - ldo1s ldo2s ldo8s ldo13s
+ */
+#define S2MPG10_EXTCTRL_PWREN       0 /* PWREN pin */
+#define S2MPG10_EXTCTRL_PWREN_MIF   1 /* PWREN_MIF pin */
+#define S2MPG10_EXTCTRL_AP_ACTIVE_N 2 /* ~AP_ACTIVE_N pin */
+#define S2MPG10_EXTCTRL_CPUCL1_EN   3 /* CPUCL1_EN pin */
+#define S2MPG10_EXTCTRL_CPUCL1_EN2  4 /* CPUCL1_EN & PWREN pins */
+#define S2MPG10_EXTCTRL_CPUCL2_EN   5 /* CPUCL2_EN pin */
+#define S2MPG10_EXTCTRL_CPUCL2_EN2  6 /* CPUCL2_E2 & PWREN pins */
+#define S2MPG10_EXTCTRL_TPU_EN      7 /* TPU_EN pin */
+#define S2MPG10_EXTCTRL_TPU_EN2     8 /* TPU_EN & ~AP_ACTIVE_N pins */
+#define S2MPG10_EXTCTRL_TCXO_ON     9 /* TCXO_ON pin */
+#define S2MPG10_EXTCTRL_TCXO_ON2    10 /* TCXO_ON & ~AP_ACTIVE_N pins */
+
+#define S2MPG10_EXTCTRL_LDO20M_EN2  11 /* VLDO20M_EN & LDO20M_SFR */
+#define S2MPG10_EXTCTRL_LDO20M_EN   12 /* VLDO20M_EN pin */
+
+#define S2MPG11_EXTCTRL_PWREN       0 /* PWREN pin */
+#define S2MPG11_EXTCTRL_PWREN_MIF   1 /* PWREN_MIF pin */
+#define S2MPG11_EXTCTRL_AP_ACTIVE_N 2 /* ~AP_ACTIVE_N pin */
+#define S2MPG11_EXTCTRL_G3D_EN      3 /* G3D_EN pin */
+#define S2MPG11_EXTCTRL_G3D_EN2     4 /* G3D_EN & ~AP_ACTIVE_N pins */
+#define S2MPG11_EXTCTRL_AOC_VDD     5 /* AOC_VDD pin */
+#define S2MPG11_EXTCTRL_AOC_RET     6 /* AOC_RET pin */
+#define S2MPG11_EXTCTRL_UFS_EN      7 /* UFS_EN pin */
+#define S2MPG11_EXTCTRL_LDO13S_EN   8 /* VLDO13S_EN pin */
+
+#endif /* _DT_BINDINGS_REGULATOR_SAMSUNG_S2MPG10_H */
diff --git a/include/dt-bindings/reset/bcm6318-reset.h b/include/dt-bindings/reset/bcm6318-reset.h
deleted file mode 100644 (file)
index f882662..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-
-#ifndef __DT_BINDINGS_RESET_BCM6318_H
-#define __DT_BINDINGS_RESET_BCM6318_H
-
-#define BCM6318_RST_SPI                0
-#define BCM6318_RST_EPHY       1
-#define BCM6318_RST_SAR                2
-#define BCM6318_RST_ENETSW     3
-#define BCM6318_RST_USBD       4
-#define BCM6318_RST_USBH       5
-#define BCM6318_RST_PCIE_CORE  6
-#define BCM6318_RST_PCIE       7
-#define BCM6318_RST_PCIE_EXT   8
-#define BCM6318_RST_PCIE_HARD  9
-#define BCM6318_RST_ADSL       10
-#define BCM6318_RST_PHYMIPS    11
-#define BCM6318_RST_HOSTMIPS   12
-
-#endif /* __DT_BINDINGS_RESET_BCM6318_H */
diff --git a/include/dt-bindings/reset/imx8ulp-pcc-reset.h b/include/dt-bindings/reset/imx8ulp-pcc-reset.h
deleted file mode 100644 (file)
index e99a473..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright 2021 NXP
- */
-
-#ifndef DT_BINDING_PCC_RESET_IMX8ULP_H
-#define DT_BINDING_PCC_RESET_IMX8ULP_H
-
-/* PCC3 */
-#define PCC3_WDOG3_SWRST       0
-#define PCC3_WDOG4_SWRST       1
-#define PCC3_LPIT1_SWRST       2
-#define PCC3_TPM4_SWRST                3
-#define PCC3_TPM5_SWRST                4
-#define PCC3_FLEXIO1_SWRST     5
-#define PCC3_I3C2_SWRST                6
-#define PCC3_LPI2C4_SWRST      7
-#define PCC3_LPI2C5_SWRST      8
-#define PCC3_LPUART4_SWRST     9
-#define PCC3_LPUART5_SWRST     10
-#define PCC3_LPSPI4_SWRST      11
-#define PCC3_LPSPI5_SWRST      12
-
-/* PCC4 */
-#define PCC4_FLEXSPI2_SWRST    0
-#define PCC4_TPM6_SWRST                1
-#define PCC4_TPM7_SWRST                2
-#define PCC4_LPI2C6_SWRST      3
-#define PCC4_LPI2C7_SWRST      4
-#define PCC4_LPUART6_SWRST     5
-#define PCC4_LPUART7_SWRST     6
-#define PCC4_SAI4_SWRST                7
-#define PCC4_SAI5_SWRST                8
-#define PCC4_USDHC0_SWRST      9
-#define PCC4_USDHC1_SWRST      10
-#define PCC4_USDHC2_SWRST      11
-#define PCC4_USB0_SWRST                12
-#define PCC4_USB0_PHY_SWRST    13
-#define PCC4_USB1_SWRST                14
-#define PCC4_USB1_PHY_SWRST    15
-#define PCC4_ENET_SWRST                16
-
-/* PCC5 */
-#define PCC5_TPM8_SWRST                0
-#define PCC5_SAI6_SWRST                1
-#define PCC5_SAI7_SWRST                2
-#define PCC5_SPDIF_SWRST       3
-#define PCC5_ISI_SWRST         4
-#define PCC5_CSI_REGS_SWRST    5
-#define PCC5_CSI_SWRST         6
-#define PCC5_DSI_SWRST         7
-#define PCC5_WDOG5_SWRST       8
-#define PCC5_EPDC_SWRST                9
-#define PCC5_PXP_SWRST         10
-#define PCC5_GPU2D_SWRST       11
-#define PCC5_GPU3D_SWRST       12
-#define PCC5_DC_NANO_SWRST     13
-
-#endif /*DT_BINDING_RESET_IMX8ULP_H */
diff --git a/include/dt-bindings/reset/oxsemi,ox810se.h b/include/dt-bindings/reset/oxsemi,ox810se.h
deleted file mode 100644 (file)
index e943187..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
- */
-
-#ifndef DT_RESET_OXSEMI_OX810SE_H
-#define DT_RESET_OXSEMI_OX810SE_H
-
-#define RESET_ARM      0
-#define RESET_COPRO    1
-/* Reserved            2 */
-/* Reserved            3 */
-#define RESET_USBHS    4
-#define RESET_USBHSPHY 5
-#define RESET_MAC      6
-#define RESET_PCI      7
-#define RESET_DMA      8
-#define RESET_DPE      9
-#define RESET_DDR      10
-#define RESET_SATA     11
-#define RESET_SATA_LINK        12
-#define RESET_SATA_PHY 13
- /* Reserved           14 */
-#define RESET_NAND     15
-#define RESET_GPIO     16
-#define RESET_UART1    17
-#define RESET_UART2    18
-#define RESET_MISC     19
-#define RESET_I2S      20
-#define RESET_AHB_MON  21
-#define RESET_UART3    22
-#define RESET_UART4    23
-#define RESET_SGDMA    24
-/* Reserved            25 */
-/* Reserved            26 */
-/* Reserved            27 */
-/* Reserved            28 */
-/* Reserved            29 */
-/* Reserved            30 */
-#define RESET_BUS      31
-
-#endif /* DT_RESET_OXSEMI_OX810SE_H */
diff --git a/include/dt-bindings/reset/oxsemi,ox820.h b/include/dt-bindings/reset/oxsemi,ox820.h
deleted file mode 100644 (file)
index 54b58e0..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
- */
-
-#ifndef DT_RESET_OXSEMI_OX820_H
-#define DT_RESET_OXSEMI_OX820_H
-
-#define RESET_SCU      0
-#define RESET_LEON     1
-#define RESET_ARM0     2
-#define RESET_ARM1     3
-#define RESET_USBHS    4
-#define RESET_USBPHYA  5
-#define RESET_MAC      6
-#define RESET_PCIEA    7
-#define RESET_SGDMA    8
-#define RESET_CIPHER   9
-#define RESET_DDR      10
-#define RESET_SATA     11
-#define RESET_SATA_LINK        12
-#define RESET_SATA_PHY 13
-#define RESET_PCIEPHY  14
-#define RESET_NAND     15
-#define RESET_GPIO     16
-#define RESET_UART1    17
-#define RESET_UART2    18
-#define RESET_MISC     19
-#define RESET_I2S      20
-#define RESET_SD       21
-#define RESET_MAC_2    22
-#define RESET_PCIEB    23
-#define RESET_VIDEO    24
-#define RESET_DDR_PHY  25
-#define RESET_USBPHYB  26
-#define RESET_USBDEV   27
-/* Reserved            29 */
-#define RESET_ARMDBG   29
-#define RESET_PLLA     30
-#define RESET_PLLB     31
-
-#endif /* DT_RESET_OXSEMI_OX820_H */
diff --git a/include/dt-bindings/reset/spacemit,k3-resets.h b/include/dt-bindings/reset/spacemit,k3-resets.h
new file mode 100644 (file)
index 0000000..dc1ef00
--- /dev/null
@@ -0,0 +1,195 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2025 SpacemiT Technology Co. Ltd
+ */
+
+#ifndef _DT_BINDINGS_RESET_SPACEMIT_K3_RESETS_H_
+#define _DT_BINDINGS_RESET_SPACEMIT_K3_RESETS_H_
+
+/* MPMU resets */
+#define RESET_MPMU_WDT           0
+#define RESET_MPMU_RIPC          1
+
+/* APBC resets */
+#define RESET_APBC_UART0         0
+#define RESET_APBC_UART2         1
+#define RESET_APBC_UART3         2
+#define RESET_APBC_UART4         3
+#define RESET_APBC_UART5         4
+#define RESET_APBC_UART6         5
+#define RESET_APBC_UART7         6
+#define RESET_APBC_UART8         7
+#define RESET_APBC_UART9         8
+#define RESET_APBC_UART10        9
+#define RESET_APBC_GPIO          10
+#define RESET_APBC_PWM0          11
+#define RESET_APBC_PWM1          12
+#define RESET_APBC_PWM2          13
+#define RESET_APBC_PWM3          14
+#define RESET_APBC_PWM4          15
+#define RESET_APBC_PWM5          16
+#define RESET_APBC_PWM6          17
+#define RESET_APBC_PWM7          18
+#define RESET_APBC_PWM8          19
+#define RESET_APBC_PWM9          20
+#define RESET_APBC_PWM10         21
+#define RESET_APBC_PWM11         22
+#define RESET_APBC_PWM12         23
+#define RESET_APBC_PWM13         24
+#define RESET_APBC_PWM14         25
+#define RESET_APBC_PWM15         26
+#define RESET_APBC_PWM16         27
+#define RESET_APBC_PWM17         28
+#define RESET_APBC_PWM18         29
+#define RESET_APBC_PWM19         30
+#define RESET_APBC_SPI0          31
+#define RESET_APBC_SPI1          32
+#define RESET_APBC_SPI3          33
+#define RESET_APBC_RTC           34
+#define RESET_APBC_TWSI0         35
+#define RESET_APBC_TWSI1         36
+#define RESET_APBC_TWSI2         37
+#define RESET_APBC_TWSI4         38
+#define RESET_APBC_TWSI5         39
+#define RESET_APBC_TWSI6         40
+#define RESET_APBC_TWSI8         41
+#define RESET_APBC_TIMERS0       42
+#define RESET_APBC_TIMERS1       43
+#define RESET_APBC_TIMERS2       44
+#define RESET_APBC_TIMERS3       45
+#define RESET_APBC_TIMERS4       46
+#define RESET_APBC_TIMERS5       47
+#define RESET_APBC_TIMERS6       48
+#define RESET_APBC_TIMERS7       49
+#define RESET_APBC_AIB           50
+#define RESET_APBC_ONEWIRE       51
+#define RESET_APBC_I2S0          52
+#define RESET_APBC_I2S1          53
+#define RESET_APBC_I2S2          54
+#define RESET_APBC_I2S3          55
+#define RESET_APBC_I2S4          56
+#define RESET_APBC_I2S5          57
+#define RESET_APBC_DRO           58
+#define RESET_APBC_IR0           59
+#define RESET_APBC_IR1           60
+#define RESET_APBC_TSEN          61
+#define RESET_IPC_AP2AUD         62
+#define RESET_APBC_CAN0          63
+#define RESET_APBC_CAN1          64
+#define RESET_APBC_CAN2          65
+#define RESET_APBC_CAN3          66
+#define RESET_APBC_CAN4          67
+
+/* APMU resets */
+#define RESET_APMU_CSI           0
+#define RESET_APMU_CCIC2PHY      1
+#define RESET_APMU_CCIC3PHY      2
+#define RESET_APMU_ISP_CIBUS     3
+#define RESET_APMU_DSI_ESC       4
+#define RESET_APMU_LCD           5
+#define RESET_APMU_V2D           6
+#define RESET_APMU_LCD_MCLK      7
+#define RESET_APMU_LCD_DSCCLK    8
+#define RESET_APMU_SC2_HCLK      9
+#define RESET_APMU_CCIC_4X       10
+#define RESET_APMU_CCIC1_PHY     11
+#define RESET_APMU_SDH_AXI       12
+#define RESET_APMU_SDH0          13
+#define RESET_APMU_SDH1          14
+#define RESET_APMU_SDH2          15
+#define RESET_APMU_USB2_AHB      16
+#define RESET_APMU_USB2_VCC      17
+#define RESET_APMU_USB2_PHY      18
+#define RESET_APMU_USB3_A_AHB    19
+#define RESET_APMU_USB3_A_VCC    20
+#define RESET_APMU_QSPI          21
+#define RESET_APMU_QSPI_BUS      22
+#define RESET_APMU_DMA           23
+#define RESET_APMU_AES_WTM       24
+#define RESET_APMU_MCB_DCLK      25
+#define RESET_APMU_MCB_ACLK      26
+#define RESET_APMU_VPU           27
+#define RESET_APMU_DTC           28
+#define RESET_APMU_GPU           29
+#define RESET_APMU_ALZO          30
+#define RESET_APMU_MC            31
+#define RESET_APMU_CPU0_POP      32
+#define RESET_APMU_CPU0_SW       33
+#define RESET_APMU_CPU1_POP      34
+#define RESET_APMU_CPU1_SW       35
+#define RESET_APMU_CPU2_POP      36
+#define RESET_APMU_CPU2_SW       37
+#define RESET_APMU_CPU3_POP      38
+#define RESET_APMU_CPU3_SW       39
+#define RESET_APMU_C0_MPSUB_SW   40
+#define RESET_APMU_CPU4_POP      41
+#define RESET_APMU_CPU4_SW       42
+#define RESET_APMU_CPU5_POP      43
+#define RESET_APMU_CPU5_SW       44
+#define RESET_APMU_CPU6_POP      45
+#define RESET_APMU_CPU6_SW       46
+#define RESET_APMU_CPU7_POP      47
+#define RESET_APMU_CPU7_SW       48
+#define RESET_APMU_C1_MPSUB_SW   49
+#define RESET_APMU_MPSUB_DBG     50
+#define RESET_APMU_USB3_A_PHY    51    /* USB3 A */
+#define RESET_APMU_USB3_B_AHB    52
+#define RESET_APMU_DSI4LN2_ESCCLK     53
+#define RESET_APMU_DSI4LN2_LCD_SW     54
+#define RESET_APMU_DSI4LN2_LCD_MCLK   55
+#define RESET_APMU_DSI4LN2_LCD_DSCCLK 56
+#define RESET_APMU_DSI4LN2_DPU_ACLK   57
+#define RESET_APMU_DPU_ACLK      58
+#define RESET_APMU_UFS_ACLK      59
+#define RESET_APMU_EDP0          60
+#define RESET_APMU_EDP1          61
+#define RESET_APMU_USB3_B_VCC    62    /* USB3 B */
+#define RESET_APMU_USB3_B_PHY    63
+#define RESET_APMU_USB3_C_AHB    64
+#define RESET_APMU_USB3_C_VCC    65
+#define RESET_APMU_USB3_C_PHY    66
+#define RESET_APMU_EMAC0         67
+#define RESET_APMU_EMAC1         68
+#define RESET_APMU_EMAC2         69
+#define RESET_APMU_ESPI_MCLK     70
+#define RESET_APMU_ESPI_SCLK     71
+#define RESET_APMU_USB3_D_AHB    72    /* USB3 D */
+#define RESET_APMU_USB3_D_VCC    73
+#define RESET_APMU_USB3_D_PHY    74
+#define RESET_APMU_UCIE_IP       75
+#define RESET_APMU_UCIE_HOT      76
+#define RESET_APMU_UCIE_MON      77
+#define RESET_APMU_RCPU_AUDIO_SYS     78
+#define RESET_APMU_RCPU_MCU_CORE      79
+#define RESET_APMU_RCPU_AUDIO_APMU    80
+#define RESET_APMU_PCIE_A_DBI    81
+#define RESET_APMU_PCIE_A_SLAVE  82
+#define RESET_APMU_PCIE_A_MASTER 83
+#define RESET_APMU_PCIE_B_DBI    84
+#define RESET_APMU_PCIE_B_SLAVE  85
+#define RESET_APMU_PCIE_B_MASTER 86
+#define RESET_APMU_PCIE_C_DBI    87
+#define RESET_APMU_PCIE_C_SLAVE  88
+#define RESET_APMU_PCIE_C_MASTER 89
+#define RESET_APMU_PCIE_D_DBI    90
+#define RESET_APMU_PCIE_D_SLAVE  91
+#define RESET_APMU_PCIE_D_MASTER 92
+#define RESET_APMU_PCIE_E_DBI    93
+#define RESET_APMU_PCIE_E_SLAVE  94
+#define RESET_APMU_PCIE_E_MASTER 95
+
+/* DCIU resets*/
+#define RESET_DCIU_HDMA          0
+#define RESET_DCIU_DMA350        1
+#define RESET_DCIU_DMA350_0      2
+#define RESET_DCIU_DMA350_1      3
+#define RESET_DCIU_AXIDMA0       4
+#define RESET_DCIU_AXIDMA1       5
+#define RESET_DCIU_AXIDMA2       6
+#define RESET_DCIU_AXIDMA3       7
+#define RESET_DCIU_AXIDMA4       8
+#define RESET_DCIU_AXIDMA5       9
+#define RESET_DCIU_AXIDMA6       10
+#define RESET_DCIU_AXIDMA7       11
+
+#endif /* _DT_BINDINGS_RESET_SPACEMIT_K3_H_ */
diff --git a/include/dt-bindings/sound/audio-jack-events.h b/include/dt-bindings/sound/audio-jack-events.h
deleted file mode 100644 (file)
index 1b29b29..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __AUDIO_JACK_EVENTS_H
-#define __AUDIO_JACK_EVENTS_H
-
-#define JACK_HEADPHONE         1
-#define JACK_MICROPHONE                2
-#define JACK_LINEOUT           3
-#define JACK_LINEIN            4
-
-#endif /* __AUDIO_JACK_EVENTS_H */
index ddc7302a510aa14bb575681f7072f20b3b89a165..350f98178b26416c72087388b36661f22752d1b4 100644 (file)
@@ -7,6 +7,9 @@
 #ifndef __MEDIATEK_LVTS_DT_H
 #define __MEDIATEK_LVTS_DT_H
 
+#define MT7987_CPU             0
+#define MT7987_ETH2P5G         1
+
 #define MT7988_CPU_0           0
 #define MT7988_CPU_1           1
 #define MT7988_ETH2P5G_0       2
 #define MT8192_AP_MD1   15
 #define MT8192_AP_MD2   16
 
+#define MT8196_MCU_MEDIUM_CPU6_0        0
+#define MT8196_MCU_MEDIUM_CPU6_1        1
+#define MT8196_MCU_DSU2                 2
+#define MT8196_MCU_DSU3                 3
+#define MT8196_MCU_LITTLE_CPU3          4
+#define MT8196_MCU_LITTLE_CPU0          5
+#define MT8196_MCU_LITTLE_CPU1          6
+#define MT8196_MCU_LITTLE_CPU2          7
+#define MT8196_MCU_MEDIUM_CPU4_0        8
+#define MT8196_MCU_MEDIUM_CPU4_1        9
+#define MT8196_MCU_MEDIUM_CPU5_0        10
+#define MT8196_MCU_MEDIUM_CPU5_1        11
+#define MT8196_MCU_DSU0                 12
+#define MT8196_MCU_DSU1                 13
+#define MT8196_MCU_BIG_CPU7_0           14
+#define MT8196_MCU_BIG_CPU7_1           15
+
+#define MT8196_AP_TOP0                  0
+#define MT8196_AP_TOP1                  1
+#define MT8196_AP_TOP2                  2
+#define MT8196_AP_TOP3                  3
+#define MT8196_AP_BOT0                  4
+#define MT8196_AP_BOT1                  5
+#define MT8196_AP_BOT2                  6
+#define MT8196_AP_BOT3                  7
+
 #endif /* __MEDIATEK_LVTS_DT_H */
index 63e77c05bfdaaab1d42d40f342f926d51d81b144..f2413ba6a8583c76aca1fa85b012ea9a5faebb0a 100644 (file)
 
 &i2c1 {
        /* pull-ups and devices require AXP209 LDO3 */
-       status = "failed";
+       status = "fail";
 };
 
 &i2c2 {
index c3259694764753d28b02bbfa449cb5a998c8b3f1..e0c7099015da183b23103729474980f9d07e1f1b 100644 (file)
@@ -96,7 +96,7 @@
 
 &i2c1 {
        /* pull-ups and devices require AXP209 LDO3 */
-       status = "failed";
+       status = "fail";
 };
 
 &i2c2 {
index be486d28d04faeb4cfe98306bdb3cf25475e8963..428cab5a0e906e231e02be0dcc601fab928b0007 100644 (file)
        /* The P66 uses a different EINT then the reference design */
        interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
        /* The icn8318 binding expects wake-gpios instead of power-gpios */
+       /delete-property/ power-gpios;
        wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
        touchscreen-size-x = <800>;
        touchscreen-size-y = <480>;
index 5bce7a32651ed2bb93c35618ea70985ab9e3e0fe..5dfd36e3a49dfdb9ba4f7d9754fbccee17eeda35 100644 (file)
 
 &i2c0 {
        /* pull-ups and devices require AXP221 DLDO3 */
-       status = "failed";
+       status = "fail";
 };
 
 &i2c1 {
index b32b70ada7fd0ee433b066bf6f04179f37322a87..fefd887fbc39e702dbc1d832ae816936f7a425d1 100644 (file)
@@ -90,7 +90,7 @@
 
 &i2c0 {
        /* pull-ups and device VDDIO use AXP221 DLDO3 */
-       status = "failed";
+       status = "fail";
 };
 
 &i2c1 {
index c7181308ae6f32c21e8a8ebcce8be0d07ca3ddc4..424f4a2487e2f1bc51e5f07d6dc9b580a38cebe8 100644 (file)
@@ -4,6 +4,7 @@
 #define SOC_PERIPHERAL_IRQ(nr) GIC_SPI nr
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/thermal/thermal.h>
 #include <riscv/allwinner/sunxi-d1s-t113.dtsi>
 #include <riscv/allwinner/sunxi-d1-t113.dtsi>
 
@@ -20,6 +21,7 @@
                        reg = <0>;
                        clocks = <&ccu CLK_CPUX>;
                        clock-names = "cpu";
+                       #cooling-cells = <2>;
                };
 
                cpu1: cpu@1 {
@@ -28,6 +30,7 @@
                        reg = <1>;
                        clocks = <&ccu CLK_CPUX>;
                        clock-names = "cpu";
+                       #cooling-cells = <2>;
                };
        };
 
                             <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-affinity = <&cpu0>, <&cpu1>;
        };
+
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&ths>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
+                       trips {
+                               cpu_alert: cpu-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
 };
index 28ec2c821cdc98c947348e88e6704295b690ff13..6792377b284193ecdf66cb70a7d22068ea3ae640 100644 (file)
        #size-cells = <1>;
        interrupt-parent = <&gic>;
 
-       iio-hwmon {
-               compatible = "iio-hwmon";
-               io-channels = <&saradc 8>;
-       };
-
        soc {
                compatible = "simple-bus";
                #address-cells = <1>;
index 158b3923eae3ab3c3baa13c2fff1116e6804bcf9..248b8e492d438c771023b41947326eaba2a33e81 100644 (file)
                                        compatible = "arm,vexpress,config-bus";
                                        arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-                                       oscclk0 {
+                                       clock-controller-0 {
                                                /* MCC static memory clock */
                                                compatible = "arm,vexpress-osc";
                                                arm,vexpress-sysreg,func = <1 0>;
                                                clock-output-names = "v2m:oscclk0";
                                        };
 
-                                       v2m_oscclk1: oscclk1 {
+                                       v2m_oscclk1: clock-controller-1 {
                                                /* CLCD clock */
                                                compatible = "arm,vexpress-osc";
                                                arm,vexpress-sysreg,func = <1 1>;
                                                clock-output-names = "v2m:oscclk1";
                                        };
 
-                                       v2m_oscclk2: oscclk2 {
+                                       v2m_oscclk2: clock-controller-2 {
                                                /* IO FPGA peripheral clock */
                                                compatible = "arm,vexpress-osc";
                                                arm,vexpress-sysreg,func = <1 2>;
                                                clock-output-names = "v2m:oscclk2";
                                        };
 
-                                       volt-vio {
+                                       regulator-vio {
                                                /* Logic level voltage */
                                                compatible = "arm,vexpress-volt";
                                                arm,vexpress-sysreg,func = <2 0>;
index de83c0eb1d6ed9e39f95d43c795c738f29258bb5..3f2ca9da0be2d5bcf39eb0ec619f7d0c63b3230c 100644 (file)
 &uart5 {
        // Workaround for A0
        compatible = "snps,dw-apb-uart";
+       /delete-property/ no-loopback-test;
 };
 
 &i2c0 {
        status = "okay";
        bus-width = <4>;
        max-frequency = <100000000>;
-       sdhci-drive-type = /bits/ 8 <3>;
        sdhci-caps-mask = <0x7 0x0>;
-       sdhci,wp-inverted;
+       wp-inverted;
        vmmc-supply = <&vcc_sdhci0>;
        vqmmc-supply = <&vccq_sdhci0>;
        clk-phase-sd-hs = <7>, <200>;
        status = "okay";
        bus-width = <4>;
        max-frequency = <100000000>;
-       sdhci-drive-type = /bits/ 8 <3>;
        sdhci-caps-mask = <0x7 0x0>;
-       sdhci,wp-inverted;
+       wp-inverted;
        vmmc-supply = <&vcc_sdhci1>;
        vqmmc-supply = <&vccq_sdhci1>;
        clk-phase-sd-hs = <7>, <200>;
diff --git a/src/arm/aspeed/aspeed-bmc-asrock-altrad8.dts b/src/arm/aspeed/aspeed-bmc-asrock-altrad8.dts
new file mode 100644 (file)
index 0000000..d402831
--- /dev/null
@@ -0,0 +1,637 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "ASRock ALTRAD8 BMC";
+       compatible = "asrock,altrad8-bmc", "aspeed,ast2500";
+
+       aliases {
+               serial4 = &uart5;
+               i2c50 = &nvme1;
+               i2c51 = &pcie4;
+               i2c52 = &pcie5;
+               i2c53 = &pcie6;
+               i2c54 = &pcie7;
+               i2c55 = &nvme3;
+               i2c56 = &nvme2;
+               i2c57 = &nvme0;
+               i2c58 = &nvme4;
+               i2c59 = &nvme5;
+               i2c60 = &nvme6;
+               i2c61 = &nvme7;
+               i2c62 = &nvme8;
+               i2c63 = &nvme9;
+               i2c64 = &nvme10;
+               i2c65 = &nvme11;
+       };
+
+       chosen {
+               stdout-path = "uart5:115200n8";
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels =   <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
+                               <&adc 4> ,<&adc 5>, <&adc 6>, <&adc 7>,
+                               <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
+                               <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-system-fault {
+                       gpios = <&gpio ASPEED_GPIO(G,3) GPIO_ACTIVE_LOW>;
+                       label = "platform:red:fault";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
+               };
+
+               led-heartbeat {
+                       gpios = <&gpio ASPEED_GPIO(G,0) GPIO_ACTIVE_LOW>;
+                       label = "platform:green:heartbeat";
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       linux,default-trigger = "timer";
+               };
+
+               led-fan1-fault {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&io_expander0 0 GPIO_ACTIVE_LOW>;
+                       label = "fan1:red:fault";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
+               };
+
+               led-fan2-fault {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&io_expander0 1 GPIO_ACTIVE_LOW>;
+                       label = "fan2:red:fault";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
+               };
+
+               led-fan3-fault {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&io_expander0 2 GPIO_ACTIVE_LOW>;
+                       label = "fan3:red:fault";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
+               };
+
+               led-fan4-fault {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&io_expander0 3 GPIO_ACTIVE_LOW>;
+                       label = "fan4:red:fault";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
+               };
+
+               led-fan5-fault {
+                       retain-state-shutdown;
+                       default-state = "off";
+                       gpios = <&io_expander0 4 GPIO_ACTIVE_LOW>;
+                       label = "fan5:red:fault";
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_FAULT;
+               };
+       };
+
+       memory@80000000 {
+               reg = <0x80000000 0x20000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               gfx_memory: framebuffer {
+                       compatible = "shared-dma-pool";
+                       size = <0x01000000>;
+                       alignment = <0x01000000>;
+                       reusable;
+               };
+
+               vga_memory: framebuffer@9f000000 {
+                       no-map;
+                       reg = <0x9f000000 0x01000000>; /* 16M */
+               };
+
+               video_engine_memory: jpegbuffer {
+                       compatible = "shared-dma-pool";
+                       size = <0x02000000>;    /* 32M */
+                       alignment = <0x01000000>;
+                       reusable;
+               };
+       };
+};
+
+&adc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default
+               &pinctrl_adc1_default
+               &pinctrl_adc2_default
+               &pinctrl_adc3_default
+               &pinctrl_adc4_default
+               &pinctrl_adc5_default
+               &pinctrl_adc6_default
+               &pinctrl_adc7_default
+               &pinctrl_adc8_default
+               &pinctrl_adc9_default
+               &pinctrl_adc10_default
+               &pinctrl_adc11_default
+               &pinctrl_adc12_default
+               &pinctrl_adc13_default
+               &pinctrl_adc14_default
+               &pinctrl_adc15_default>;
+};
+
+&fmc {
+       status = "okay";
+
+       flash@0 {
+               label = "bmc";
+               m25p,fast-read;
+               spi-max-frequency = <50000000>;
+               status = "okay";
+#include "openbmc-flash-layout-64.dtsi"
+       };
+};
+
+&gfx {
+       memory-region = <&gfx_memory>;
+       status = "okay";
+};
+
+&gpio {
+       gpio-line-names =
+       /*A0-A7*/       "","","","bmc-ready","","","","",
+       /*B0-B7*/       "i2c-backup-sel","","","","","","","host0-shd-ack-n",
+       /*C0-C7*/       "","","","","","","","",
+       /*D0-D7*/       "button-power-n","control-power-n","button-reset-n",
+                       "host0-sysreset-n","","","power-chassis-good","",
+       /*E0-E7*/       "","s0-vrd1-vddq0123-fault-n",
+                       "s0-vrd1-vddq4567-fault-n","s0-vrd0-vddc-fault-n",
+                       "s0-vrd3-p0v75-fault-n","","","",
+       /*F0-F7*/       "","","ps-atx-on-n","","","","","",
+       /*G0-G7*/       "led-bmc-heartbeat-n","button-identify-n","",
+                       "led-system-fault-n","uboot-ready","bmc-salt2-n","","",
+       /*H0-H7*/       "ps-pwr-ok","","","","","","","",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "s0-hightemp-n","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "cpld-disable-bmc-n","","","","","s0-spi-auth-fail-n","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "","","","","","","","",
+       /*Q0-Q7*/       "","","","","","","led-identify-n",
+                       "chassis-intrusion-n",
+       /*R0-R7*/       "","","ext-hightemp-n","spi0-program-sel","",
+                       "output-hwm-bat-en","","",
+       /*S0-S7*/       "s0-vr-hot-n","","input-salt2-n","bmc-sysreset-n","","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","s0-rtc-lock","","","","",
+       /*AA0-AA7*/     "s0-rtc-int-n","","","","","pmbus-sel-n","","",
+       /*AB0-AB7*/     "host0-reboot-ack-n","s0-sys-auth-failure-n",
+                       "","","","","","",
+       /*AC0-AC7*/     "s0-fault-alert","host0-ready","s0-overtemp-n",
+                       "","bmc-ok","host0-special-boot","presence-cpu0",
+                       "host0-shd-req-n";
+
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       ipmb@10 {
+               compatible = "ipmb-dev";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+               i2c-protocol;
+       };
+
+};
+
+&i2c1 {
+       status = "okay";
+
+       i2c-mux1@73 {
+               compatible = "nxp,pca9548";
+               reg = <0x73>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               nvme1: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               pcie4: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               pcie5: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               pcie6: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               pcie7: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               nvme3: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               nvme2: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               nvme0: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+
+       i2c-mux2@75 {
+               compatible = "nxp,pca9548";
+               reg = <0x75>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               nvme4: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               nvme5: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               nvme6: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               nvme7: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               nvme8: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               nvme9: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               nvme10: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               nvme11: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       smpro@4f {
+               compatible = "ampere,smpro";
+               reg = <0x4f>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+
+       // PSU FRU
+       eeprom@38 {
+               compatible = "atmel,24c02";
+               reg = <0x38>;
+       };
+};
+
+&i2c4 {
+       status = "okay";
+
+       temperature-sensor@29 {
+               compatible = "nuvoton,nct7802";
+               reg = <0x29>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@0 { /* LTD */
+                       reg = <0>;
+                       status = "okay";
+               };
+
+               channel@1 { /* RTD1 */
+                       reg = <1>;
+                       sensor-type = "temperature";
+                       temperature-mode = "thermistor";
+               };
+
+               channel@2 { /* RTD2 */
+                       reg = <2>;
+                       sensor-type = "temperature";
+                       temperature-mode = "thermal-diode";
+               };
+       };
+
+       temperature-sensor@4c {
+               compatible = "nuvoton,w83773g";
+               reg = <0x4c>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+
+       rtc@6f {
+               compatible = "isil,isl1208";
+               reg = <0x6f>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       // BMC FRU
+       eeprom@57 {
+               compatible = "atmel,24c128";
+               reg = <0x57>;
+
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       eth1_macaddress: macaddress@3f80 {
+                               reg = <0x3f80 6>;
+                       };
+
+                       // The offset for eth0 really is at 0x3f88.
+                       // eth0 and eth1 are swapped from what might be
+                       // expected.
+                       eth0_macaddress: macaddress@3f88 {
+                               reg = <0x3f88 6>;
+                       };
+               };
+       };
+};
+
+&i2c8 {
+       status = "okay";
+
+       io_expander0: gpio@1c {
+               compatible = "nxp,pca9557";
+               reg = <0x1c>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+};
+
+// Bus for accessing the SCP EEPROM
+&i2c12 {
+       status = "okay";
+};
+
+&i2c13 {
+       status = "okay";
+
+       ssif-bmc@10 {
+               compatible = "ssif-bmc";
+               reg = <0x10>;
+       };
+};
+
+// Connected to host Intel X550 (ALTRAD8UD-1L2T) or
+// Broadcom BCM57414 (ALTRAD8UD2-1L2Q) interface.
+// Unconnected on ALTRAD8UD-1L
+&mac0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rmii1_default>;
+       clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
+                <&syscon ASPEED_CLK_MAC1RCLK>;
+       clock-names = "MACCLK", "RCLK";
+       use-ncsi;
+       nvmem-cells = <&eth0_macaddress>;
+       nvmem-cell-names = "mac-address";
+
+       status = "okay";
+};
+
+// Connected to Realtek RTL8211E
+&mac1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
+
+       nvmem-cells = <&eth1_macaddress>;
+       nvmem-cell-names = "mac-address";
+
+       status = "okay";
+};
+
+&pwm_tacho {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm0_default
+                       &pinctrl_pwm1_default
+                       &pinctrl_pwm2_default
+                       &pinctrl_pwm3_default
+                       &pinctrl_pwm4_default
+                       &pinctrl_pwm5_default
+                       &pinctrl_pwm6_default
+                       &pinctrl_pwm7_default>;
+
+       status = "okay";
+
+       fan@0 {
+               reg = <0x00>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x00 0x08>;
+       };
+
+       fan@1 {
+               reg = <0x01>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x01 0x09>;
+       };
+
+       fan@2 {
+               reg = <0x02>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x02 0x0a>;
+       };
+
+       fan@3 {
+               reg = <0x03>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x03 0x0b>;
+       };
+
+       fan@4 {
+               reg = <0x04>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0c>;
+       };
+
+       fan@5 {
+               reg = <0x05>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0d>;
+       };
+
+       fan@6 {
+               reg = <0x06>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0e>;
+       };
+
+       fan@7 {
+               reg = <0x07>;
+               aspeed,fan-tach-ch = /bits/ 8 <0x07 0x0f>;
+       };
+};
+
+&spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi1_default>;
+
+       status = "okay";
+
+       // Host BIOS/UEFI EEPROM
+       flash@0 {
+               m25p,fast-read;
+               label = "pnor";
+               spi-max-frequency = <100000000>;
+               status = "okay";
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       tfa@400000 {
+                               reg = <0x400000 0x200000>;
+                               label = "pnor-tfa";
+                       };
+
+                       uefi@600000 {
+                               reg = <0x600000 0x1A00000>;
+                               label = "pnor-uefi";
+                       };
+               };
+       };
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd1_default
+                        &pinctrl_rxd1_default
+                        &pinctrl_ncts1_default
+                        &pinctrl_nrts1_default>;
+
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd2_default
+                       &pinctrl_rxd2_default>;
+
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd3_default
+                       &pinctrl_rxd3_default>;
+
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_txd4_default
+                       &pinctrl_rxd4_default>;
+
+       status = "okay";
+};
+
+// The BMC's uart
+&uart5 {
+       status = "okay";
+};
+
+&vhub {
+       status = "okay";
+};
+
+&video {
+       memory-region = <&video_engine_memory>;
+
+       status = "okay";
+};
diff --git a/src/arm/aspeed/aspeed-bmc-facebook-anacapa.dts b/src/arm/aspeed/aspeed-bmc-facebook-anacapa.dts
new file mode 100644 (file)
index 0000000..221af85
--- /dev/null
@@ -0,0 +1,1045 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/dts-v1/;
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "Facebook Anacapa BMC";
+       compatible = "facebook,anacapa-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+               i2c16 = &i2c0mux0ch0;
+               i2c17 = &i2c0mux0ch1;
+               i2c18 = &i2c0mux0ch2;
+               i2c19 = &i2c0mux0ch3;
+               i2c20 = &i2c1mux0ch0;
+               i2c21 = &i2c1mux0ch1;
+               i2c22 = &i2c1mux0ch2;
+               i2c23 = &i2c1mux0ch3;
+               i2c24 = &i2c4mux0ch0;
+               i2c25 = &i2c4mux0ch1;
+               i2c26 = &i2c4mux0ch2;
+               i2c27 = &i2c4mux0ch3;
+               i2c28 = &i2c4mux0ch4;
+               i2c29 = &i2c4mux0ch5;
+               i2c30 = &i2c4mux0ch6;
+               i2c31 = &i2c4mux0ch7;
+               i2c32 = &i2c8mux0ch0;
+               i2c33 = &i2c8mux0ch1;
+               i2c34 = &i2c8mux0ch2;
+               i2c35 = &i2c8mux0ch3;
+               i2c36 = &i2c10mux0ch0;
+               i2c37 = &i2c10mux0ch1;
+               i2c38 = &i2c10mux0ch2;
+               i2c39 = &i2c10mux0ch3;
+               i2c40 = &i2c10mux0ch4;
+               i2c41 = &i2c10mux0ch5;
+               i2c42 = &i2c10mux0ch6;
+               i2c43 = &i2c10mux0ch7;
+               i2c44 = &i2c11mux0ch0;
+               i2c45 = &i2c11mux0ch1;
+               i2c46 = &i2c11mux0ch2;
+               i2c47 = &i2c11mux0ch3;
+               i2c48 = &i2c11mux0ch4;
+               i2c49 = &i2c11mux0ch5;
+               i2c50 = &i2c11mux0ch6;
+               i2c51 = &i2c11mux0ch7;
+               i2c52 = &i2c13mux0ch0;
+               i2c53 = &i2c13mux0ch1;
+               i2c54 = &i2c13mux0ch2;
+               i2c55 = &i2c13mux0ch3;
+               i2c56 = &i2c13mux0ch4;
+               i2c57 = &i2c13mux0ch5;
+               i2c58 = &i2c13mux0ch6;
+               i2c59 = &i2c13mux0ch7;
+       };
+
+       chosen {
+               stdout-path = "serial4:57600n8";
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
+                                 <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
+                                 <&adc1 2>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       label = "bmc_heartbeat_amber";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-1 {
+                       label = "fp_id_amber";
+                       default-state = "off";
+                       gpios = <&gpio0 ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               video_engine_memory: video {
+                       size = <0x02c00000>;
+                       alignment = <0x00100000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+
+               gfx_memory: framebuffer {
+                       size = <0x01000000>;
+                       alignment = <0x01000000>;
+                       compatible = "shared-dma-pool";
+                       reusable;
+               };
+       };
+
+       p3v3_bmc_aux: regulator-p3v3-bmc-aux {
+               compatible = "regulator-fixed";
+               regulator-name = "p3v3_bmc_aux";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       spi_gpio: spi {
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
+               num-chipselects = <1>;
+               status = "okay";
+
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+                       spi-max-frequency = <33000000>;
+                       reg = <0>;
+               };
+       };
+};
+
+&adc0 {
+       aspeed,int-vref-microvolt = <2500000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
+               &pinctrl_adc2_default &pinctrl_adc3_default
+               &pinctrl_adc4_default &pinctrl_adc5_default
+               &pinctrl_adc6_default &pinctrl_adc7_default>;
+       status = "okay";
+};
+
+&adc1 {
+       aspeed,int-vref-microvolt = <2500000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc10_default>;
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&fmc {
+       status = "okay";
+
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-128.dtsi"
+       };
+
+       flash@1 {
+               status = "okay";
+               m25p,fast-read;
+               label = "alt-bmc";
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&gfx {
+       status = "okay";
+       memory-region = <&gfx_memory>;
+};
+
+&gpio0 {
+       gpio-line-names =
+
+       /*A0-A7*/
+       "","","","","","","","",
+
+       /*B0-B7*/
+       "BATTERY_DETECT", "", "", "BMC_READY",
+       "", "FM_ID_LED", "", "",
+
+       /*C0-C7*/
+       "","","","","","","","",
+
+       /*D0-D7*/
+       "","","","","","","","",
+
+       /*E0-E7*/
+       "","","","","","","","",
+
+       /*F0-F7*/
+       "","","","","","","","",
+
+       /*G0-G7*/
+       "FM_MUX1_SEL", "", "", "",
+       "", "", "FM_DEBUG_PORT_PRSNT_N", "FM_BMC_DBP_PRESENT_N",
+
+       /*H0-H7*/
+       "","","","","","","","",
+
+       /*I0-I7*/
+       "", "", "", "",
+       "", "FLASH_WP_STATUS", "BMC_JTAG_MUX_SEL", "",
+
+       /*J0-J7*/
+       "","","","","","","","",
+
+       /*K0-K7*/
+       "","","","","","","","",
+
+       /*L0-L7*/
+       "","","","","","","","",
+
+       /*M0-M7*/
+       "", "BMC_FRU_WP", "", "",
+       "", "", "", "",
+
+       /*N0-N7*/
+       "LED_POSTCODE_0", "LED_POSTCODE_1", "LED_POSTCODE_2", "LED_POSTCODE_3",
+       "LED_POSTCODE_4", "LED_POSTCODE_5", "LED_POSTCODE_6", "LED_POSTCODE_7",
+
+       /*O0-O7*/
+       "","","","","","","","",
+
+       /*P0-P7*/
+       "PWR_BTN_BMC_BUF_N", "", "ID_RST_BTN_BMC_N", "",
+       "PWR_LED", "", "", "BMC_HEARTBEAT_N",
+
+       /*Q0-Q7*/
+       "","","","","","","","",
+
+       /*R0-R7*/
+       "","","","","","","","",
+
+       /*S0-S7*/
+       "", "", "SYS_BMC_PWRBTN_N", "",
+       "", "", "", "RUN_POWER_FAULT",
+
+       /*T0-T7*/
+       "","","","","","","","",
+
+       /*U0-U7*/
+       "","","","","","","","",
+
+       /*V0-V7*/
+       "","","","","","","","",
+
+       /*W0-W7*/
+       "","","","","","","","",
+
+       /*X0-X7*/
+       "","","","","","","","",
+
+       /*Y0-Y7*/
+       "","","","","","","","",
+
+       /*Z0-Z7*/
+       "SPI_BMC_TPM_CS2_N", "", "", "SPI_BMC_TPM_CLK",
+       "SPI_BMC_TPM_MOSI", "SPI_BMC_TPM_MISO", "", "";
+};
+
+&gpio1 {
+       gpio-line-names =
+       /*18A0-18A7*/
+       "","","","","","","","",
+
+       /*18B0-18B7*/
+       "","","","",
+       "FM_BOARD_BMC_REV_ID0", "FM_BOARD_BMC_REV_ID1",
+       "FM_BOARD_BMC_REV_ID2", "",
+
+       /*18C0-18C7*/
+       "","","","","","","","",
+
+       /*18D0-18D7*/
+       "","","","","","","","",
+
+       /*18E0-18E3*/
+       "FM_BMC_PROT_LS_EN", "AC_PWR_BMC_BTN_N", "", "";
+};
+
+// L Bridge Board
+&i2c0 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c0mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c0mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c0mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c0mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// R Bridge Board
+&i2c1 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c1mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c1mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c1mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c1mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// MB - E1.S
+&i2c4 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c4mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch4: i2c@4 {
+                       reg = <4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch5: i2c@5 {
+                       reg = <5>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch6: i2c@6 {
+                       reg = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c4mux0ch7: i2c@7 {
+                       reg = <7>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// AMC
+&i2c5 {
+       status = "okay";
+};
+
+// MB
+&i2c6 {
+       status = "okay";
+
+       // HPM FRU
+       eeprom@50 {
+               compatible = "atmel,24c256";
+               reg = <0x50>;
+       };
+};
+
+// SCM
+&i2c7 {
+       status = "okay";
+
+
+};
+
+// MB - PDB
+&i2c8 {
+       status = "okay";
+
+       i2c-mux@72 {
+               compatible = "nxp,pca9546";
+               reg = <0x72>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c8mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       adc@1f {
+                               compatible = "ti,adc128d818";
+                               reg = <0x1f>;
+                               ti,mode = /bits/ 8 <1>;
+                       };
+
+                       gpio@22 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x22>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "RPDB_FAN_FULL_SPEED_R_N", "RPDB_I2C_TEMP75_U8_ALERT_R_N",
+                                       "RPDB_I2C_TMP432_U29_ALERT_R_N", "RPDB_GLOBAL_WP",
+                                       "RPDB_FAN_CT_FAN_FAIL_R_N", "",
+                                       "", "",
+                                       "RPDB_ALERT_P50V_HSC2_R_N", "RPDB_ALERT_P50V_HSC3_R_N",
+                                       "RPDB_ALERT_P50V_HSC4_R_N", "RPDB_ALERT_P50V_STBY_R_N",
+                                       "RPDB_I2C_P12V_MB_VRM_ALERT_R_N",
+                                       "RPDB_I2C_P12V_STBY_VRM_ALERT_R_N",
+                                       "RPDB_PGD_P3V3_STBY_PWRGD_R",
+                                       "RPDB_P12V_STBY_VRM_PWRGD_BUF_R";
+                       };
+
+                       gpio@24 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x24>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "RPDB_EAM2_PRSNT_MOS_N_R", "RPDB_EAM3_PRSNT_MOS_N_R",
+                                       "RPDB_PWRGD_P50V_HSC4_SYS_R",
+                                       "RPDB_PWRGD_P50V_STBY_SYS_BUF_R",
+                                       "RPDB_P50V_FAN1_R2_PG", "RPDB_P50V_FAN2_R2_PG",
+                                       "RPDB_P50V_FAN3_R2_PG", "RPDB_P50V_FAN4_R2_PG",
+                                       "", "RPDB_FAN1_PRSNT_N_R",
+                                       "", "RPDB_FAN2_PRSNT_N_R",
+                                       "RPDB_FAN3_PRSNT_N_R", "RPDB_FAN4_PRSNT_N_R",
+                                       "", "";
+                       };
+
+                       // R-PDB FRU
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+               };
+               i2c8mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       gpio@22 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x22>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "LPDB_FAN_FULL_SPEED_R_N","LPDB_I2C_TEMP75_U8_ALERT_R_N",
+                                       "LPDB_I2C_TMP432_U29_ALERT_R_N","LPDB_GLOBAL_WP",
+                                       "LPDB_FAN_CT_FAN_FAIL_R_N","",
+                                       "","",
+                                       "LPDB_ALERT_P50V_HSC0_R_N","LPDB_ALERT_P50V_HSC1_R_N",
+                                       "LPDB_ALERT_P50V_HSC5_R_N","LPDB_I2C_P12V_SW_VRM_ALERT_R_N",
+                                       "LPDB_EAM0_PRSNT_MOS_N_R","LPDB_EAM1_PRSNT_MOS_N_R",
+                                       "LPDB_PWRGD_P50V_HSC5_SYS_R","";
+                       };
+
+                       gpio@24 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x24>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "LPDB_P50V_FAN1_R2_PG","LPDB_P50V_FAN2_R2_PG",
+                                       "LPDB_P50V_FAN3_R2_PG","LPDB_P50V_FAN4_R2_PG",
+                                       "LPDB_P50V_FAN5_R2_PG","LPDB_FAN1_PRSNT_N_R",
+                                       "LPDB_FAN2_PRSNT_N_R","LPDB_FAN3_PRSNT_N_R",
+                                       "LPDB_FAN4_PRSNT_N_R","LPDB_FAN5_PRSNT_N_R",
+                                       "","",
+                                       "","",
+                                       "","";
+                       };
+
+                       // L-PDB FRU
+                       eeprom@50 {
+                               compatible = "atmel,24c128";
+                               reg = <0x50>;
+                       };
+               };
+               i2c8mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c8mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// SCM
+&i2c9 {
+       status = "okay";
+
+       // SCM FRU
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       // BSM FRU
+       eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+       };
+};
+
+// R Bridge Board
+&i2c10 {
+       status = "okay";
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9548";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c10mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c10mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c10mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c10mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c10mux0ch4: i2c@4 {
+                       reg = <4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c10mux0ch5: i2c@5 {
+                       reg = <5>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       gpio@22 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x22>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "","",
+                                       "","RBB_CPLD_REFRESH_IN_PRGRS_R_L",
+                                       "RBB_EAM0_NIC_CBL_PRSNT_R_L","RBB_EAM1_NIC_CBL_PRSNT_R_L",
+                                       "RBB_AINIC_JTAG_MUX_R2_SEL","RBB_SPI_MUX0_R2_SEL",
+                                       "RBB_AINIC_PRSNT_R_L","RBB_AINIC_OE_R_N",
+                                       "RBB_AINIC_BOARD_R2_ID","RBB_RST_USB2_HUB_R_N",
+                                       "RBB_RST_FT4222_R_N","RBB_RST_MCP2210_R_N",
+                                       "","";
+                       };
+
+                       // R Bridge Board FRU
+                       eeprom@52 {
+                               compatible = "atmel,24c256";
+                               reg = <0x52>;
+                       };
+               };
+               i2c10mux0ch6: i2c@6 {
+                       reg = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c10mux0ch7: i2c@7 {
+                       reg = <7>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// L Bridge Board
+&i2c11 {
+       status = "okay";
+
+       i2c-mux@71 {
+               compatible = "nxp,pca9548";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c11mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c11mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c11mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c11mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c11mux0ch4: i2c@4 {
+                       reg = <4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c11mux0ch5: i2c@5 {
+                       reg = <5>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       gpio@22 {
+                               compatible = "nxp,pca9555";
+                               reg = <0x22>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+
+                               gpio-line-names =
+                                       "","",
+                                       "","LBB_CPLD_REFRESH_IN_PRGRS_R_L",
+                                       "LBB_EAM0_NIC_CBL_PRSNT_R_L","LBB_EAM1_NIC_CBL_PRSNT_R_L",
+                                       "LBB_AINIC_JTAG_MUX_R2_SEL","LBB_SPI_MUX0_R2_SEL",
+                                       "LBB_AINIC_PRSNT_R_L","LBB_AINIC_OE_R_N",
+                                       "LBB_AINIC_BOARD_R2_ID","LBB_RST_USB2_HUB_R_N",
+                                       "LBB_RST_FT4222_R_N","LBB_RST_MCP2210_R_N",
+                                       "","";
+                       };
+
+                       // L Bridge Board FRU
+                       eeprom@52 {
+                               compatible = "atmel,24c256";
+                               reg = <0x52>;
+                       };
+               };
+               i2c11mux0ch6: i2c@6 {
+                       reg = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c11mux0ch7: i2c@7 {
+                       reg = <7>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// Debug Card
+&i2c12 {
+       status = "okay";
+};
+
+// MB
+&i2c13 {
+       status = "okay";
+
+       i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c13mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c13mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c13mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c13mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       adc@1f {
+                               compatible = "ti,adc128d818";
+                               reg = <0x1f>;
+                               ti,mode = /bits/ 8 <1>;
+                       };
+               };
+               i2c13mux0ch4: i2c@4 {
+                       reg = <4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       // HPM BRD ID FRU
+                       eeprom@51 {
+                               compatible = "atmel,24c256";
+                               reg = <0x51>;
+                       };
+               };
+               i2c13mux0ch5: i2c@5 {
+                       reg = <5>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c13mux0ch6: i2c@6 {
+                       reg = <6>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+               i2c13mux0ch7: i2c@7 {
+                       reg = <7>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+// SCM
+&i2c14 {
+       status = "okay";
+};
+
+&i2c15 {
+       status = "okay";
+};
+
+&kcs2 {
+       aspeed,lpc-io-reg = <0xca8>;
+       status = "okay";
+};
+
+&kcs3 {
+       aspeed,lpc-io-reg = <0xca2>;
+       status = "okay";
+};
+
+&lpc_ctrl {
+       status = "okay";
+};
+
+&mac2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ncsi3_default>;
+       use-ncsi;
+};
+
+&sgpiom0 {
+       ngpios = <128>;
+       bus-frequency = <2000000>;
+       gpio-line-names =
+       /*in - out - in - out */
+       /* A0-A7 line 0-15 */
+       "", "FM_CPU0_SYS_RESET_N", "", "CPU0_KBRST_N",
+       "", "FM_CPU0_PROCHOT_trigger_N", "", "FM_CLR_CMOS_R_P0",
+       "", "Force_I3C_SEL", "", "SYSTEM_Force_Run_AC_Cycle",
+       "", "", "", "",
+
+       /* B0-B7 line 16-31 */
+       "Channel0_leakage_EAM3", "FM_CPU_FPGA_JTAG_MUX_SEL",
+       "Channel1_leakage_EAM0", "FM_SCM_JTAG_MUX_SEL",
+       "Channel2_leakage_Manifold1", "FM_BRIDGE_JTAG_MUX_SEL",
+       "Channel3_leakage", "FM_CPU0_NMI_SYNC_FLOOD_N",
+       "Channel4_leakage_Manifold2", "",
+       "Channel5_leakage_EAM1", "",
+       "Channel6_leakage_CPU_DIMM", "",
+       "Channel7_leakage_EAM2", "",
+
+       /* C0-C7 line 32-47 */
+       "RSVD_RMC_GPIO3", "", "", "",
+       "", "", "", "",
+       "LEAK_DETECT_RMC_N", "", "", "",
+       "", "", "", "",
+
+       /* D0-D7 line 48-63 */
+       "PWRGD_PDB_EAMHSC0_CPLD_PG_R", "",
+       "PWRGD_PDB_EAMHSC1_CPLD_PG_R", "",
+       "PWRGD_PDB_EAMHSC2_CPLD_PG_R", "",
+       "PWRGD_PDB_EAMHSC3_CPLD_PG_R", "",
+       "AMC_BRD_PRSNT_CPLD_L", "", "", "",
+       "", "", "", "",
+
+       /* E0-E7 line 64-79 */
+       "AMC_PDB_EAMHSC0_CPLD_EN_R", "",
+       "AMC_PDB_EAMHSC1_CPLD_EN_R", "",
+       "AMC_PDB_EAMHSC2_CPLD_EN_R", "",
+       "AMC_PDB_EAMHSC3_CPLD_EN_R", "",
+       "", "", "", "",
+       "", "", "", "",
+
+       /* F0-F7 line 80-95 */
+       "PWRGD_PVDDCR_CPU1_P0", "SGPIO_READY",
+       "PWRGD_PVDDCR_CPU0_P0", "",
+       "", "", "", "",
+       "", "", "", "",
+
+       /* G0-G7 line 96-111 */
+       "PWRGD_PVDDCR_SOC_P0", "",
+       "PWRGD_PVDDIO_P0", "",
+       "PWRGD_PVDDIO_MEM_S3_P0", "",
+       "PWRGD_CHMP_CPU0_FPGA", "",
+       "PWRGD_CHIL_CPU0_FPGA", "",
+       "PWRGD_CHEH_CPU0_FPGA", "",
+       "PWRGD_CHAD_CPU0_FPGA", "FM_BMC_READY_PLD",
+       "", "",
+
+       /* H0-H7 line 112-127 */
+       "PWRGD_P3V3", "",
+       "P12V_DDR_IP_PWRGD_R", "",
+       "P12V_DDR_AH_PWRGD_R", "",
+       "PWRGD_P12V_VRM1_CPLD_PG_R", "",
+       "PWRGD_P12V_VRM0_CPLD_PG_R", "",
+       "PWRGD_PDB_HSC4_CPLD_PG_R", "",
+       "PWRGD_PVDD18_S5_P0_PG", "",
+       "PWRGD_PVDD33_S5_P0_PG", "",
+
+       /* I0-I7 line 128-143 */
+       "EAM0_BRD_PRSNT_R_L", "",
+       "EAM1_BRD_PRSNT_R_L", "",
+       "EAM2_BRD_PRSNT_R_L", "",
+       "EAM3_BRD_PRSNT_R_L", "",
+       "EAM0_CPU_MOD_PWR_GD_R", "",
+       "EAM1_CPU_MOD_PWR_GD_R", "",
+       "EAM2_CPU_MOD_PWR_GD_R", "",
+       "EAM3_CPU_MOD_PWR_GD_R", "",
+
+       /* J0-J7 line 144-159 */
+       "PRSNT_L_BIRDGE_R", "",
+       "PRSNT_R_BIRDGE_R", "",
+       "BRIDGE_L_MAIN_PG_R", "",
+       "BRIDGE_R_MAIN_PG_R", "",
+       "BRIDGE_L_STBY_PG_R", "",
+       "BRIDGE_R_STBY_PG_R", "",
+       "", "", "", "",
+
+       /* K0-K7 line 160-175 */
+       "ADC_I2C_ALERT_N", "",
+       "TEMP_I2C_ALERT_R_L", "",
+       "CPU0_VR_SMB_ALERT_CPLD_N", "",
+       "COVER_INTRUDER_R_N", "",
+       "HANDLE_INTRUDER_CPLD_N", "",
+       "IRQ_MCIO_CPLD_WAKE_R_N", "",
+       "APML_CPU0_ALERT_R_N", "",
+       "PDB_ALERT_R_N", "",
+
+       /* L0-L7 line 176-191 */
+       "CPU0_SP7R1", "", "CPU0_SP7R2", "",
+       "CPU0_SP7R3", "", "CPU0_SP7R4", "",
+       "CPU0_CORETYPE0", "", "CPU0_CORETYPE1", "",
+       "CPU0_CORETYPE2", "", "FM_BIOS_POST_CMPLT_R_N", "",
+
+       /* M0-M7 line 192-207 */
+       "EAM0_SMERR_CPLD_R_L", "",
+       "EAM1_SMERR_CPLD_R_L", "",
+       "EAM2_SMERR_CPLD_R_L", "",
+       "EAM3_SMERR_CPLD_R_L", "",
+       "CPU0_SMERR_N_R", "",
+       "CPU0_NV_SAVE_N_R", "",
+       "PDB_PWR_LOSS_CPLD_N", "",
+       "IRQ_BMC_SMI_ACTIVE_R_N", "",
+
+       /* N0-N7 line 208-223 */
+       "AMCROT_BMC_S5_RDY_R", "",
+       "AMC_RDY_R", "",
+       "AMC_STBY_PGOOD_R", "",
+       "CPU_AMC_SLP_S5_R_L", "",
+       "AMC_CPU_EAMPG_R", "",
+       "", "", "", "",
+
+       /* O0-O7 line 224-239 */
+       "HPM_PWR_FAIL", "Port80_b0",
+       "FM_DIMM_IP_FAIL", "Port80_b1",
+       "FM_DIMM_AH_FAIL", "Port80_b2",
+       "HPM_AMC_THERMTRIP_R_L", "Port80_b3",
+       "FM_CPU0_THERMTRIP_N", "Port80_b4",
+       "PVDDCR_SOC_P0_OCP_L", "Port80_b5",
+       "CPLD_SGPIO_RDY", "Port80_b6",
+       "", "Port80_b7",
+
+       /* P0-P7 line 240-255 */
+       "CPU0_SLP_S5_N_R", "NFC_VEN",
+       "CPU0_SLP_S3_N_R", "",
+       "FM_CPU0_PWRGD", "",
+       "PWRGD_RMC", "",
+       "FM_RST_CPU0_RESET_N", "",
+       "FM_PWRGD_CPU0_PWROK", "",
+       "wS5_PWR_Ready", "",
+       "wS0_ON_N", "PWRGD_P1V0_AUX";
+       status = "okay";
+};
+
+// BIOS Flash
+&spi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi2_default>;
+       status = "okay";
+       reg = <0x1e631000 0xc4>, <0x50000000 0x8000000>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               label = "pnor";
+               spi-max-frequency = <12000000>;
+               spi-tx-bus-width = <2>;
+               spi-rx-bus-width = <2>;
+               status = "okay";
+       };
+};
+
+// HOST BIOS Debug
+&uart1 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+// BMC Debug Console
+&uart5 {
+       status = "okay";
+};
+
+&uart_routing {
+       status = "okay";
+};
+
+&uhci {
+       status = "okay";
+};
+
+&vhub {
+       status = "okay";
+       pinctrl-names = "default";
+};
+
+&video {
+       status = "okay";
+       memory-region = <&video_engine_memory>;
+};
+
+&wdt1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdtrst1_default>;
+       aspeed,reset-type = "soc";
+       aspeed,external-signal;
+       aspeed,ext-push-pull;
+       aspeed,ext-active-high;
+       aspeed,ext-pulse-duration = <256>;
+       status = "okay";
+};
index 24969c82d05e6793a637f69fdc7e28157344ed57..d1a04b63df9e0cd386f2e487ed50a72fb9ba23b3 100644 (file)
                        <&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
        };
 
-       spi1_gpio: spi1-gpio {
+       spi1_gpio: spi {
                compatible = "spi-gpio";
                #address-cells = <1>;
                #size-cells = <0>;
 
-               gpio-sck = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
-               gpio-mosi = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
-               gpio-miso = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
                num-chipselects = <1>;
                cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
 
@@ -54,7 +54,8 @@
 
        front_gpio_leds {
                compatible = "gpio-leds";
-               sys_log_id {
+               led-0 {
+                       label = "sys_log_id";
                        default-state = "off";
                        gpios = <&front_leds 0 GPIO_ACTIVE_LOW>;
                };
 
        fan_gpio_leds {
                compatible = "gpio-leds";
-               fan0_blue {
+               led-0 {
+                       label = "fan0_blue";
                        retain-state-shutdown;
                        default-state = "on";
                        gpios = <&fan_leds 8 GPIO_ACTIVE_HIGH>;
                };
-               fan1_blue {
+               led-1 {
+                       label = "fan1_blue";
                        retain-state-shutdown;
                        default-state = "on";
                        gpios = <&fan_leds 9 GPIO_ACTIVE_HIGH>;
                };
-               fan2_blue {
+               led-2 {
+                       label = "fan2_blue";
                        retain-state-shutdown;
                        default-state = "on";
                        gpios = <&fan_leds 10 GPIO_ACTIVE_HIGH>;
                };
-               fan3_blue {
+               led-3 {
+                       label = "fan3_blue";
                        retain-state-shutdown;
                        default-state = "on";
                        gpios = <&fan_leds 11 GPIO_ACTIVE_HIGH>;
                };
-               fan0_amber {
+               led-4 {
+                       label = "fan0_amber";
                        retain-state-shutdown;
                        default-state = "off";
                        gpios = <&fan_leds 12 GPIO_ACTIVE_HIGH>;
                };
-               fan1_amber {
+               led-5 {
+                       label = "fan1_amber";
                        retain-state-shutdown;
                        default-state = "off";
                        gpios = <&fan_leds 13 GPIO_ACTIVE_HIGH>;
                };
-               fan2_amber {
+               led-6 {
+                       label = "fan2_amber";
                        retain-state-shutdown;
                        default-state = "off";
                        gpios = <&fan_leds 14 GPIO_ACTIVE_HIGH>;
                };
-               fan3_amber {
+               led-7 {
+                       label = "fan3_amber";
                        retain-state-shutdown;
                        default-state = "off";
                        gpios = <&fan_leds 15 GPIO_ACTIVE_HIGH>;
 
        sled1_gpio_leds {
                compatible = "gpio-leds";
-               sled1_amber {
+               led-0 {
+                       label = "sled1_amber";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled1_leds 0 GPIO_ACTIVE_LOW>;
                };
-               sled1_blue {
+               led-1 {
+                       label = "sled1_blue";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled1_leds 1 GPIO_ACTIVE_LOW>;
 
        sled2_gpio_leds {
                compatible = "gpio-leds";
-               sled2_amber {
+               led-0 {
+                       label = "sled2_amber";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled2_leds 0 GPIO_ACTIVE_LOW>;
                };
-               sled2_blue {
+               led-1 {
+                       label = "sled2_blue";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled2_leds 1 GPIO_ACTIVE_LOW>;
 
        sled3_gpio_leds {
                compatible = "gpio-leds";
-               sled3_amber {
+               led-0 {
+                       label = "sled3_amber";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled3_leds 0 GPIO_ACTIVE_LOW>;
                };
-               sled3_blue {
+               led-1 {
+                       label = "sled3_blue";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled3_leds 1 GPIO_ACTIVE_LOW>;
 
        sled4_gpio_leds {
                compatible = "gpio-leds";
-               sled4_amber {
+               led-0 {
+                       label = "sled4_amber";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled4_leds 0 GPIO_ACTIVE_LOW>;
                };
-               sled4_blue {
+               led-1 {
+                       label = "sled4_blue";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled4_leds 1 GPIO_ACTIVE_LOW>;
 
        sled5_gpio_leds {
                compatible = "gpio-leds";
-               sled5_amber {
+               led-0 {
+                       label = "sled5_amber";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled5_leds 0 GPIO_ACTIVE_LOW>;
                };
-               sled5_blue {
+               led-1 {
+                       label = "sled5_blue";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled5_leds 1 GPIO_ACTIVE_LOW>;
 
        sled6_gpio_leds {
                compatible = "gpio-leds";
-               sled6_amber {
+               led-0 {
+                       label = "sled6_amber";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled6_leds 0 GPIO_ACTIVE_LOW>;
                };
-               sled6_blue {
+               led-1 {
+                       label = "sled6_blue";
                        retain-state-shutdown;
                        default-state = "keep";
                        gpios = <&sled6_leds 1 GPIO_ACTIVE_LOW>;
        gpio-keys {
                compatible = "gpio-keys";
 
-               presence-sled1 {
+               presence-sled1-switch {
                        label = "presence-sled1";
                        gpios = <&gpio0 ASPEED_GPIO(H, 2) GPIO_ACTIVE_LOW>;
                        linux,code = <ASPEED_GPIO(H, 2)>;
                };
-               presence-sled2 {
+               presence-sled2-switch {
                        label = "presence-sled2";
                        gpios = <&gpio0 ASPEED_GPIO(H, 3) GPIO_ACTIVE_LOW>;
                        linux,code = <ASPEED_GPIO(H, 3)>;
                };
-               presence-sled3 {
+               presence-sled3-switch {
                        label = "presence-sled3";
                        gpios = <&gpio0 ASPEED_GPIO(H, 4) GPIO_ACTIVE_LOW>;
                        linux,code = <ASPEED_GPIO(H, 4)>;
                };
-               presence-sled4 {
+               presence-sled4-switch {
                        label = "presence-sled4";
                        gpios = <&gpio0 ASPEED_GPIO(H, 5) GPIO_ACTIVE_LOW>;
                        linux,code = <ASPEED_GPIO(H, 5)>;
                };
-               presence-sled5 {
+               presence-sled5-switch {
                        label = "presence-sled5";
                        gpios = <&gpio0 ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
                        linux,code = <ASPEED_GPIO(H, 6)>;
                };
-               presence-sled6 {
+               presence-sled6-switch {
                        label = "presence-sled6";
                        gpios = <&gpio0 ASPEED_GPIO(H, 7) GPIO_ACTIVE_LOW>;
                        linux,code = <ASPEED_GPIO(H, 7)>;
        sled1_ioexp: pca9539@76 {
                compatible = "nxp,pca9539";
                reg = <0x76>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                gpio-controller;
                #gpio-cells = <2>;
 
                        label = "USB-C";
                        pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
                        power-role = "dual";
-                       try-power-role = "sink";
                        data-role = "dual";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
        sled2_ioexp: pca9539@76 {
                compatible = "nxp,pca9539";
                reg = <0x76>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                gpio-controller;
                #gpio-cells = <2>;
 
                        label = "USB-C";
                        pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
                        power-role = "dual";
-                       try-power-role = "sink";
                        data-role = "dual";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
        sled3_ioexp: pca9539@76 {
                compatible = "nxp,pca9539";
                reg = <0x76>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                gpio-controller;
                #gpio-cells = <2>;
 
                        label = "USB-C";
                        pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
                        power-role = "dual";
-                       try-power-role = "sink";
                        data-role = "dual";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
        sled4_ioexp: pca9539@76 {
                compatible = "nxp,pca9539";
                reg = <0x76>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                gpio-controller;
                #gpio-cells = <2>;
 
                        label = "USB-C";
                        pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
                        power-role = "dual";
-                       try-power-role = "sink";
                        data-role = "dual";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
        sled5_ioexp: pca9539@76 {
                compatible = "nxp,pca9539";
                reg = <0x76>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                gpio-controller;
                #gpio-cells = <2>;
 
                        label = "USB-C";
                        pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
                        power-role = "dual";
-                       try-power-role = "sink";
                        data-role = "dual";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
        sled6_ioexp: pca9539@76 {
                compatible = "nxp,pca9539";
                reg = <0x76>;
-               #address-cells = <1>;
-               #size-cells = <0>;
                gpio-controller;
                #gpio-cells = <2>;
 
                        label = "USB-C";
                        pd-revision = /bits/ 8 <0x2 0x0 0x1 0x20>;
                        power-role = "dual";
-                       try-power-role = "sink";
                        data-role = "dual";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
 
 &i2c13 {
        multi-master;
-       aspeed,hw-timeout-ms = <1000>;
        status = "okay";
 
        //USB Debug Connector
 };
 
 &adc0 {
-       vref = <1800>;
+       aspeed,int-vref-microvolt = <2500000>;
        status = "okay";
 
        pinctrl-names = "default";
 };
 
 &adc1 {
-       vref = <2500>;
+       aspeed,int-vref-microvolt = <2500000>;
        status = "okay";
 
        pinctrl-names = "default";
 
 &wdt1 {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_wdtrst1_default>;
        aspeed,reset-type = "soc";
-       aspeed,external-signal;
-       aspeed,ext-push-pull;
-       aspeed,ext-active-high;
-       aspeed,ext-pulse-duration = <256>;
 };
index 450446913e36b1418fab901cde44280468990c7a..2aff21442f1166fadbcae4ecc8bbd86a5fa4859a 100644 (file)
                        gpios = <&gpio0 ASPEED_GPIO(P, 5) (GPIO_ACTIVE_HIGH|GPIO_TRANSITORY)>;
                };
 
-               led-hdd {
+       };
+
+       hdd-leds {
+               compatible = "gpio-leds";
+
+               led-0 {
                        label = "hdd_led";
                        gpios = <&io_expander13 1 GPIO_ACTIVE_LOW>;
                };
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        reg = <0>;
+
+                                       // HDD NVMe SSD FRU 0
+                                       eeprom@53 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x53>;
+                                       };
                                };
 
                                i2c0mux0ch1mux0ch1: i2c@1 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        reg = <2>;
+
+                                       // HDD NVMe SSD FRU 1
+                                       eeprom@53 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x53>;
+                                       };
                                };
 
                                i2c0mux0ch1mux0ch3: i2c@3 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        reg = <0>;
+
+                                       // HDD NVMe SSD FRU 2
+                                       eeprom@53 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x53>;
+                                       };
                                };
 
                                i2c0mux3ch1mux0ch1: i2c@1 {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        reg = <2>;
+
+                                       // HDD NVMe SSD FRU 3
+                                       eeprom@53 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x53>;
+                                       };
                                };
 
                                i2c0mux3ch1mux0ch3: i2c@3 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <1>;
+
+                       // BOOT DRIVE FRU
+                       eeprom@53 {
+                               compatible = "atmel,24c02";
+                               reg = <0x53>;
+                       };
                };
 
                i2c0mux5ch2: i2c@2 {
                        "",
                        "",
                        "",
-                       "",
+                       "shdn_force_l_cpld",
                        "",
                        "",
                        "",
        use-ncsi;
 };
 
-&udma {
-       status = "okay";
-};
-
 &uart1 {
        status = "okay";
 };
index 1c50e4a367b24d4323d18fa17cd4a435c8e78c22..5602a502d07b75630854e6a9978e8fde4cd991ae 100644 (file)
        "irq-pvddcore1-ocp-alert","",
        "","",
        /*O4-O7 line 232-239*/
-       "","","","","","","","",
+       "","","","",
+       "presence-lower-fanboard1","",
+       "presence-lower-fanboard2","",
        /*P0-P3 line 240-247*/
-       "","","","","","","","",
+       "presence-upper-fanboard1","",
+       "presence-upper-fanboard2","",
+       "","","","",
        /*P4-P7 line 248-255*/
        "","","","","","","","";
 };
index f74f463cc878186e836f73cec4e216fe7a17ebd7..0a3e2e2410636532e05f168473a1a49041801d36 100644 (file)
 };
 
 &i2c7 {
+       multi-master;
        status = "okay";
+
+       ipmb@10 {
+               compatible = "ipmb-dev";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+               i2c-protocol;
+       };
 };
 
 &i2c8 {
 &i2c12 {
        status = "okay";
 
+       gpio@27 {
+               compatible = "nxp,pca9555";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "PEX0_MODE_SEL1_R","PEX0_MODE_SEL2_R",
+                       "PEX0_MODE_SEL3_R","PEX0_MODE_SEL4_R",
+                       "","","","",
+                       "UART_MUX_SEL","RST_SMB_NIC_R_N",
+                       "RST_SMB_N","RST_CP2102N_N",
+                       "SPI_MUX_SEL","","","";
+       };
+
        // SWB FRU
        eeprom@52 {
                compatible = "atmel,24c64";
        "","BIOS_DEBUG_MODE",
        /*H0-H3 line 112-119*/
        "FM_IOEXP_U538_INT_N","",
-       "FM_IOEXP_U539_INT_N","",
-       "FM_IOEXP_U540_INT_N","",
-       "FM_IOEXP_U541_INT_N","",
+       "FM_IOEXP_U539_INT_N","FM_MODULE_PWR_EN_N_1B",
+       "FM_IOEXP_U540_INT_N","FM_MODULE_PWR_EN_N_2B",
+       "FM_IOEXP_U541_INT_N","FM_MODULE_PWR_EN_N_3B",
        /*H4-H7 line 120-127*/
-       "FM_IOEXP_PDB2_U1003_INT_N","",
+       "FM_IOEXP_PDB2_U1003_INT_N","FM_MODULE_PWR_EN_N_4B",
        "","",
        "","",
        "FM_MAIN_PWREN_RMC_EN_ISO_R","",
index 5a0975d52492c59e80e4503bf9d20883e872fc99..561633d31039d896c88d6d34c1610ce3b2674271 100644 (file)
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
diff --git a/src/arm/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts b/src/arm/aspeed/aspeed-bmc-nvidia-msx4-bmc.dts
new file mode 100644 (file)
index 0000000..44f95a3
--- /dev/null
@@ -0,0 +1,246 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "AST2600 MSX4 BMC";
+       compatible = "nvidia,msx4-bmc", "aspeed,ast2600";
+
+       aliases {
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "uart5:115200n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               gfx_memory: framebuffer {
+                       compatible = "shared-dma-pool";
+                       size = <0x01000000>;
+                       alignment = <0x01000000>;
+                       reusable;
+               };
+
+               video_engine_memory: jpegbuffer {
+                       compatible = "shared-dma-pool";
+                       size = <0x02000000>;    /* 32M */
+                       alignment = <0x01000000>;
+                       reusable;
+               };
+       };
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&fmc {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               label = "bmc";
+               status = "okay";
+               #include "openbmc-flash-layout-128.dtsi"
+       };
+
+       flash@1 {
+               compatible = "jedec,spi-nor";
+               label = "alt-bmc";
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <1>;
+               status = "okay";
+       };
+};
+
+&gfx {
+       memory-region = <&gfx_memory>;
+       status = "okay";
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "ASSERT_BMC_READY","","","","","","","",
+       /*C0-C7*/       "MON_PWR_GOOD","","","","","","","FP_ID_LED_N",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "","","FP_LED_STATUS_GREEN_N","FP_LED_STATUS_AMBER_N",
+                       "","","","",
+       /*H0-H7*/       "","","","","","","","",
+       /*I0-I7*/       "","","","","","","","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "","","","","","","","",
+       /*N0-N7*/       "","","","","","","","",
+       /*O0-O7*/       "","","","","","","","",
+       /*P0-P7*/       "MON_PWR_BTN_L","ASSERT_PWR_BTN_L","MON_RST_BTN_L",
+                       "ASSERT_RST_BTN_L","","ASSERT_NMI_BTN_L","","",
+       /*Q0-Q7*/       "","","MEMORY_HOT_0","MEMORY_HOT_1","","","","",
+       /*R0-R7*/       "ID_BTN","","","","","VBAT_GPIO","","",
+       /*S0-S7*/       "","","RST_PCA_MUX","","","","","",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "","","","","","","","",
+       /*V0-V7*/       "","","","","","","","",
+       /*W0-W7*/       "","","","","","","","",
+       /*X0-X7*/       "","","","","","","","",
+       /*Y0-Y7*/       "","","","","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+};
+
+&gpio1 {
+       gpio-line-names =
+       /*18A0-18A7*/ "","","","","","","","",
+       /*18B0-18B7*/ "","","","","","","","",
+       /*18C0-18C7*/ "","","","","","","","",
+       /*18D0-18D7*/ "","","","","","","","",
+       /*18E0-18E3*/ "","","BMC_INIT_DONE","";
+};
+
+// Devices on these busses are available after POST
+// however there isn't a great way to defer probing
+// until that point today, as the BMC doesn't
+// have direct control over when the host completes
+// POST, especially from the kernel.
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+
+       eeprom@51 {
+               compatible = "atmel,24c256";
+               reg = <0x51>;
+               pagesize = <64>;
+               label = "sku";
+       };
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&i2c6 {
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+};
+
+&i2c8 {
+       status = "okay";
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+};
+
+&i2c12 {
+       status = "okay";
+};
+
+&i2c13 {
+       status = "okay";
+};
+
+&i2c15 {
+       status = "okay";
+};
+
+&kcs1 {
+       aspeed,lpc-io-reg = <0xca0>;
+       status = "okay";
+};
+
+&kcs2 {
+       aspeed,lpc-io-reg = <0xca8>;
+       status = "okay";
+};
+
+&kcs3 {
+       aspeed,lpc-io-reg = <0xca2>;
+       status = "okay";
+};
+
+&lpc_reset {
+       status = "okay";
+};
+
+&rtc {
+       status = "okay";
+};
+
+&sgpiom0 {
+       ngpios = <80>;
+       status = "okay";
+};
+
+&uart_routing {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&video {
+       memory-region = <&video_engine_memory>;
+       status = "okay";
+};
index f8662c8ac089ff2233066477ac26de36ffe7ca42..189bc3bbb47c9edc16656a71b713562a0ac11f67 100644 (file)
                             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
-               clocks = <&syscon ASPEED_CLK_HPLL>;
                arm,cpu-registers-not-fw-configured;
                always-on;
        };
 
        edac: sdram@1e6e0000 {
-               compatible = "aspeed,ast2600-sdram-edac", "syscon";
+               compatible = "aspeed,ast2600-sdram-edac";
                reg = <0x1e6e0000 0x174>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
        };
                                interrupt-controller;
                                status = "disabled";
                        };
-
-                       udma: dma-controller@1e79e000 {
-                               compatible = "aspeed,ast2600-udma";
-                               reg = <0x1e79e000 0x1000>;
-                               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
-                               dma-channels = <28>;
-                               #dma-cells = <1>;
-                               status = "disabled";
-                       };
                };
        };
 };
index 06fac236773f2c5936e1d29c2559f79a8f9b1c4f..79eaf442c5bf83ece61986f558e704c629cec5c6 100644 (file)
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
index 9501f66d0030fbad0ac7f9a6114cea68b527d9cf..a54be7d0af0b45e12e34ebbdfac68af3e89ceaf8 100644 (file)
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
 
                                #size-cells = <0>;
 
                                eeprom@0 {
-                                       at25,byte-len = <0x80000>;
-                                       at25,addr-mode = <4>;
-                                       at25,page-size = <256>;
-
                                        compatible = "atmel,at25";
                                        reg = <0>;
                                        spi-max-frequency = <1000000>;
+
+                                       address-width = <24>;
+                                       pagesize = <256>;
+                                       size = <0x80000>;
                                };
                        };
                };
index c06d9f5e53c8049478f4fd1564b64fcf11ee8368..5e3b4bb393967025e057b1c87958d6bcd9badbc5 100644 (file)
         * The firmware will find whether the emmc2bus alias is defined, and if
         * so, it'll edit the dma-ranges property below accordingly.
         */
-       emmc2bus: emmc2bus {
+       emmc2bus: emmc2-bus@fe000000 {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <1>;
                };
        };
 
-       scb {
+       scb-bus@fc000000 {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <1>;
index 35be14150f4167be5f1361a5a6a4265a49d5c78c..5dc8d33e8ad7332d45ffd295256a075528bff701 100644 (file)
                        };
                };
 
-               base_fpga_region {
+               base_fpga_region: fpga-region {
                        compatible = "fpga-region";
                        fpga-mgr = <&fpgamgr0>;
 
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
+                       ranges;
                };
 
                can0: can@ffc00000 {
                ocram: sram@ffff0000 {
                        compatible = "mmio-sram";
                        reg = <0xffff0000 0x10000>;
+                       #address-cells = <0x1>;
+                       #size-cells = <0x1>;
+                       ranges;
                };
 
                qspi: spi@ff705000 {
index b108265e9bde42fbaf10f2e2f235b3add6eea366..a53a94678df2ecc18359db329680874fff998bc7 100644 (file)
                        };
                };
 
-               base_fpga_region {
+               base_fpga_region: fpga-region {
                        #address-cells = <0x1>;
                        #size-cells = <0x1>;
 
                        compatible = "fpga-region";
                        fpga-mgr = <&fpga_mgr>;
+                       ranges;
                };
 
                clkmgr@ffd04000 {
                ocram: sram@ffe00000 {
                        compatible = "mmio-sram";
                        reg = <0xffe00000 0x40000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
                };
 
                eccmgr: eccmgr {
diff --git a/src/arm/microchip/lan966x-pcb8385.dts b/src/arm/microchip/lan966x-pcb8385.dts
new file mode 100644 (file)
index 0000000..d189692
--- /dev/null
@@ -0,0 +1,131 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * lan966x-pcb8385.dts - Device Tree file for PCB8385
+ */
+/dts-v1/;
+
+#include "lan966x.dtsi"
+#include "dt-bindings/phy/phy-lan966x-serdes.h"
+
+/ {
+       model = "Microchip EVB - LAN9668";
+       compatible = "microchip,lan9668-pcb8385", "microchip,lan9668", "microchip,lan966";
+
+       aliases {
+               serial0 = &usart3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpio 59 GPIO_ACTIVE_LOW>;
+               open-source;
+               priority = <200>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-p1-green {
+                       label = "cu0:green";
+                       gpios = <&sgpio_out 2 0 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led-p1-yellow {
+                       label = "cu0:yellow";
+                       gpios = <&sgpio_out 2 1 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led-p2-green {
+                       label = "cu1:green";
+                       gpios = <&sgpio_out 3 0 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led-p2-yellow {
+                       label = "cu1:yellow";
+                       gpios = <&sgpio_out 3 1 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+};
+
+&aes {
+       status = "reserved"; /* Reserved by secure OS */
+};
+
+&flx0 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+       status = "okay";
+};
+
+&flx3 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+       status = "okay";
+};
+
+&gpio {
+       fc0_b_pins: fc0-b-pins {
+               /* SCL, SDA */
+               pins = "GPIO_25", "GPIO_26";
+               function = "fc0_b";
+       };
+
+       fc3_b_pins: fc3-b-pins {
+               /* RX, TX */
+               pins = "GPIO_52", "GPIO_53";
+               function = "fc3_b";
+       };
+
+       sgpio_a_pins: sgpio-a-pins {
+               /* SCK, D0, D1, LD */
+               pins = "GPIO_32", "GPIO_33", "GPIO_34", "GPIO_35";
+               function = "sgpio_a";
+       };
+};
+
+&i2c0 {
+       pinctrl-0 = <&fc0_b_pins>;
+       pinctrl-names = "default";
+       dmas = <0>, <0>;
+       i2c-analog-filter;
+       i2c-digital-filter;
+       i2c-digital-filter-width-ns = <35>;
+       i2c-sda-hold-time-ns = <1500>;
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "atmel,24c01";
+               reg = <0x54>;
+       };
+
+       eeprom@55 {
+               compatible = "atmel,24c01";
+               reg = <0x55>;
+       };
+};
+
+&sgpio {
+       pinctrl-0 = <&sgpio_a_pins>;
+       pinctrl-names = "default";
+       microchip,sgpio-port-ranges = <0 3>;
+       status = "okay";
+
+       gpio@0 {
+               ngpios = <64>;
+       };
+       gpio@1 {
+               ngpios = <64>;
+       };
+};
+
+&usart3 {
+       pinctrl-0 = <&fc3_b_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
index 46dacbbd201ddb68a7456d6fe1afafa59db90ec8..d242d7a934d0faa4d08a3663974eea8b55434408 100644 (file)
                                interrupt-controller;
                                #gpio-cells = <2>;
                                gpio-controller;
-                               #gpio-lines = <26>;
+                               #gpio-lines = <27>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
                        };
 
index 868045c650a733ba8376a811a37e3fb696f105ca..e21556f46384339fa2e22232a9d1cfcfd256ebcd 100644 (file)
                                dma-names = "tx", "rx";
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
                                atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
                                status = "disabled";
                        };
 
+                       spi0: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 34>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(5)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
                        i2c0: i2c@600 {
                                compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
                                reg = <0x600 0x200>;
                        #size-cells = <1>;
                        status = "disabled";
 
+                       uart1: serial@200 {
+                               compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 35>;
+                               clock-names = "usart";
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(8)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(7)>;
+                               dma-names = "tx", "rx";
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
+                               atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
+                               status = "disabled";
+                       };
+
                        spi1: spi@400 {
                                compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
                                reg = <0x400 0x200>;
                                dma-names = "tx", "rx";
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
                                atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
                                status = "disabled";
                        };
+
+                       spi2: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 36>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(10)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(9)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@600 {
+                               compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 36>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(10)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(9)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
                };
 
                flx3: flexcom@e182c000 {
                                dma-names = "tx", "rx";
                                atmel,use-dma-rx;
                                atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
                                atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
                                status = "disabled";
                        };
 
+                       spi3: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(12)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(11)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
                        i2c3: i2c@600 {
                                compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
                                reg = <0x600 0x200>;
                                atmel,fifo-size = <32>;
                                status = "disabled";
                        };
+
+                       i2c4: i2c@600 {
+                               compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(13)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
                };
 
                flx5: flexcom@e201c000 {
                        #size-cells = <1>;
                        status = "disabled";
 
+                       uart5: serial@200 {
+                               compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
+                               clock-names = "usart";
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(16)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(15)>;
+                               dma-names = "tx", "rx";
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
+                               atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(16)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(15)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
                        i2c5: i2c@600 {
                                compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
                                reg = <0x600 0x200>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
                                clock-names = "usart";
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(18)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(17)>;
+                               dma-names = "tx", "rx";
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
                                atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
                                atmel,fifo-size = <32>;
                                status = "disabled";
                        };
+
+                       spi6: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(18)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(17)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@600 {
+                               compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(18)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(17)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
                };
 
                flx7: flexcom@e2024000 {
                                atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
                                status = "disabled";
                        };
+
+                       spi7: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(19)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@600 {
+                               compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
+                                      <&dma1 AT91_XDMAC_DT_PERID(19)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
                };
 
                flx8: flexcom@e281c000 {
                        #size-cells = <1>;
                        status = "disabled";
 
+                       uart8: serial@200 {
+                               compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
+                               clock-names = "usart";
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(22)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(21)>;
+                               dma-names = "tx", "rx";
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
+                               atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
+                               status = "disabled";
+                       };
+
+                       spi8: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(22)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(21)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
                        i2c8: i2c@600 {
                                compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
                                reg = <0x600 0x200>;
                        #size-cells = <1>;
                        status = "disabled";
 
+                       uart9: serial@200 {
+                               compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
+                               clock-names = "usart";
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(24)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(23)>;
+                               dma-names = "tx", "rx";
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
+                               atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
+                               status = "disabled";
+                       };
+
+                       spi9: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(24)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(23)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
                        i2c9: i2c@600 {
                                compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
                                reg = <0x600 0x200>;
                        #size-cells = <1>;
                        status = "disabled";
 
+                       uart10: serial@200 {
+                               compatible = "microchip,sama7d65-usart", "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
+                               clock-names = "usart";
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(26)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(25)>;
+                               dma-names = "tx", "rx";
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               atmel,fifo-size = <32>;
+                               atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
+                               status = "disabled";
+                       };
+
+                       spi10: spi@400 {
+                               compatible = "microchip,sama7d65-spi", "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
+                               clock-names = "spi_clk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(26)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(25)>;
+                               dma-names = "tx", "rx";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
                        i2c10: i2c@600 {
                                compatible = "microchip,sama7d65-i2c", "microchip,sam9x60-i2c";
                                reg = <0x600 0x200>;
diff --git a/src/arm/microchip/usb_a9g20-dab-mmx.dtsi b/src/arm/microchip/usb_a9g20-dab-mmx.dtsi
deleted file mode 100644 (file)
index 5b1d80c..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * calao-dab-mmx.dtsi - Device Tree Include file for Calao DAB-MMX Daughter Board
- *
- * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
- */
-
-/ {
-       ahb {
-               apb {
-                       usart1: serial@fffb4000 {
-                               status = "okay";
-                       };
-
-                       usart3: serial@fffd0000 {
-                               status = "okay";
-                       };
-               };
-       };
-
-       i2c-gpio@0 {
-               status = "okay";
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               user_led1 {
-                       label = "user_led1";
-                       gpios = <&pioB 20 GPIO_ACTIVE_LOW>;
-               };
-
-/*
-* led already used by mother board but active as high
-*              user_led2 {
-*                      label = "user_led2";
-*                      gpios = <&pioB 21 GPIO_ACTIVE_LOW>;
-*              };
-*/
-               user_led3 {
-                       label = "user_led3";
-                       gpios = <&pioB 22 GPIO_ACTIVE_LOW>;
-               };
-
-               user_led4 {
-                       label = "user_led4";
-                       gpios = <&pioB 23 GPIO_ACTIVE_LOW>;
-               };
-
-               red {
-                       label = "red";
-                       gpios = <&pioB 24 GPIO_ACTIVE_LOW>;
-               };
-
-               orange {
-                       label = "orange";
-                       gpios = <&pioB 30 GPIO_ACTIVE_LOW>;
-               };
-
-               green {
-                       label = "green";
-                       gpios = <&pioB 31 GPIO_ACTIVE_LOW>;
-               };
-       };
-
-       gpio_keys {
-               compatible = "gpio-keys";
-
-               button-user-pb1 {
-                       label = "user_pb1";
-                       gpios = <&pioB 25 GPIO_ACTIVE_LOW>;
-                       linux,code = <0x100>;
-               };
-
-               button-user-pb2 {
-                       label = "user_pb2";
-                       gpios = <&pioB 13 GPIO_ACTIVE_LOW>;
-                       linux,code = <0x101>;
-               };
-
-               button-user-pb3 {
-                       label = "user_pb3";
-                       gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
-                       linux,code = <0x102>;
-               };
-
-               button-user-pb4 {
-                       label = "user_pb4";
-                       gpios = <&pioC 9 GPIO_ACTIVE_LOW>;
-                       linux,code = <0x103>;
-               };
-       };
-};
index 98c35771534e034c1bbc8f8a655b8269af697fbf..ab3c3c5713aeaa0fb335201435ee2af30f4f431b 100644 (file)
                        status = "disabled";
                        reg = <0xf0842000 0x200>;
                        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks =  <&clk NPCM7XX_CLK_AHB>;
+                       clocks = <&clk NPCM7XX_CLK_AHB>;
                        clock-names = "clk_mmc";
                        pinctrl-names = "default";
                        pinctrl-0 = <&mmc8_pins
                        status = "disabled";
                        reg = <0xf0840000 0x200>;
                        interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks =  <&clk NPCM7XX_CLK_AHB>;
+                       clocks = <&clk NPCM7XX_CLK_AHB>;
                        clock-names = "clk_sdhc";
                        pinctrl-names = "default";
                        pinctrl-0 = <&sd1_pins>;
index c60fc1971188c585a73f70eeb9b1e27ede331f81..e4be3b62a51fe16dd56c74028a7f541277a842b8 100644 (file)
                        reset-names = "dsi";
                        power-domains = <&pd_core>;
                        operating-points-v2 = <&dsi_dvfs_opp_table>;
+                       nvidia,mipi-calibrate = <&csi 3>; /* DSI pad */
                        status = "disabled";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                };
        };
 
index 4c4e6097c9163b254576e94033e1068664147119..ed1bbf86434ce98a92560a86e8dc06d4889d9ec9 100644 (file)
                        reset-names = "dsi";
                        power-domains = <&pd_core>;
                        operating-points-v2 = <&dsia_dvfs_opp_table>;
+                       nvidia,mipi-calibrate = <&csi 3>; /* DSIA pad */
                        status = "disabled";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                };
 
                dsi@54400000 {
                        reset-names = "dsi";
                        power-domains = <&pd_core>;
                        operating-points-v2 = <&dsib_dvfs_opp_table>;
+                       nvidia,mipi-calibrate = <&csi 4>; /* DSIB pad */
                        status = "disabled";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                };
        };
 
index 0029c12f16c8e5285c5b0d528f63b3226919ca65..aac7b9ef7627535efc1663a1c6898a3f7ff0593c 100644 (file)
                stdout-path = &uart1;
        };
 
+       epd_pmic_supply: regulator-epd-pmic-in {
+               compatible = "regulator-fixed";
+               regulator-name = "epd_pmic_supply";
+               gpio = <&gpio2 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <20000>;
+       };
+
        gpio_keys: gpio-keys {
                compatible = "gpio-keys";
 
                vdd-supply = <&ldo5_reg>;
        };
 
-       /* TODO: TPS65185 PMIC for E Ink at 0x68 */
+       tps65185: pmic@68 {
+               compatible = "ti,tps65185";
+               reg = <0x68>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+               vin-supply = <&epd_pmic_supply>;
+               pwr-good-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+               vcom-ctrl-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+               wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+
+               regulators {
+                       vcom_reg: vcom {
+                               regulator-name = "vcom";
+                       };
+
+                       vposneg_reg: vposneg {
+                               regulator-name = "vposneg";
+                               regulator-min-microvolt = <15000000>;
+                               regulator-max-microvolt = <15000000>;
+                       };
 
+                       v3p3_reg: v3p3 {
+                               regulator-name = "v3p3";
+                       };
+               };
+       };
 };
 
 &i2c3 {
index b1a6a9c58ac333b2de4e2537061b240571c2e694..4725ee241cb1142ad4992424ac4b2598ae26c734 100644 (file)
                };
        };
 
+       epd_pmic_supply: regulator-epd-pmic-in {
+               compatible = "regulator-fixed";
+               regulator-name = "epd_pmic_supply";
+               gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <20000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+       };
+
        sd2_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
 
-       /* TODO: TPS65185 PMIC for E Ink at 0x68 */
+       pmic@68 {
+               compatible = "ti,tps65185";
+               reg = <0x68>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_epd_pmic>;
+               pwr-good-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
+               vcom-ctrl-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio3 30 GPIO_ACTIVE_HIGH>;
+               wakeup-gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&epd_pmic_supply>;
+               interrupts-extended = <&gpio4 15 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       vcom {
+                               regulator-name = "vcom";
+                       };
+
+                       vposneg {
+                               regulator-name = "vposneg";
+                               regulator-min-microvolt = <15000000>;
+                               regulator-max-microvolt = <15000000>;
+                       };
+
+                       v3p3 {
+                               regulator-name = "v3p3";
+                       };
+               };
+       };
 };
 
 &i2c3 {
                >;
        };
 
+       pinctrl_epd_pmic: epd-pmic-grp {
+               fsl,pins = <
+                       /* PWRUP */
+                       MX50_PAD_EPDC_PWRCTRL1__GPIO3_30        0x0
+                       /* WAKEUP */
+                       MX50_PAD_EPDC_PWRCTRL0__GPIO3_29        0x0
+                       /* VCOMCTRL */
+                       MX50_PAD_EPDC_VCOM0__GPIO4_21           0x0
+                       /* PWRGOOD: enable internal 100k pull-up */
+                       MX50_PAD_EPDC_PWRSTAT__GPIO3_28         0xe0
+                       /* INT: enable internal 100k pull-up */
+                       MX50_PAD_ECSPI1_SS0__GPIO4_15           0xe0
+               >;
+       };
+
+       pinctrl_epd_pmic_supply: epd-pmic-supply-grp {
+               fsl,pins = <
+                       MX50_PAD_EIM_CRE__GPIO1_27              0x0
+               >;
+       };
+
        pinctrl_gpiokeys: gpiokeysgrp {
                fsl,pins = <
                        MX50_PAD_CSPI_MISO__GPIO4_10            0x0
index 45bcfd7faf9db628479359b5c0a26e1011a7c2d3..76e6043e1f9184d5df9baac6695d97cb4f149b7e 100644 (file)
                        compatible = "fsl,imx6q-gpmi-nand";
                        reg = <0x00112000 0x2000>, <0x00114000 0x2000>;
                        reg-names = "gpmi-nand", "bch";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "bch";
                        clocks = <&clks IMX6QDL_CLK_GPMI_IO>,
                        gpc: gpc@20dc000 {
                                compatible = "fsl,imx6q-gpc";
                                reg = <0x020dc000 0x4000>;
+                               #address-cells = <0>;
                                interrupt-controller;
                                #interrupt-cells = <3>;
                                interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
index b6c336e3079e3c8da7736fb1638beda2027bc7fb..4c655579f43efbf1560098a6e5d418e66c614a62 100644 (file)
                stdout-path = &uart1;
        };
 
+       epd_pmic_supply: regulator-epd-pmic-in {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+               regulator-name = "epd_pmic_supply";
+               gpio = <&gpio2 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <20000>;
+       };
+
        gpio_keys: gpio-keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                touchscreen-inverted-x;
        };
 
-       /* TODO: TPS65185 PMIC for E Ink at 0x68 */
+       tps65185: pmic@68 {
+               compatible = "ti,tps65185";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tps65185_gpio>;
+               reg = <0x68>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+               vin-supply = <&epd_pmic_supply>;
+               pwr-good-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+               vcom-ctrl-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+               wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+
+               regulators {
+                       vcom_reg: vcom {
+                               regulator-name = "vcom";
+                       };
+
+                       vposneg_reg: vposneg {
+                               regulator-name = "vposneg";
+                               regulator-min-microvolt = <15000000>;
+                               regulator-max-microvolt = <15000000>;
+                       };
 
+                       v3p3_reg: v3p3 {
+                               regulator-name = "v3p3";
+                       };
+               };
+       };
 };
 
 &i2c3 {
                >;
        };
 
+       pinctrl_epd_pmic_supply: epdc-pmic-supplygrp {
+               fsl,pins = <
+                       MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 0x40010059 /* pwrall */
+               >;
+       };
+
        pinctrl_gpio_keys: gpio-keysgrp {
                fsl,pins = <
                        MX6SL_PAD_SD1_DAT1__GPIO5_IO08  0x17059
                >;
        };
 
+       pinctrl_tps65185_gpio: tps65185-gpio-grp {
+               fsl,pins = <
+                       MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03        0x40010059 /* vcom_ctrl */
+                       MX6SL_PAD_EPDC_PWRCTRL0__GPIO2_IO07     0x40010059 /* wakeup */
+                       MX6SL_PAD_EPDC_PWRCTRL1__GPIO2_IO08     0x40010059 /* enable */
+                       MX6SL_PAD_EPDC_PWRCTRL2__GPIO2_IO09     0x17059 /* nINT */
+                       MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13      0x17059 /* pwr-good */
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
index 5ba6f15e9ed5aa80bfbb3c0ad6b962b71d50404f..58b9ccd9b605d428af25924518b546569f6ee61d 100644 (file)
        compatible = "kobo,tolino-shine3", "fsl,imx6sl";
 };
 
+&epd_pmic_supply {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+};
+
 &gpio_keys {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio_keys>;
                >;
        };
 
+       pinctrl_epd_pmic_supply: epdc-pmic-supplygrp {
+               fsl,pins = <
+                       MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 0x40010059
+               >;
+       };
+
        pinctrl_gpio_keys: gpio-keysgrp {
                fsl,pins = <
                        MX6SL_PAD_SD1_DAT1__GPIO5_IO08  0x17059 /* PWR_SW */
                >;
        };
 
+       pinctrl_tps65185_gpio: tps65185-gpio-grp {
+               fsl,pins = <
+                       MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03        0x40010059 /* vcom_ctrl */
+                       MX6SL_PAD_EPDC_PWRCTRL0__GPIO2_IO07     0x40010059 /* wakeup */
+                       MX6SL_PAD_EPDC_PWRCTRL1__GPIO2_IO08     0x40010059 /* enable */
+                       MX6SL_PAD_EPDC_PWRCTRL2__GPIO2_IO09     0x17059 /* nINT */
+                       MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13      0x17059 /* pwr-good */
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
        pinctrl-0 = <&pinctrl_ricoh_gpio>;
 };
 
+&tps65185 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tps65185_gpio>;
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
index 7381fb7f89126e29db05491e751a0d6e519f22f2..13b0474aa42c0b421874d9736a6e1ff01cdc1234 100644 (file)
                        };
 
                        lcdif: lcdif@20f8000 {
-                               compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
+                               compatible = "fsl,imx6sl-lcdif", "fsl,imx6sx-lcdif";
                                reg = <0x020f8000 0x4000>;
                                interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
index f81aeacf514209a9612885573a3ea557023fb19c..f5e88764a08cc235b078aea90d00514c0873653d 100644 (file)
 / {
        model = "Kobo Clara 2E";
        compatible = "kobo,clara2e-b", "kobo,clara2e", "fsl,imx6sll";
+
+       epd_pmic_supply: regulator-epd-pmic-in {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+               regulator-name = "epd_pmic_supply";
+               gpio = <&gpio2 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <20000>;
+       };
 };
 
 &i2c2 {
-       /* EPD PMIC JD9930 at 0x18 */
+       jd9930: pmic@18 {
+               compatible = "fitipower,jd9930", "fitipower,fp9931";
+               reg = <0x18>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_jd9930_gpio>;
+               vin-supply = <&epd_pmic_supply>;
+               pg-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+               en-ts-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+               fitipower,tdly-ms = <2 2 2 2>;
+
+               regulators {
+                       vcom_reg: vcom {
+                               regulator-name = "vcom";
+                               /*
+                                * For optimal performance these should be
+                                * tuned on a per batch basis e.g. using
+                                * overlays.
+                                */
+                               regulator-min-microvolt = <2352840>;
+                               regulator-max-microvolt = <2352840>;
+                       };
+
+                       vposneg_reg: vposneg {
+                               regulator-name = "vposneg";
+                               regulator-min-microvolt = <15060000>;
+                               regulator-max-microvolt = <15060000>;
+                       };
+
+                       v3p3_reg: v3p3 {
+                               regulator-name = "v3p3";
+                       };
+               };
+       };
+};
+
+&iomuxc {
+       pinctrl_jd9930_gpio: jd9930-gpiogrp {
+               fsl,pins = <
+                       MX6SLL_PAD_EPDC_PWR_CTRL0__GPIO2_IO07   0x17059 /* PG */
+                       MX6SLL_PAD_EPDC_PWR_CTRL1__GPIO2_IO08   0x40010059 /* EN */
+                       MX6SLL_PAD_EPDC_PWR_CTRL2__GPIO2_IO09   0x40010059 /* EN_TS */
+               >;
+       };
+
+       pinctrl_epd_pmic_supply: epd-pmic-supplygrp {
+               fsl,pins = <
+                       MX6SLL_PAD_EPDC_PWR_WAKE__GPIO2_IO14    0x40010059
+               >;
+       };
 };
index 18c9ac8f7560ee144dad980f8beaf308fbca8c97..1000ee8b807aaeabd5cf5b45247c56418cada850 100644 (file)
        soc-supply = <&dcdc1_reg>;
 };
 
+&epd_pmic_supply {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+};
+
 &gpio_keys {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio_keys>;
                >;
        };
 
+       pinctrl_epd_pmic_supply: epdc-pmic-supplygrp {
+               fsl,pins = <
+                       MX6SLL_PAD_EPDC_PWR_WAKE__GPIO2_IO14 0x40010059
+               >;
+       };
+
        pinctrl_gpio_keys: gpio-keysgrp {
                fsl,pins = <
                        MX6SLL_PAD_SD1_DATA1__GPIO5_IO08        0x17059 /* PWR_SW */
                >;
        };
 
+       pinctrl_tps65185_gpio: tps65185-gpio-grp {
+               fsl,pins = <
+                       MX6SLL_PAD_EPDC_VCOM0__GPIO2_IO03       0x40010059 /* vcom_ctrl */
+                       MX6SLL_PAD_EPDC_PWR_CTRL0__GPIO2_IO07   0x40010059 /* wakeup */
+                       MX6SLL_PAD_EPDC_PWR_CTRL1__GPIO2_IO08   0x40010059 /* enable */
+                       MX6SLL_PAD_EPDC_PWR_CTRL2__GPIO2_IO09   0x17059 /* nINT */
+                       MX6SLL_PAD_EPDC_PWR_STAT__GPIO2_IO13    0x17059 /* pwr-good */
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX6SLL_PAD_UART1_TXD__UART1_DCE_TX 0x1b0b1
        pinctrl-0 = <&pinctrl_ricoh_gpio>;
 };
 
+&tps65185 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tps65185_gpio>;
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
index 704870e8c10c1fbb8b0957f3dd24cb7fc4ec91b3..c96669605d1d87dc45723556205211b7984879fc 100644 (file)
                        };
 
                        lcdif: lcd-controller@20f8000 {
-                               compatible = "fsl,imx6sll-lcdif", "fsl,imx28-lcdif";
+                               compatible = "fsl,imx6sll-lcdif", "fsl,imx6sx-lcdif";
                                reg = <0x020f8000 0x4000>;
                                interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clks IMX6SLL_CLK_LCDIF_PIX>,
index 5132b575b001564b9767605ae7ff044701516673..1426f357d47448ab0ed289a5233f71c1e365033e 100644 (file)
                gpmi: nand-controller@1806000 {
                        compatible = "fsl,imx6sx-gpmi-nand";
                        #address-cells = <1>;
-                       #size-cells = <1>;
+                       #size-cells = <0>;
                        reg = <0x01806000 0x2000>, <0x01808000 0x4000>;
                        reg-names = "gpmi-nand", "bch";
                        interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
index 63c6f17bb7c9f2795803684cd3604aee7c24634a..837a3cfa8e7c87c36f16c1deaea2ee623e406dba 100644 (file)
                        gpios = <&gpio 4 1 0>; /* GPI_P3 1 */
                };
 
-               key1 {
+               key-1 {
                        label = "KEY1";
                        linux,code = <1>;
                        gpios = <&pca9532 0 0>;
                };
 
-               key2 {
+               key-2 {
                        label = "KEY2";
                        linux,code = <2>;
                        gpios = <&pca9532 1 0>;
                };
 
-               key3 {
+               key-3 {
                        label = "KEY3";
                        linux,code = <3>;
                        gpios = <&pca9532 2 0>;
                };
 
-               key4 {
+               key-4 {
                        label = "KEY4";
                        linux,code = <4>;
                        gpios = <&pca9532 3 0>;
                };
 
-               joy0 {
+               key-joy0 {
                        label = "Joystick Key 0";
                        linux,code = <10>;
                        gpios = <&gpio 2 0 0>; /* P2.0 */
                };
 
-               joy1 {
+               key-joy1 {
                        label = "Joystick Key 1";
                        linux,code = <11>;
                        gpios = <&gpio 2 1 0>; /* P2.1 */
                };
 
-               joy2 {
+               key-joy2 {
                        label = "Joystick Key 2";
                        linux,code = <12>;
                        gpios = <&gpio 2 2 0>; /* P2.2 */
                };
 
-               joy3 {
+               key-joy3 {
                        label = "Joystick Key 3";
                        linux,code = <13>;
                        gpios = <&gpio 2 3 0>; /* P2.3 */
                };
 
-               joy4 {
+               key-joy4 {
                        label = "Joystick Key 4";
                        linux,code = <14>;
                        gpios = <&gpio 2 4 0>; /* P2.4 */
index 21a6d0bca1e8a7be064cb83ccccfe9070da9e838..0f96ea0337a1f15e59d4139f2a07ab035af47063 100644 (file)
        cs-gpios = <&gpio 3 5 0>;
        status = "okay";
 
-       eeprom: at25@0 {
+       eeprom: eeprom@0 {
                compatible = "atmel,at25";
                reg = <0>;
                spi-max-frequency = <5000000>;
                pl022,wait-state = <0>;
                pl022,duplex = <0>;
 
-               at25,byte-len = <0x8000>;
-               at25,addr-mode = <2>;
-               at25,page-size = <64>;
+               size = <0x8000>;
+               address-width = <16>;
+               pagesize = <64>;
        };
 };
 
index 2236901a003130d972bd09c208b296eeb3e2023d..e94df78def18a0764484f2c42bb3d4c8e7899cbb 100644 (file)
                /*
                 * Enable either SLC or MLC
                 */
-               slc: flash@20020000 {
+               slc: nand-controller@20020000 {
                        compatible = "nxp,lpc3220-slc";
                        reg = <0x20020000 0x1000>;
+                       interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk LPC32XX_CLK_SLC>;
+                       dmas = <&dma 1 1>;
+                       dma-names = "rx-tx";
                        status = "disabled";
                };
 
-               mlc: flash@200a8000 {
+               mlc: nand-controller@200a8000 {
                        compatible = "nxp,lpc3220-mlc";
                        reg = <0x200a8000 0x11000>;
                        interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk LPC32XX_CLK_MLC>;
+                       dmas = <&dma 12 1>;
+                       dma-names = "rx-tx";
                        status = "disabled";
                };
 
                        interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clk LPC32XX_CLK_DMA>;
                        clock-names = "apb_pclk";
+                       dma-channels = <8>;
+                       dma-requests = <16>;
+                       lli-bus-interface-ahb1;
+                       lli-bus-interface-ahb2;
+                       mem-bus-interface-ahb1;
+                       mem-bus-interface-ahb2;
+                       memcpy-burst-size = <256>;
+                       memcpy-bus-width = <32>;
                        #dma-cells = <2>;
                };
 
-               usb {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "simple-bus";
-                       ranges = <0x0 0x31020000 0x00001000>;
-
-                       /*
-                        * Enable either ohci or usbd (gadget)!
-                        */
-                       ohci: usb@0 {
-                               compatible = "nxp,ohci-nxp", "usb-ohci";
-                               reg = <0x0 0x300>;
-                               interrupt-parent = <&sic1>;
-                               interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&usbclk LPC32XX_USB_CLK_HOST>;
-                               status = "disabled";
-                       };
+               /*
+                * Enable either ohci or usbd (gadget)!
+                */
+               ohci: usb@31020000 {
+                       compatible = "nxp,ohci-nxp", "usb-ohci";
+                       reg = <0x31020000 0x300>;
+                       interrupt-parent = <&sic1>;
+                       interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&usbclk LPC32XX_USB_CLK_HOST>;
+                       status = "disabled";
+               };
 
-                       usbd: usbd@0 {
-                               compatible = "nxp,lpc3220-udc";
-                               reg = <0x0 0x300>;
-                               interrupt-parent = <&sic1>;
-                               interrupts = <29 IRQ_TYPE_LEVEL_HIGH>,
-                                            <30 IRQ_TYPE_LEVEL_HIGH>,
-                                            <28 IRQ_TYPE_LEVEL_HIGH>,
-                                            <26 IRQ_TYPE_LEVEL_LOW>;
-                               clocks = <&usbclk LPC32XX_USB_CLK_DEVICE>;
-                               status = "disabled";
-                       };
+               usbd: usbd@31020000 {
+                       compatible = "nxp,lpc3220-udc";
+                       reg = <0x31020000 0x300>;
+                       interrupt-parent = <&sic1>;
+                       interrupts = <29 IRQ_TYPE_LEVEL_HIGH>,
+                                    <30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <28 IRQ_TYPE_LEVEL_HIGH>,
+                                    <26 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&usbclk LPC32XX_USB_CLK_DEVICE>;
+                       status = "disabled";
+               };
 
-                       i2cusb: i2c@300 {
-                               compatible = "nxp,pnx-i2c";
-                               reg = <0x300 0x100>;
-                               interrupt-parent = <&sic1>;
-                               interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&usbclk LPC32XX_USB_CLK_I2C>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
+               i2cusb: i2c@31020300 {
+                       compatible = "nxp,pnx-i2c";
+                       reg = <0x31020300 0x100>;
+                       interrupt-parent = <&sic1>;
+                       interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&usbclk LPC32XX_USB_CLK_I2C>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
 
-                       usbclk: clock-controller@f00 {
-                               compatible = "nxp,lpc3220-usb-clk";
-                               reg = <0xf00 0x100>;
-                               #clock-cells = <1>;
-                       };
+               usbclk: clock-controller@31020f00 {
+                       compatible = "nxp,lpc3220-usb-clk";
+                       reg = <0x31020f00 0x100>;
+                       #clock-cells = <1>;
                };
 
                clcd: clcd@31040000 {
                                compatible = "arm,pl022", "arm,primecell";
                                reg = <0x20084000 0x1000>;
                                interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clk LPC32XX_CLK_SSP0>;
-                               clock-names = "apb_pclk";
+                               clocks = <&clk LPC32XX_CLK_SSP0>, <&clk LPC32XX_CLK_SSP0>;
+                               clock-names = "sspclk", "apb_pclk";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                compatible = "nxp,lpc3220-spi";
                                reg = <0x20088000 0x1000>;
                                clocks = <&clk LPC32XX_CLK_SPI1>;
+                               dmas = <&dmamux 11 1 0>;
+                               dma-names = "rx-tx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                compatible = "arm,pl022", "arm,primecell";
                                reg = <0x2008c000 0x1000>;
                                interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&clk LPC32XX_CLK_SSP1>;
-                               clock-names = "apb_pclk";
+                               clocks = <&clk LPC32XX_CLK_SSP1>, <&clk LPC32XX_CLK_SSP1>;
+                               clock-names = "sspclk", "apb_pclk";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                compatible = "nxp,lpc3220-spi";
                                reg = <0x20090000 0x1000>;
                                clocks = <&clk LPC32XX_CLK_SPI2>;
+                               dmas = <&dmamux 3 1 0>;
+                               dma-names = "rx-tx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        i2s0: i2s@20094000 {
                                compatible = "nxp,lpc3220-i2s";
                                reg = <0x20094000 0x1000>;
+                               interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk LPC32XX_CLK_I2S0>;
+                               dmas = <&dma 0 1>, <&dma 13 1>;
+                               dma-names = "rx", "tx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
                        i2s1: i2s@2009c000 {
                                compatible = "nxp,lpc3220-i2s";
                                reg = <0x2009c000 0x1000>;
+                               interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk LPC32XX_CLK_I2S1>;
+                               dmas = <&dma 2 1>, <&dmamux 10 1 1>;
+                               dma-names = "rx", "tx";
+                               #sound-dai-cells = <0>;
                                status = "disabled";
                        };
 
                        mpwm: pwm@400e8000 {
                                compatible = "nxp,lpc3220-motor-pwm";
                                reg = <0x400e8000 0x78>;
+                               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+                               clocks = <&clk LPC32XX_CLK_MCPWM>;
                                #pwm-cells = <3>;
                                status = "disabled";
                        };
                        ranges = <0x20000000 0x20000000 0x30000000>;
 
                        /* System Control Block */
-                       scb {
-                               compatible = "simple-bus";
-                               ranges = <0x0 0x40004000 0x00001000>;
+                       syscon@40004000 {
+                               compatible = "nxp,lpc3220-scb", "syscon", "simple-mfd";
+                               reg = <0x40004000 0x1000>;
                                #address-cells = <1>;
                                #size-cells = <1>;
+                               ranges = <0 0x40004000 0x1000>;
 
                                clk: clock-controller@0 {
                                        compatible = "nxp,lpc3220-clk";
                                        reg = <0x00 0x114>;
                                        #clock-cells = <1>;
-
                                        clocks = <&xtal_32k>, <&xtal>;
                                        clock-names = "xtal_32k", "xtal";
                                };
+
+                               dmamux: dma-router@78 {
+                                       compatible = "nxp,lpc3220-dmamux";
+                                       reg = <0x78 0x8>;
+                                       dma-masters = <&dma>;
+                                       #dma-cells = <3>;
+                               };
                        };
 
                        mic: interrupt-controller@40008000 {
index 34b0cf35fdac8b0bc34ffd27f70f900878a15ff7..d3ae6c6a6f83e2b77849eeeb0c348a8efd9464dd 100644 (file)
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
-
        firmware-name = "qcom/apq8074/adsp.mbn";
 
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
        };
 
        regulators-1 {
index 51a7a3fb36d88eeb8dbccefbab672aceb1e46428..bcf14a3b13a1b4b3455ef4069df2f3d9c5c7f9ff 100644 (file)
                        resets = <&gcc GCC_MSS_RESTART>;
                        reset-names = "mss_restart";
 
-                       power-domains = <&rpmpd MSM8226_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        power-domain-names = "cx";
 
                        qcom,ext-bhs-reg = <&tcsr_regs_1 0x194>;
                                              <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
 
-                       power-domains = <&rpmpd MSM8226_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        power-domain-names = "cx";
 
                        clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
index 5ee919dce75b31a977e8e1ebd0d02413b20b6270..5a39abd6f3ce99736f82fcb1dfd5c8cfc1bace45 100644 (file)
        };
 };
 
+&gsbi2 {
+       qcom,mode = <GSBI_PROT_I2C>;
+
+       status = "okay";
+};
+
+&gsbi2_i2c {
+       status = "okay";
+
+       light-sensor@39 {
+               compatible = "amstaos,tmd2772";
+               reg = <0x39>;
+               interrupts-extended = <&pm8921_gpio 6 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8921_l9>;
+               vddio-supply = <&pm8921_lvs4>;
+
+               /* TODO: Proximity doesn't work */
+               amstaos,proximity-diodes = <0>;
+               led-max-microamp = <100000>;
+
+               pinctrl-0 = <&prox_sensor_int>;
+               pinctrl-names = "default";
+       };
+};
+
 &gsbi5 {
        qcom,mode = <GSBI_PROT_I2C_UART>;
        status = "okay";
                bias-disable;
                drive-strength = <2>;
        };
+
+       nfc_default: nfc-default-state {
+               irq-pins {
+                       pins = "gpio106";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               firmware-pins {
+                       pins = "gpio92";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
 };
 
 &pm8921 {
        interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
 };
 
+&pm8921_gpio {
+       prox_sensor_int: prox-sensor-int-state {
+               pins = "gpio6";
+               function = "normal";
+               input-enable;
+               bias-disable;
+       };
+
+       nfc_enable: nfc-enable-state {
+               pins = "gpio21";
+               function = "normal";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               power-source = <PM8921_GPIO_S4>;
+       };
+};
+
 &rpm {
        regulators {
                compatible = "qcom,rpm-pm8921-regulators";
        dr_mode = "otg";
        status = "okay";
 };
+
+&gsbi7 {
+       qcom,mode = <GSBI_PROT_I2C>;
+
+       status = "okay";
+};
+
+&gsbi7_i2c {
+       status = "okay";
+
+       nfc@2b {
+               compatible = "nxp,pn544-i2c";
+               reg = <0x2b>;
+               interrupts-extended = <&tlmm 106 IRQ_TYPE_EDGE_RISING>;
+               enable-gpios = <&pm8921_gpio 21 GPIO_ACTIVE_HIGH>;
+               firmware-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&nfc_default &nfc_enable>;
+               pinctrl-names = "default";
+       };
+};
+
+&gsbi12 {
+       qcom,mode = <GSBI_PROT_I2C>;
+
+       status = "okay";
+};
+
+&gsbi12_i2c {
+       status = "okay";
+
+       accelerometer@18 {
+               compatible = "bosch,bma254";
+               reg = <0x18>;
+               vdd-supply = <&pm8921_l9>;
+               vddio-supply = <&pm8921_lvs4>;
+
+               mount-matrix =  "-1", "0", "0",
+                               "0",  "-1", "0",
+                               "0",  "0", "1";
+       };
+
+       magnetometer@2e {
+               compatible = "yamaha,yas532";
+               reg = <0x2e>;
+               vdd-supply = <&pm8921_l9>;
+               iovdd-supply = <&pm8921_lvs4>;
+
+               /* TODO: Figure out Mount Matrix */
+       };
+};
index 38bd4fd8dda5cc9c66f4e03ed4c1088b559ee04a..fd28401cebb5e15cf9eb5bfdeff29d7b0c580b1a 100644 (file)
                                };
                        };
 
+                       i2c2_default_state: i2c2-default-state {
+                               i2c2-pins {
+                                       pins = "gpio12", "gpio13";
+                                       function = "gsbi2";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+
+                       i2c2_sleep_state: i2c2-sleep-state {
+                               i2c2-pins {
+                                       pins = "gpio12", "gpio13";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-bus-hold;
+                               };
+                       };
+
                        i2c3_default_state: i2c3-default-state {
                                i2c3-pins {
                                        pins = "gpio16", "gpio17";
                                };
                        };
 
+                       i2c7_default_state: i2c7-default-state {
+                               i2c7-pins {
+                                       pins = "gpio32", "gpio33";
+                                       function = "gsbi7";
+                                       drive-strength = <8>;
+                                       bias-disable;
+                               };
+                       };
+
+                       i2c7_sleep_state: i2c7-sleep-state {
+                               i2c7-pins {
+                                       pins = "gpio32", "gpio33";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-bus-hold;
+                               };
+                       };
+
                        i2c8_default_state: i2c8-default-state {
                                i2c8-pins {
                                        pins = "gpio36", "gpio37";
                        };
                };
 
+               gsbi2: gsbi@16100000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       reg = <0x16100000 0x100>;
+                       ranges;
+                       cell-index = <2>;
+                       clocks = <&gcc GSBI2_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       status = "disabled";
+
+                       gsbi2_i2c: i2c@16180000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16180000 0x1000>;
+                               pinctrl-0 = <&i2c2_default_state>;
+                               pinctrl-1 = <&i2c2_sleep_state>;
+                               pinctrl-names = "default", "sleep";
+                               interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI2_QUP_CLK>,
+                                        <&gcc GSBI2_H_CLK>;
+                               clock-names = "core",
+                                             "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
                gsbi3: gsbi@16200000 {
                        compatible = "qcom,gsbi-v1.0.0";
                        reg = <0x16200000 0x100>;
                        };
                };
 
+               gsbi7: gsbi@16600000 {
+                       compatible = "qcom,gsbi-v1.0.0";
+                       reg = <0x16600000 0x100>;
+                       ranges;
+                       cell-index = <7>;
+                       clocks = <&gcc GSBI7_H_CLK>;
+                       clock-names = "iface";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       status = "disabled";
+
+                       gsbi7_i2c: i2c@16680000 {
+                               compatible = "qcom,i2c-qup-v1.1.1";
+                               reg = <0x16680000 0x1000>;
+                               pinctrl-0 = <&i2c7_default_state>;
+                               pinctrl-1 = <&i2c7_sleep_state>;
+                               pinctrl-names = "default", "sleep";
+                               interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GSBI7_QUP_CLK>,
+                                        <&gcc GSBI7_H_CLK>;
+                               clock-names = "core",
+                                             "iface";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+               };
+
                gsbi8: gsbi@1a000000 {
                        compatible = "qcom,gsbi-v1.0.0";
                        reg = <0x1a000000 0x100>;
index b3127f0383cf1eba2addc567fc5c0081e9931845..e34d7b864e30990497d83b5ee464bf495007cfac 100644 (file)
@@ -7,7 +7,7 @@
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 / {
-       model = "LGE MSM 8974 HAMMERHEAD";
+       model = "LG Nexus 5";
        compatible = "lge,hammerhead", "qcom,msm8974";
        chassis-type = "handset";
 
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <815000>;
-                       regulator-max-microvolt = <900000>;
-               };
        };
 
        regulators-1 {
index b7a1367d3470551de12af699ef150434dc0302b8..7f61f80761e1c0e055e5a5123097f9ce5dd30cc5 100644 (file)
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <815000>;
-                       regulator-max-microvolt = <900000>;
-               };
        };
 
        regulators-1 {
index d7322fc6a09559fdbed1684388ac46024cfe63f3..96682d82b1c3169482854993fb7ad06d7fb14086 100644 (file)
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
        };
 
        regulators-1 {
index 7e119370f3375573e284587d48aef6dca3ed707f..2a82ddce94a28eb1b50fdaffd5ba5de86e165156 100644 (file)
@@ -1,14 +1,15 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
 
-#include <dt-bindings/interconnect/qcom,msm8974.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,dsi-phy-28nm.h>
 #include <dt-bindings/clock/qcom,gcc-msm8974.h>
 #include <dt-bindings/clock/qcom,mmcc-msm8974.h>
 #include <dt-bindings/clock/qcom,rpmcc.h>
-#include <dt-bindings/reset/qcom,gcc-msm8974.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interconnect/qcom,msm8974.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
+#include <dt-bindings/reset/qcom,gcc-msm8974.h>
 
 / {
        #address-cells = <1>;
                                        clocks = <&xo_board>;
                                        clock-names = "xo";
                                };
+
+                               rpmpd: power-controller {
+                                       compatible = "qcom,msm8974-rpmpd";
+                                       #power-domain-cells = <1>;
+                                       operating-points-v2 = <&rpmpd_opp_table>;
+
+                                       rpmpd_opp_table: opp-table {
+                                               compatible = "operating-points-v2";
+
+                                               rpmpd_opp_ret: opp1 {
+                                                       opp-level = <1>;
+                                               };
+
+                                               rpmpd_opp_svs_krait: opp2 {
+                                                       opp-level = <2>;
+                                               };
+
+                                               rpmpd_opp_svs_soc: opp3 {
+                                                       opp-level = <3>;
+                                               };
+
+                                               rpmpd_opp_nom: opp4 {
+                                                       opp-level = <4>;
+                                               };
+
+                                               rpmpd_opp_turbo: opp5 {
+                                                       opp-level = <5>;
+                                               };
+
+                                               rpmpd_opp_super_turbo: opp6 {
+                                                       opp-level = <6>;
+                                               };
+                                       };
+                               };
                        };
                };
        };
                                              <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
 
+                       power-domains = <&rpmpd MSM8974_VDDCX>;
+                       power-domain-names = "cx";
+
                        qcom,smem-states = <&wcnss_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
                        resets = <&gcc GCC_MSS_RESTART>;
                        reset-names = "mss_restart";
 
+                       power-domains = <&rpmpd MSM8974_VDDCX>;
+                       power-domain-names = "cx";
+
                        qcom,halt-regs = <&tcsr_mutex 0x1180 0x1200 0x1280>;
 
                        qcom,smem-states = <&modem_smp2p_out 0>;
                        clocks = <&xo_board>;
                        clock-names = "xo";
 
+                       power-domains = <&rpmpd MSM8974_VDDCX>;
+                       power-domain-names = "cx";
+
                        memory-region = <&adsp_region>;
 
                        qcom,smem-states = <&adsp_smp2p_out 0>;
index fe227fd3f908e219e20bffe3561390ca6568468e..a081aeadd1d4d9539d38588811be8ac5ba0b79a4 100644 (file)
        status = "okay";
 
        vddmx-supply = <&pm8841_s1>;
-       vddcx-supply = <&pm8841_s2>;
        vddpx-supply = <&pm8941_s3>;
 
        pinctrl-names = "default";
 
 &remoteproc_adsp {
        status = "okay";
-       cx-supply = <&pm8841_s2>;
 };
 
 &remoteproc_mss {
        status = "okay";
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
index b896cc1ad6f7d4b3f8e70ad4460867b04519a6d9..402372834c53d6ef71a72156d1be7d30ff1feee5 100644 (file)
@@ -70,7 +70,6 @@
 
 &pronto {
        vddmx-supply = <&pm8841_s1>;
-       vddcx-supply = <&pm8841_s2>;
        vddpx-supply = <&pm8941_s3>;
 
        pinctrl-0 = <&wcnss_pin_a>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <815000>;
-                       regulator-max-microvolt = <900000>;
-               };
        };
 
        regulators-1 {
index 88ff6535477bffefe475cc5fe927b3cc5d223084..258bbbecd92738247ac1aa22492bcb8e87e13385 100644 (file)
 
 &pronto {
        vddmx-supply = <&pm8841_s1>;
-       vddcx-supply = <&pm8841_s2>;
        vddpx-supply = <&pm8941_s3>;
 
        pinctrl-names = "default";
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
-
        status = "okay";
 };
 
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <875000>;
-                       regulator-max-microvolt = <1050000>;
-                       regulator-always-on;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <1050000>;
                        regulator-max-microvolt = <1050000>;
index d3959741d2ea9e2a3dace149034d42353fbe9828..56a1a25f3df38bf4a9ba5ea4ad9e8a2d1d1c0a95 100644 (file)
 
 &remoteproc_adsp {
        status = "okay";
-       cx-supply = <&pma8084_s2>;
 };
 
 &remoteproc_mss {
        status = "okay";
-       cx-supply = <&pma8084_s2>;
        mss-supply = <&pma8084_s6>;
        mx-supply = <&pma8084_s1>;
        pll-supply = <&pma8084_l12>;
                        regulator-always-on;
                };
 
-               pma8084_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pma8084_s3: s3 {
                        regulator-min-microvolt = <1300000>;
                        regulator-max-microvolt = <1300000>;
        };
 };
 
+&rpmpd {
+       compatible = "qcom,msm8974pro-pma8084-rpmpd";
+};
+
 &sdhc_1 {
        status = "okay";
 
index 6af7c71c715847f137ec2da41d70f679a8e1c04b..3d2de30b495e6e6176eb38b95ec67634fbcb29ca 100644 (file)
 };
 
 &remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
        status = "okay";
 };
 
 &remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
        mss-supply = <&pm8841_s3>;
        mx-supply = <&pm8841_s1>;
        pll-supply = <&pm8941_l12>;
                        regulator-max-microvolt = <1050000>;
                };
 
-               pm8841_s2: s2 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
-
                pm8841_s3: s3 {
                        regulator-min-microvolt = <500000>;
                        regulator-max-microvolt = <1050000>;
                };
-
-               pm8841_s4: s4 {
-                       regulator-min-microvolt = <500000>;
-                       regulator-max-microvolt = <1050000>;
-               };
        };
 
        regulators-1 {
diff --git a/src/arm/renesas/gr-peach-audiocamerashield.dtsi b/src/arm/renesas/gr-peach-audiocamerashield.dtsi
deleted file mode 100644 (file)
index 8d77579..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Device Tree Source for the GR-Peach audiocamera shield expansion board
- *
- * Copyright (C) 2017 Jacopo Mondi <jacopo+renesas@jmondi.org>
- */
-
-#include "r7s72100.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/pinctrl/r7s72100-pinctrl.h>
-
-/ {
-       /* On-board camera clock. */
-       camera_clk: camera_clk {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <27000000>;
-       };
-};
-
-&pinctrl {
-       i2c1_pins: i2c1 {
-               /* P1_2 as SCL; P1_3 as SDA */
-               pinmux = <RZA1_PINMUX(1, 2, 1)>, <RZA1_PINMUX(1, 3, 1)>;
-       };
-
-       vio_pins: vio {
-               /* CEU pins: VIO_D[0-10], VIO_VD, VIO_HD, VIO_CLK */
-               pinmux = <RZA1_PINMUX(1, 0, 5)>, /* VIO_VD */
-                        <RZA1_PINMUX(1, 1, 5)>, /* VIO_HD */
-                        <RZA1_PINMUX(2, 0, 7)>, /* VIO_D0 */
-                        <RZA1_PINMUX(2, 1, 7)>, /* VIO_D1 */
-                        <RZA1_PINMUX(2, 2, 7)>, /* VIO_D2 */
-                        <RZA1_PINMUX(2, 3, 7)>, /* VIO_D3 */
-                        <RZA1_PINMUX(2, 4, 7)>, /* VIO_D4 */
-                        <RZA1_PINMUX(2, 5, 7)>, /* VIO_D5 */
-                        <RZA1_PINMUX(2, 6, 7)>, /* VIO_D6 */
-                        <RZA1_PINMUX(2, 7, 7)>, /* VIO_D7 */
-                        <RZA1_PINMUX(10, 0, 6)>; /* VIO_CLK */
-       };
-};
-
-&i2c1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c1_pins>;
-
-       status = "okay";
-       clock-frequency = <100000>;
-
-       camera@48 {
-               compatible = "aptina,mt9v111";
-               reg = <0x48>;
-
-               clocks = <&camera_clk>;
-
-               port {
-                       mt9v111_out: endpoint {
-                               remote-endpoint = <&ceu_in>;
-                       };
-               };
-       };
-};
-
-&ceu {
-       pinctrl-names = "default";
-       pinctrl-0 = <&vio_pins>;
-
-       status = "okay";
-
-       port {
-               ceu_in: endpoint {
-                       remote-endpoint = <&mt9v111_out>;
-               };
-       };
-};
diff --git a/src/arm/renesas/r8a77xx-aa121td01-panel.dtsi b/src/arm/renesas/r8a77xx-aa121td01-panel.dtsi
deleted file mode 100644 (file)
index 6e7589e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Common file for the AA121TD01 panel connected to Renesas R-Car boards
- *
- * Copyright (C) 2015 Renesas Electronics Corp.
- */
-
-/ {
-       panel {
-               compatible = "mitsubishi,aa121td01", "panel-lvds";
-
-               width-mm = <261>;
-               height-mm = <163>;
-               data-mapping = "jeida-18";
-
-               panel-timing {
-                       /* 1280x800 @60Hz */
-                       clock-frequency = <71000000>;
-                       hactive = <1280>;
-                       vactive = <800>;
-                       hsync-len = <70>;
-                       hfront-porch = <20>;
-                       hback-porch = <70>;
-                       vsync-len = <5>;
-                       vfront-porch = <3>;
-                       vback-porch = <15>;
-               };
-
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&lvds_connector>;
-                       };
-               };
-       };
-};
-
-&lvds_connector {
-       remote-endpoint = <&panel_in>;
-};
index 8debb77803bb9a58ed98f02c12a583012ceabaa8..f4f760aff28bdb779735cd561878a3cfdaf7927b 100644 (file)
                                 <&sysctrl R9A06G032_CLK_SWITCH>;
                        clock-names = "hclk", "clk";
                        power-domains = <&sysctrl>;
+                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dlr", "switch", "prp", "hub", "ptrn";
                        status = "disabled";
 
                        ethernet-ports {
                                <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
                };
 
+               /*
+                * The GPIO mapping to the corresponding pins is not obvious.
+                * See the hardware documentation for details.
+                */
+               gpio0: gpio@5000b000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x5000b000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&sysctrl R9A06G032_HCLK_GPIO0>;
+                       clock-names = "bus";
+
+                       /* GPIO0a[0]      connected to pin  GPIO0      */
+                       /* GPIO0a[1..2]   connected to pins GPIO3..4   */
+                       /* GPIO0a[3..4]   connected to pins GPIO9..10  */
+                       /* GPIO0a[5]      connected to pin  GPIO12     */
+                       /* GPIO0a[6..7]   connected to pins GPIO15..16 */
+                       /* GPIO0a[8..9]   connected to pins GPIO21..22 */
+                       /* GPIO0a[10]     connected to pin  GPIO24     */
+                       /* GPIO0a[11..12] connected to pins GPIO27..28 */
+                       /* GPIO0a[13..14] connected to pins GPIO33..34 */
+                       /* GPIO0a[15]     connected to pin  GPIO36     */
+                       /* GPIO0a[16..17] connected to pins GPIO39..40 */
+                       /* GPIO0a[18..19] connected to pins GPIO45..46 */
+                       /* GPIO0a[20]     connected to pin  GPIO48     */
+                       /* GPIO0a[21..22] connected to pins GPIO51..52 */
+                       /* GPIO0a[23..24] connected to pins GPIO57..58 */
+                       /* GPIO0a[25..31] connected to pins GPIO62..68 */
+                       gpio0a: gpio-port@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+
+                               interrupt-controller;
+                               interrupt-parent = <&gpioirqmux>;
+                               interrupts = < 0  1  2  3  4  5  6  7
+                                              8  9 10 11 12 13 14 15
+                                             16 17 18 19 20 21 22 23
+                                             24 25 26 27 28 29 30 31>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       /* GPIO0b[0..1]   connected to pins GPIO1..2   */
+                       /* GPIO0b[2..5]   connected to pins GPIO5..8   */
+                       /* GPIO0b[6]      connected to pin  GPIO11     */
+                       /* GPIO0b[7..8]   connected to pins GPIO13..14 */
+                       /* GPIO0b[9..12]  connected to pins GPIO17..20 */
+                       /* GPIO0b[13]     connected to pin  GPIO23     */
+                       /* GPIO0b[14..15] connected to pins GPIO25..26 */
+                       /* GPIO0b[16..19] connected to pins GPIO29..32 */
+                       /* GPIO0b[20]     connected to pin  GPIO35     */
+                       /* GPIO0b[21..22] connected to pins GPIO37..38 */
+                       /* GPIO0b[23..26] connected to pins GPIO41..44 */
+                       /* GPIO0b[27]     connected to pin  GPIO47     */
+                       /* GPIO0b[28..29] connected to pins GPIO49..50 */
+                       /* GPIO0b[30..31] connected to pins GPIO53..54 */
+                       gpio0b: gpio-port@1 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+                       };
+               };
+
+               gpio1: gpio@5000c000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x5000c000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&sysctrl R9A06G032_HCLK_GPIO1>;
+                       clock-names = "bus";
+
+                       /* GPIO1a[0..4]  connected to pins GPIO69..73 */
+                       /* GPIO1a[5..31] connected to pins GPIO95..121 */
+                       gpio1a: gpio-port@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+
+                               interrupt-controller;
+                               interrupt-parent = <&gpioirqmux>;
+                               interrupts = <32 33 34 35 36 37 38 39
+                                             40 41 42 43 44 45 46 47
+                                             48 49 50 51 52 53 54 55
+                                             56 57 58 59 60 61 62 63>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       /* GPIO1b[0..1]   connected to pins GPIO55..56 */
+                       /* GPIO1b[2..4]   connected to pins GPIO59..61 */
+                       /* GPIO1b[5..25]  connected to pins GPIO74..94 */
+                       /* GPIO1b[26..31] connected to pins GPIO150..155 */
+                       gpio1b: gpio-port@1 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+                       };
+               };
+
+               gpio2: gpio@5000d000 {
+                       compatible = "snps,dw-apb-gpio";
+                       reg = <0x5000d000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&sysctrl R9A06G032_HCLK_GPIO2>;
+                       clock-names = "bus";
+
+                       /* GPIO2a[0..27]  connected to pins GPIO122..149 */
+                       /* GPIO2a[28..31] connected to pins GPIO156..159 */
+                       gpio2a: gpio-port@0 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <32>;
+
+                               interrupt-controller;
+                               interrupt-parent = <&gpioirqmux>;
+                               interrupts = <64 65 66 67 68 69 70 71
+                                             72 73 74 75 76 77 78 79
+                                             80 81 82 83 84 85 86 87
+                                             88 89 90 91 92 93 94 95>;
+                               #interrupt-cells = <2>;
+                       };
+
+                       /* GPIO2b[0..9] connected to pins GPIO160..169 */
+                       gpio2b: gpio-port@1 {
+                               compatible = "snps,dw-apb-gpio-port";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               snps,nr-gpios = <10>;
+                       };
+               };
+
+               gpioirqmux: interrupt-controller@51000480 {
+                       compatible = "renesas,r9a06g032-gpioirqmux", "renesas,rzn1-gpioirqmux";
+                       reg = <0x51000480 0x20>;
+                       #interrupt-cells = <1>;
+                       #address-cells = <0>;
+                       interrupt-map-mask = <0x7f>;
+
+                       /*
+                        * Example mapping entry. Board DTs need to overwrite
+                        * 'interrupt-map' with their specific mapping. Check
+                        * the irqmux binding documentation for details.
+                        */
+                       interrupt-map = <0 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+
+                       status = "disabled";
+               };
+
                can0: can@52104000 {
                        compatible = "renesas,r9a06g032-sja1000", "renesas,rzn1-sja1000";
                        reg = <0x52104000 0x800>;
index fca21ebb224b5feeb25452514130fd45c3bcff6d..78afae42f8b212aefef3a00835b45da9925498e3 100644 (file)
@@ -23,9 +23,6 @@
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
-               mshc0 = &emmc;
-               mshc1 = &sdmmc;
-               mshc2 = &sdio;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
index 7477fc5da3ec999f5bcc70994296ade5752eae4e..4e5e7509de48765fb7c755af42eb57756bcdc413 100644 (file)
                power-domains = <&power RK3288_PD_VIDEO>;
        };
 
+       hevc: video-codec@ff9c0000 {
+               compatible = "rockchip,rk3288-vdec";
+               reg = <0x0 0xff9c0000 0x0 0x440>;
+               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>,
+                        <&cru SCLK_HEVC_CABAC>, <&cru SCLK_HEVC_CORE>;
+               clock-names = "axi", "ahb", "cabac", "core";
+               assigned-clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>,
+                                 <&cru SCLK_HEVC_CABAC>, <&cru SCLK_HEVC_CORE>;
+               assigned-clock-rates = <400000000>, <100000000>,
+                                      <300000000>, <300000000>;
+               iommus = <&hevc_mmu>;
+               power-domains = <&power RK3288_PD_HEVC>;
+       };
+
        hevc_mmu: iommu@ff9c0440 {
                compatible = "rockchip,iommu";
                reg = <0x0 0xff9c0440 0x0 0x40>, <0x0 0xff9c0480 0x0 0x40>;
                clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>;
                clock-names = "aclk", "iface";
                #iommu-cells = <0>;
-               status = "disabled";
+               power-domains = <&power RK3288_PD_HEVC>;
        };
 
        gpu: gpu@ffa30000 {
diff --git a/src/arm/samsung/s3c6400.dtsi b/src/arm/samsung/s3c6400.dtsi
deleted file mode 100644 (file)
index 7cc785a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Samsung's S3C6400 SoC device tree source
- *
- * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com>
- *
- * Samsung's S3C6400 SoC device nodes are listed in this file. S3C6400
- * based board files can include this file and provide values for board specific
- * bindings.
- *
- * Note: This file does not include device nodes for all the controllers in
- * S3C6400 SoC. As device tree coverage for S3C6400 increases, additional
- * nodes can be added to this file.
- */
-
-#include "s3c64xx.dtsi"
-
-/ {
-       compatible = "samsung,s3c6400";
-};
-
-&vic0 {
-       valid-mask = <0xfffffe1f>;
-       valid-wakeup-mask = <0x00200004>;
-};
-
-&vic1 {
-       valid-mask = <0xffffffff>;
-       valid-wakeup-mask = <0x53020000>;
-};
-
-&soc {
-       clocks: clock-controller@7e00f000 {
-               compatible = "samsung,s3c6400-clock";
-               reg = <0x7e00f000 0x1000>;
-               #clock-cells = <1>;
-       };
-};
diff --git a/src/arm/st/spear320s.dtsi b/src/arm/st/spear320s.dtsi
deleted file mode 100644 (file)
index 133236d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * DTS file for SPEAr320s SoC
- *
- * Copyright 2021 Herve Codina <herve.codina@bootlin.com>
- */
-
-/include/ "spear320.dtsi"
-
-/ {
-       ahb {
-               apb {
-                       gpiopinctrl: gpio@b3000000 {
-                               /*
-                                * The "RM0321 SPEAr320s address and map
-                                * registers" document mentions interrupt 6
-                                * (NPGIO_INTR) for the PL_GPIO interrupt.
-                                */
-                               interrupts = <6>;
-                               interrupt-parent = <&shirq>;
-                       };
-               };
-       };
-};
index afa417b34b25ffd7351885071e72989dd635b382..f4b1c4eb64f286934a9bc269bbb72bc432c1521c 100644 (file)
@@ -48,8 +48,9 @@
 /dts-v1/;
 #include "stm32f429.dtsi"
 #include "stm32f429-pinctrl.dtsi"
-#include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/media/video-interfaces.h>
 
 / {
                dma-ranges = <0xc0000000 0x0 0x10000000>;
        };
 
-       vdda: regulator-vdda {
-               compatible = "regulator-fixed";
-               regulator-name = "vdda";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       vref: regulator-vref {
-               compatible = "regulator-fixed";
-               regulator-name = "vref";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       vdd_panel: vdd-panel {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_panel";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
        leds {
                compatible = "gpio-leds";
-               led-green {
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpiog 6 1>;
                        linux,default-trigger = "heartbeat";
                };
                led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
                        gpios = <&gpiog 7 1>;
                };
                led-red {
+                       color = <LED_COLOR_ID_RED>;
                        gpios = <&gpiog 10 1>;
                };
                led-blue {
+                       color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpiog 12 1>;
                };
        };
                };
        };
 
-       usbotg_hs_phy: usbphy {
-               #phy-cells = <0>;
-               compatible = "usb-nop-xceiv";
-               clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
-               clock-names = "main_clk";
+       mmc_vcard: mmc_vcard {
+               compatible = "regulator-fixed";
+               regulator-name = "mmc_vcard";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
        };
 
        panel_rgb: panel-rgb {
                };
        };
 
-       mmc_vcard: mmc_vcard {
+       vdda: regulator-vdda {
                compatible = "regulator-fixed";
-               regulator-name = "mmc_vcard";
+               regulator-name = "vdda";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       vref: regulator-vref {
+               compatible = "regulator-fixed";
+               regulator-name = "vref";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       usbotg_hs_phy: usbphy {
+               #phy-cells = <0>;
+               compatible = "usb-nop-xceiv";
+               clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
+               clock-names = "main_clk";
+       };
+
+       vdd_panel: vdd-panel {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_panel";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
index e9ac37b6eca0e42caca61ef5b515298ee54edaff..6772c1f9d03e48b643b7f738047bc943fcad1589 100644 (file)
@@ -45,6 +45,7 @@
 #include "stm32f746-pinctrl.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32746g-EVAL board";
 
        leds {
                compatible = "gpio-leds";
-               led-green {
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpiof 10 1>;
                        linux,default-trigger = "heartbeat";
                };
                led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
                        gpios = <&stmfx_pinctrl 17 1>;
                };
                led-red {
+                       color = <LED_COLOR_ID_RED>;
                        gpios = <&gpiob 7 1>;
                };
                led-blue {
+                       color = <LED_COLOR_ID_BLUE>;
                        gpios = <&stmfx_pinctrl 19 1>;
                };
        };
                };
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
+       };
+
        usbotg_hs_phy: usb-phy {
                #phy-cells = <0>;
                compatible = "usb-nop-xceiv";
index a3cb4aabdd5add2678eae4ad0770c2e62c62371b..ded369abee4f3719ebd74ff0b273067711f66248 100644 (file)
 /dts-v1/;
 #include "stm32f429.dtsi"
 #include "stm32f429-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32F429i-DISCO board";
        leds {
                compatible = "gpio-leds";
                led-red {
+                       color = <LED_COLOR_ID_RED>;
                        gpios = <&gpiog 14 0>;
                };
-               led-green {
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpiog 13 0>;
                        linux,default-trigger = "heartbeat";
                };
                };
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
+       };
+
        /* This turns on vbus for otg for host mode (dwc2) */
        vcc5v_otg: vcc5v-otg-regulator {
                compatible = "regulator-fixed";
index 8a4f8ddd083d40252f1d872fd4e711bc125f4589..943afba06b5fe99b4b6e078fb8eea6a8d2b543fa 100644 (file)
@@ -50,6 +50,7 @@
 #include "stm32f469-pinctrl.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32F469i-DISCO board";
 
        leds {
                compatible = "gpio-leds";
-               led-green {
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpiog 6 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
                led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
                        gpios = <&gpiod 4 GPIO_ACTIVE_LOW>;
                };
                led-red {
+                       color = <LED_COLOR_ID_RED>;
                        gpios = <&gpiod 5 GPIO_ACTIVE_LOW>;
                };
                led-blue {
+                       color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpiok 3 GPIO_ACTIVE_LOW>;
                };
        };
                };
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
+       };
+
        /* This turns on vbus for otg for host mode (dwc2) */
        vcc5v_otg: vcc5v-otg-regulator {
                compatible = "regulator-fixed";
index b57dbdce2f405e813cda136de0dbff4ec8b0bce7..61ca41ea523ebefc1e1f750cbd8334127fec2053 100644 (file)
@@ -46,6 +46,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>
 
 / {
        model = "STMicroelectronics STM32F746-DISCO board";
@@ -80,7 +81,9 @@
 
        leds {
                compatible = "gpio-leds";
-               led-usr {
+               led_usr: led-usr {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpioi 1 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
                };
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_usr>;
+               };
+       };
+
        usbotg_hs_phy: usb-phy {
                #phy-cells = <0>;
                compatible = "usb-nop-xceiv";
index 535cfdc4681ccf8a7d975a19ec6bfe51642722a0..e5854fa1071bdc22b853446b0db7937b41924c70 100644 (file)
@@ -45,6 +45,7 @@
 #include "stm32f769-pinctrl.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32F769-DISCO board";
 
        leds {
                compatible = "gpio-leds";
-               led-usr2 {
+               led_usr2: led-usr2 {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpioj 5 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
                led-usr1 {
+                       color = <LED_COLOR_ID_RED>;
                        gpios = <&gpioj 13 GPIO_ACTIVE_HIGH>;
                };
                led-usr3 {
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpioa 12 GPIO_ACTIVE_HIGH>;
                };
        };
                };
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_usr2>;
+               };
+       };
+
        usbotg_hs_phy: usb-phy {
                #phy-cells = <0>;
                compatible = "usb-nop-xceiv";
index 8451a54a9a08738eba9e60339ab96bd43a8cb94b..78d55b77db7ce8e0015c2e430881c95f98a9e941 100644 (file)
@@ -43,6 +43,8 @@
 /dts-v1/;
 #include "stm32h743.dtsi"
 #include "stm32h7-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32H743i-Discovery board";
                regulator-max-microvolt = <3300000>;
                regulator-always-on;
        };
+
+       leds {
+               compatible = "gpio-leds";
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpioi 12 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
+                       gpios = <&gpioi 13 GPIO_ACTIVE_LOW>;
+               };
+
+               led-red {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpioi 14 GPIO_ACTIVE_LOW>;
+               };
+
+               led-blue {
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpioi 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
+       };
 };
 
 &clk_hse {
index 4b0ced27b80eae1a116b60ae2fba0536b1236075..e5e10b0758eeae2175402e1d22c24a8b4deb73be 100644 (file)
@@ -43,6 +43,8 @@
 /dts-v1/;
 #include "stm32h743.dtsi"
 #include "stm32h7-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32H743i-EVAL board";
                serial0 = &usart1;
        };
 
+       led {
+               compatible = "gpio-leds";
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpiof 10 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+
+               led-red {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
+       };
+
        vdda: regulator-vdda {
                compatible = "regulator-fixed";
                regulator-name = "vdda";
index 99f0255dae8ece88e63a1027bed6341144fde1d7..c9dcc680e26d6b376ca77fb31067a7872e1b20b9 100644 (file)
@@ -8,6 +8,7 @@
 #include "stm32h7-pinctrl.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 
 / {
        model = "STMicroelectronics STM32H747i-Discovery board";
 
        leds {
                compatible = "gpio-leds";
-               led-green {
+               led_green: led-green {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
                        gpios = <&gpioi 12 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
                led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
                        gpios = <&gpioi 13 GPIO_ACTIVE_LOW>;
                };
                led-red {
+                       color = <LED_COLOR_ID_RED>;
                        gpios = <&gpioi 14 GPIO_ACTIVE_LOW>;
                };
                led-blue {
+                       color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpioi 15 GPIO_ACTIVE_LOW>;
                };
        };
                        gpios = <&gpiok 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
                };
        };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_green>;
+               };
+       };
 };
 
 &clk_hse {
index f894ee35b3db2c915896cdf47a7a197951e0e21a..8dcf68b212b45614c5a9b65e876b85506c7913ab 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               led-blue {
+               led_blue: led-blue {
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
+
+               led-red {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_blue>;
+               };
        };
 
        panel_backlight: panel-backlight {
index f6c478dbd0418e456078fae3bdc1bd69c1041210..49dd555cc228cb2216fa65c8a962ed93f9033569 100644 (file)
 
        led {
                compatible = "gpio-leds";
-               led-blue {
+               led_blue: led-blue {
                        gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_BLUE>;
                };
+
+               led-red {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_blue>;
+               };
        };
 
        sd_switch: regulator-sd_switch {
index 8f99c30f1af1e35cb91400483d52d90ad9eb7b4a..4e46d58bf61f4b02e6eb5b1fa3a2d0d3df10e018 100644 (file)
 };
 
 &spi1 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&spi1_pins_a>;
+       pinctrl-1 = <&spi1_sleep_pins_a>;
        status = "disabled";
 };
 
index 8cea6facd27ba52aafdf0340095257c55f13407a..7ed2b01958fef43fa3442da9a2b0295814f1daa4 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/mfd/st,stpmic1.h>
 
 / {
 
        led {
                compatible = "gpio-leds";
-               led-blue {
-                       label = "heartbeat";
+               led_blue: led-blue {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
+
+               led-red {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_blue>;
+               };
        };
 
        sound {
diff --git a/src/arm/st/stm32mp15xxab-pinctrl.dtsi b/src/arm/st/stm32mp15xxab-pinctrl.dtsi
deleted file mode 100644 (file)
index 328dad1..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
-/*
- * Copyright (C) STMicroelectronics 2019 - All Rights Reserved
- * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
- */
-
-&pinctrl {
-       st,package = <STM32MP_PKG_AB>;
-
-       gpioa: gpio@50002000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 0 16>;
-       };
-
-       gpiob: gpio@50003000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 16 16>;
-       };
-
-       gpioc: gpio@50004000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 32 16>;
-       };
-
-       gpiod: gpio@50005000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 48 16>;
-       };
-
-       gpioe: gpio@50006000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 64 16>;
-       };
-
-       gpiof: gpio@50007000 {
-               status = "okay";
-               ngpios = <6>;
-               gpio-ranges = <&pinctrl 6 86 6>;
-       };
-
-       gpiog: gpio@50008000 {
-               status = "okay";
-               ngpios = <10>;
-               gpio-ranges = <&pinctrl 6 102 10>;
-       };
-
-       gpioh: gpio@50009000 {
-               status = "okay";
-               ngpios = <2>;
-               gpio-ranges = <&pinctrl 0 112 2>;
-       };
-};
index ed194469973e039171f9840e6d654eda1445d382..a827153ba6bb5e977eb64ed43161e09983de89fd 100644 (file)
@@ -22,6 +22,7 @@
                        linux,default-trigger = "default-on";
                        gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
                        default-state = "on";
+                       panic-indicator;
                };
                led_wlan: led-wlan {
                        label = "onrisc:blue:wlan";
diff --git a/src/arm/ti/omap/am335x-base0033.dts b/src/arm/ti/omap/am335x-base0033.dts
deleted file mode 100644 (file)
index 46078af..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * am335x-base0033.dts - Device Tree file for IGEP AQUILA EXPANSION
- *
- * Copyright (C) 2013 ISEE 2007 SL - https://www.isee.biz
- */
-
-#include "am335x-igep0033.dtsi"
-
-/ {
-       model = "IGEP COM AM335x on AQUILA Expansion";
-       compatible = "isee,am335x-base0033", "isee,am335x-igep0033", "ti,am33xx";
-
-       hdmi {
-               compatible = "ti,tilcdc,slave";
-               i2c = <&i2c0>;
-               pinctrl-names = "default", "off";
-               pinctrl-0 = <&nxp_hdmi_pins>;
-               pinctrl-1 = <&nxp_hdmi_off_pins>;
-               status = "okay";
-       };
-
-       leds_base {
-               pinctrl-names = "default";
-               pinctrl-0 = <&leds_base_pins>;
-
-               compatible = "gpio-leds";
-
-               led0 {
-                       label = "base:red:user";
-                       gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;   /* gpio1_21 */
-                       default-state = "off";
-               };
-
-               led1 {
-                       label = "base:green:user";
-                       gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;    /* gpio2_0 */
-                       default-state = "off";
-               };
-       };
-};
-
-&am33xx_pinmux {
-       nxp_hdmi_pins: nxp-hdmi-pins {
-               pinctrl-single,pins = <
-                       AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT, MUX_MODE3)      /* xdma_event_intr0.clkout1 */
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA0, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA1, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA2, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA3, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA4, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA5, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA6, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA7, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA8, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA9, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA10, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA11, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA12, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA13, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA14, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_DATA15, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_HSYNC, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_PCLK, PIN_OUTPUT, MUX_MODE0)
-                       AM33XX_PADCONF(AM335X_PIN_LCD_AC_BIAS_EN, PIN_OUTPUT, MUX_MODE0)
-               >;
-       };
-       nxp_hdmi_off_pins: nxp-hdmi-off-pins {
-               pinctrl-single,pins = <
-                       AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR0, PIN_OUTPUT, MUX_MODE3)      /* xdma_event_intr0.clkout1 */
-               >;
-       };
-
-       leds_base_pins: leds-base-pins {
-               pinctrl-single,pins = <
-                       AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE7)      /* gpmc_a5.gpio1_21 */
-                       AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_OUTPUT_PULLDOWN, MUX_MODE7)    /* gpmc_csn3.gpio2_0 */
-               >;
-       };
-};
-
-&lcdc {
-       status = "okay";
-};
-
-&i2c0 {
-       eeprom: eeprom@50 {
-               compatible = "atmel,24c256";
-               reg = <0x50>;
-       };
-};
diff --git a/src/arm/ti/omap/am3703.dtsi b/src/arm/ti/omap/am3703.dtsi
deleted file mode 100644 (file)
index 2b994ae..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (C) 2020 André Hentschel <nerv@dawncrow.de>
- */
-
-#include "omap36xx.dtsi"
-
-&iva {
-       status = "disabled";
-};
-
-&sgx_module {
-       status = "disabled";
-};
diff --git a/src/arm/ti/omap/am3715.dtsi b/src/arm/ti/omap/am3715.dtsi
deleted file mode 100644 (file)
index ab328e8..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (C) 2020 André Hentschel <nerv@dawncrow.de>
- */
-
-#include "omap36xx.dtsi"
-
-&iva {
-       status = "disabled";
-};
index c9282f57ffa5e634192178fc49686072c6dbff53..db6c53bbaf51cb62b9aabc4b9839a117c0663cbc 100644 (file)
                                scm_conf1: scm_conf@1c04 {
                                        compatible = "syscon";
                                        reg = <0x1c04 0x0020>;
-                                       #syscon-cells = <2>;
                                };
 
                                scm_conf_pcie: scm_conf@1c24 {
index b9a9e6e45266fd6615ca742742c9a0f076e262b8..222613d2a4d188828690bda11ac26a9d24eedb5e 100644 (file)
                        interrupts = <93>;
                };
 
-               wd_timer2: wdt@49016000 {
+               wd_timer2: watchdog@49016000 {
                        compatible = "ti,omap2-wdt";
                        ti,hwmods = "wd_timer2";
                        reg = <0x49016000 0x80>;
index 817474ee2d13c52466f899cb7acdbce8290c3902..959069e247300bb2527a6b7b0fd3fbdf9f9a6f21 100644 (file)
                        status = "disabled";
                };
 
-               wdt2: wdt@48314000 {
+               wdt2: watchdog@48314000 {
                        compatible = "ti,omap3-wdt";
                        reg = <0x48314000 0x80>;
                        ti,hwmods = "wd_timer2";
diff --git a/src/arm/ti/omap/omap3430es1-clocks.dtsi b/src/arm/ti/omap/omap3430es1-clocks.dtsi
deleted file mode 100644 (file)
index 6e754d2..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Device Tree Source for OMAP3430 ES1 clock data
- *
- * Copyright (C) 2013 Texas Instruments, Inc.
- */
-&cm_clocks {
-       gfx_l3_ck: gfx_l3_ck@b10 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&l3_ick>;
-               reg = <0x0b10>;
-               ti,bit-shift = <0>;
-       };
-
-       gfx_l3_fck: gfx_l3_fck@b40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&l3_ick>;
-               ti,max-div = <7>;
-               reg = <0x0b40>;
-               ti,index-starts-at-one;
-       };
-
-       gfx_l3_ick: gfx_l3_ick {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&gfx_l3_ck>;
-               clock-mult = <1>;
-               clock-div = <1>;
-       };
-
-       gfx_cg1_ck: gfx_cg1_ck@b00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&gfx_l3_fck>;
-               reg = <0x0b00>;
-               ti,bit-shift = <1>;
-       };
-
-       gfx_cg2_ck: gfx_cg2_ck@b00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&gfx_l3_fck>;
-               reg = <0x0b00>;
-               ti,bit-shift = <2>;
-       };
-
-       clock@a00 {
-               compatible = "ti,clksel";
-               reg = <0xa00>;
-               #clock-cells = <2>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               d2d_26m_fck: clock-d2d-26m-fck@3 {
-                       reg = <3>;
-                       #clock-cells = <0>;
-                       compatible = "ti,wait-gate-clock";
-                       clock-output-names = "d2d_26m_fck";
-                       clocks = <&sys_ck>;
-               };
-
-               fshostusb_fck: clock-fshostusb-fck@5 {
-                       reg = <5>;
-                       #clock-cells = <0>;
-                       compatible = "ti,wait-gate-clock";
-                       clock-output-names = "fshostusb_fck";
-                       clocks = <&core_48m_fck>;
-               };
-
-               ssi_ssr_gate_fck_3430es1: clock-ssi-ssr-gate-fck-3430es1@0 {
-                       reg = <0>;
-                       #clock-cells = <0>;
-                       compatible = "ti,composite-no-wait-gate-clock";
-                       clock-output-names = "ssi_ssr_gate_fck_3430es1";
-                       clocks = <&corex2_fck>;
-               };
-       };
-
-       clock@a40 {
-               compatible = "ti,clksel";
-               reg = <0xa40>;
-               #clock-cells = <2>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               ssi_ssr_div_fck_3430es1: clock-ssi-ssr-div-fck-3430es1@8 {
-                       reg = <8>;
-                       #clock-cells = <0>;
-                       compatible = "ti,composite-divider-clock";
-                       clock-output-names = "ssi_ssr_div_fck_3430es1";
-                       clocks = <&corex2_fck>;
-                       ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>;
-               };
-
-               usb_l4_div_ick: clock-usb-l4-div-ick@4 {
-                       reg = <4>;
-                       #clock-cells = <0>;
-                       compatible = "ti,composite-divider-clock";
-                       clock-output-names = "usb_l4_div_ick";
-                       clocks = <&l4_ick>;
-                       ti,max-div = <1>;
-                       ti,index-starts-at-one;
-               };
-       };
-
-       ssi_ssr_fck: ssi_ssr_fck_3430es1 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-clock";
-               clocks = <&ssi_ssr_gate_fck_3430es1>, <&ssi_ssr_div_fck_3430es1>;
-       };
-
-       ssi_sst_fck: ssi_sst_fck_3430es1 {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&ssi_ssr_fck>;
-               clock-mult = <1>;
-               clock-div = <2>;
-       };
-
-       clock@a10 {
-               compatible = "ti,clksel";
-               reg = <0xa10>;
-               #clock-cells = <2>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               hsotgusb_ick_3430es1: clock-hsotgusb-ick-3430es1@4 {
-                       reg = <4>;
-                       #clock-cells = <0>;
-                       compatible = "ti,omap3-no-wait-interface-clock";
-                       clock-output-names = "hsotgusb_ick_3430es1";
-                       clocks = <&core_l3_ick>;
-               };
-
-               fac_ick: clock-fac-ick@8 {
-                       reg = <8>;
-                       #clock-cells = <0>;
-                       compatible = "ti,omap3-interface-clock";
-                       clock-output-names = "fac_ick";
-                       clocks = <&core_l4_ick>;
-               };
-
-               ssi_ick: clock-ssi-ick-3430es1@0 {
-                       reg = <0>;
-                       #clock-cells = <0>;
-                       compatible = "ti,omap3-no-wait-interface-clock";
-                       clock-output-names = "ssi_ick_3430es1";
-                       clocks = <&ssi_l4_ick>;
-               };
-
-               usb_l4_gate_ick: clock-usb-l4-gate-ick@5 {
-                       reg = <5>;
-                       #clock-cells = <0>;
-                       compatible = "ti,composite-interface-clock";
-                       clock-output-names = "usb_l4_gate_ick";
-                       clocks = <&l4_ick>;
-               };
-       };
-
-       ssi_l4_ick: ssi_l4_ick {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&l4_ick>;
-               clock-mult = <1>;
-               clock-div = <1>;
-       };
-
-       usb_l4_ick: usb_l4_ick {
-               #clock-cells = <0>;
-               compatible = "ti,composite-clock";
-               clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>;
-       };
-
-       clock@e00 {
-               compatible = "ti,clksel";
-               reg = <0xe00>;
-               #clock-cells = <2>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               dss1_alwon_fck: clock-dss1-alwon-fck-3430es1@0 {
-                       reg = <0>;
-                       #clock-cells = <0>;
-                       compatible = "ti,gate-clock";
-                       clock-output-names = "dss1_alwon_fck_3430es1";
-                       clocks = <&dpll4_m4x2_ck>;
-                       ti,set-rate-parent;
-               };
-       };
-
-       dss_ick: dss_ick_3430es1@e10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-no-wait-interface-clock";
-               clocks = <&l4_ick>;
-               reg = <0x0e10>;
-               ti,bit-shift = <0>;
-       };
-};
-
-&cm_clockdomains {
-       core_l3_clkdm: core_l3_clkdm {
-               compatible = "ti,clockdomain";
-               clocks = <&sdrc_ick>, <&hsotgusb_ick_3430es1>;
-       };
-
-       gfx_3430es1_clkdm: gfx_3430es1_clkdm {
-               compatible = "ti,clockdomain";
-               clocks = <&gfx_l3_ck>, <&gfx_cg1_ck>, <&gfx_cg2_ck>;
-       };
-
-       dss_clkdm: dss_clkdm {
-               compatible = "ti,clockdomain";
-               clocks = <&dss_tv_fck>, <&dss_96m_fck>, <&dss2_alwon_fck>,
-                        <&dss1_alwon_fck>, <&dss_ick>;
-       };
-
-       d2d_clkdm: d2d_clkdm {
-               compatible = "ti,clockdomain";
-               clocks = <&d2d_26m_fck>;
-       };
-
-       core_l4_clkdm: core_l4_clkdm {
-               compatible = "ti,clockdomain";
-               clocks = <&mmchs2_fck>, <&mmchs1_fck>, <&i2c3_fck>, <&i2c2_fck>,
-                        <&i2c1_fck>, <&mcspi4_fck>, <&mcspi3_fck>,
-                        <&mcspi2_fck>, <&mcspi1_fck>, <&uart2_fck>,
-                        <&uart1_fck>, <&hdq_fck>, <&mmchs2_ick>, <&mmchs1_ick>,
-                        <&hdq_ick>, <&mcspi4_ick>, <&mcspi3_ick>,
-                        <&mcspi2_ick>, <&mcspi1_ick>, <&i2c3_ick>, <&i2c2_ick>,
-                        <&i2c1_ick>, <&uart2_ick>, <&uart1_ick>, <&gpt11_ick>,
-                        <&gpt10_ick>, <&mcbsp5_ick>, <&mcbsp1_ick>,
-                        <&omapctrl_ick>, <&aes2_ick>, <&sha12_ick>,
-                        <&fshostusb_fck>, <&fac_ick>, <&ssi_ick>;
-       };
-};
index c90f43cc2fae9c650442b7eb6e3b1587b0aa706a..673df1b693f2878d3c8c9bc43523f8a99f9d3b5c 100644 (file)
                        interrupts = <11>;
                };
 
+               pwrbutton {
+                       compatible = "ti,twl6030-pwrbutton";
+                       interrupts = <0>;
+               };
+
                ldo2: regulator-ldo2 {
                        compatible = "ti,twl6032-ldo2";
                        regulator-min-microvolt = <1000000>;
index 59f546a278f87c013e8cbb74ba6dd8607e65ddcb..78ac3d4eceb5be92421e51e6f6849a53cc91bdae 100644 (file)
                        ranges = <0x0 0x30000 0x1000>,
                                 <0x49030000 0x49030000 0x1000>;
 
-                       wdt3: wdt@0 {
+                       wdt3: watchdog@0 {
                                compatible = "ti,omap4-wdt", "ti,omap3-wdt";
                                reg = <0x0 0x80>;
                                interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
index 4ee53dfb71b477006cb13cc8223b0088db1b6ca4..4881dd6743930dee65eaeab802d1e3766f480ce0 100644 (file)
                        #size-cells = <1>;
                        ranges = <0x0 0x4000 0x1000>;
 
-                       wdt2: wdt@0 {
+                       wdt2: watchdog@0 {
                                compatible = "ti,omap4-wdt", "ti,omap3-wdt";
                                reg = <0x0 0x80>;
                                interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
index 9f6100c7c34d1ddaddf21930d1abe528c9ca9a36..487259132ebfd374584f50d57681e6b4fbcd5862 100644 (file)
                        #size-cells = <1>;
                        ranges = <0x0 0x4000 0x1000>;
 
-                       wdt2: wdt@0 {
+                       wdt2: watchdog@0 {
                                compatible = "ti,omap5-wdt", "ti,omap3-wdt";
                                reg = <0x0 0x80>;
                                interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
index a941d1e623280f3f95128e8511af14e602161397..f5a776229023cb331d18c292fd15242bdb48e562 100644 (file)
 
 &tps {
        compatible = "ti,tps65910";
+       interrupt-controller;
+       #interrupt-cells = <2>;
+       gpio-controller;
+       #gpio-cells = <2>;
 
        regulators {
                #address-cells = <1>;
index dae9968a4ff68e8b34d02b237a168a80d184bcb0..886e2e4b5f64ce1a2a5496d35b8379fb4ac27dc2 100644 (file)
                        reg = <0x00600000 0x03200000>;
                };
 
-               tclinux_slave@3800000 {
+               tclinux-slave@3800000 {
                        label = "tclinux_alt";
                        reg = <0x03800000 0x03200000>;
                };
 
-               rootfs_data@6a00000 {
+               rootfs-data@6a00000 {
                        label = "rootfs_data";
                        reg = <0x06a00000 0x01400000>;
                };
 
-               reserved_bmt@7e00000 {
+               reserved-bmt@7e00000 {
                        label = "reserved_bmt";
                        reg = <0x07e00000 0x00200000>;
                        read-only;
index bb5f9e4f3d4213b5365c06c94dbf175db38eafcc..b3fb1e0ee796b71398edac5eafd9f7f638af56c1 100644 (file)
                        #size-cells = <0>;
                };
 
+               ledc: led-controller@5018000 {
+                       compatible = "allwinner,sun50i-a100-ledc";
+                       reg = <0x5018000 0x400>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_LEDC>, <&ccu CLK_LEDC>;
+                       clock-names = "bus", "mod";
+                       resets = <&ccu RST_BUS_LEDC>;
+                       dmas = <&dma 42>;
+                       dma-names = "tx";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                emac0: ethernet@5020000 {
                        compatible = "allwinner,sun50i-a100-emac",
                                     "allwinner,sun50i-a64-emac";
index 42dab01e3f56b2e4699345a1e84eee9cac0d6a26..a4230205c02b2bfd0a15991a545c84fff1aab669 100644 (file)
                                allwinner,pinmux = <2>;
                        };
 
+                       /omit-if-no-ref/
+                       spi0_pc_pins: spi0-pc-pins {
+                               pins = "PC2", "PC4", "PC12";
+                               function = "spi0";
+                               allwinner,pinmux = <4>;
+                       };
+
+                       /omit-if-no-ref/
+                       spi0_cs0_pc_pin: spi0-cs0-pc-pin {
+                               pins = "PC3";
+                               function = "spi0";
+                               allwinner,pinmux = <4>;
+                       };
+
+                       /omit-if-no-ref/
+                       spi0_cs1_pc_pin: spi0-cs1-pc-pin {
+                               pins = "PC7";
+                               function = "spi0";
+                               allwinner,pinmux = <4>;
+                       };
+
+                       /omit-if-no-ref/
+                       spi0_hold_pc_pin: spi0-hold-pc-pin {
+                               /* conflicts with eMMC D7 */
+                               pins = "PC16";
+                               function = "spi0";
+                               allwinner,pinmux = <4>;
+                       };
+
+                       /omit-if-no-ref/
+                       spi0_wp_pc_pin: spi0-wp-pc-pin {
+                               /* conflicts with eMMC D2 */
+                               pins = "PC15";
+                               function = "spi0";
+                               allwinner,pinmux = <4>;
+                       };
+
                        uart0_pb_pins: uart0-pb-pins {
                                pins = "PB9", "PB10";
                                allwinner,pinmux = <2>;
                        #size-cells = <0>;
                };
 
+               spi0: spi@4025000 {
+                       compatible = "allwinner,sun55i-a523-spi";
+                       reg = <0x04025000 0x1000>;
+                       interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
+                       clock-names = "ahb", "mod";
+                       dmas = <&dma 22>, <&dma 22>;
+                       dma-names = "rx", "tx";
+                       resets = <&ccu RST_BUS_SPI0>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               spi1: spi@4026000 {
+                       compatible = "allwinner,sun55i-a523-spi-dbi",
+                                    "allwinner,sun55i-a523-spi";
+                       reg = <0x04026000 0x1000>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
+                       clock-names = "ahb", "mod";
+                       dmas = <&dma 23>, <&dma 23>;
+                       dma-names = "rx", "tx";
+                       resets = <&ccu RST_BUS_SPI1>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               spi2: spi@4027000 {
+                       compatible = "allwinner,sun55i-a523-spi";
+                       reg = <0x04027000 0x1000>;
+                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_SPI2>, <&ccu CLK_SPI2>;
+                       clock-names = "ahb", "mod";
+                       dmas = <&dma 24>, <&dma 24>;
+                       dma-names = "rx", "tx";
+                       resets = <&ccu RST_BUS_SPI2>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
                usb_otg: usb@4100000 {
                        compatible = "allwinner,sun55i-a523-musb",
                                     "allwinner,sun8i-a33-musb";
                        #clock-cells = <1>;
                };
 
+               r_spi0: spi@7092000 {
+                       compatible = "allwinner,sun55i-a523-spi";
+                       reg = <0x07092000 0x1000>;
+                       interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&r_ccu CLK_BUS_R_SPI>, <&r_ccu CLK_R_SPI>;
+                       clock-names = "ahb", "mod";
+                       dmas = <&mcu_dma 13>, <&mcu_dma 13>;
+                       dma-names = "rx", "tx";
+                       resets = <&r_ccu RST_BUS_R_SPI>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
                mcu_ccu: clock-controller@7102000 {
                        compatible = "allwinner,sun55i-a523-mcu-ccu";
                        reg = <0x7102000 0x200>;
index 9e6b21cf293ee79db6bed39188c6f52397fa9560..055be86e5fae00519ac64b76a1aeeb1c42c92d15 100644 (file)
        assigned-clock-rates = <32768>;
 };
 
+&spi0  {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pc_pins>, <&spi0_cs0_pc_pin>;
+       status = "okay";
+
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+               vcc-supply = <&reg_cldo1>;
+       };
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pb_pins>;
index 657e986e5dba74308dcfbe90494c01fb67adb693..0d9cad0c0351344bc75e889e9f3a3d24a7ac3d42 100644 (file)
 
                pinctrl0: pinctrl@ffd13000 {
                        compatible = "pinctrl-single";
-                       reg = <0xffd13000 0xA0>;
+                       reg = <0xffd13000 0xa0>;
                        #pinctrl-cells = <1>;
                        pinctrl-single,register-width = <32>;
                        pinctrl-single,function-mask = <0x0000000f>;
index 58f776e411fc3664444e3096101948970e85e9d5..4ae18a013bbed7ebce3c2044d5cb3b5a682bd27d 100644 (file)
 
                        root: partition@4200000 {
                                label = "Root Filesystem - UBIFS";
-                               reg = <0x04200000 0x0BE00000>;
+                               reg = <0x04200000 0x0be00000>;
                        };
                };
        };
index 92954c5beb5432b10de4549cb8d62d46d50a6bab..7951ce46ae1f64c5a5a346744fbbdf39ab7ae035 100644 (file)
 
                        qspi_boot: partition@0 {
                                label = "Boot and fpga data";
-                               reg = <0x0 0x03FE0000>;
+                               reg = <0x0 0x03fe0000>;
                        };
 
                        qspi_rootfs: partition@3fe0000 {
                                label = "Root Filesystem - JFFS2";
-                               reg = <0x03FE0000 0x0C020000>;
+                               reg = <0x03fe0000 0x0c020000>;
                        };
                };
        };
index 13b7ac03f9b201bc112e5a52acfa55dc6e0786d8..4e6757a57fb9a11300fd0912d994dcb10c96e519 100644 (file)
        firmware {
                scmi: scmi {
                        compatible = "arm,scmi-smc";
-                       arm,smc-id = <0x820000C1>;
+                       arm,smc-id = <0x820000c1>;
                        shmem = <&scmi_shmem>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
-                                       internal_ephy: ethernet_phy@8 {
+                                       internal_ephy: ethernet-phy@8 {
                                                compatible = "ethernet-phy-id0180.3301",
                                                             "ethernet-phy-ieee802.3-c22";
                                                interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                                no-sd;
                                resets = <&reset RESET_SD_EMMC_A>;
                                status = "disabled";
+
+                               assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_A>;
+                               assigned-clock-rates = <24000000>;
+
                        };
 
                        sd: mmc@8a000 {
                                no-sdio;
                                resets = <&reset RESET_SD_EMMC_B>;
                                status = "disabled";
+
+                               assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_B>;
+                               assigned-clock-rates = <24000000>;
                        };
 
                        nand: nand-controller@8d000 {
                                compatible = "amlogic,meson-axg-nfc";
                                reg = <0x0 0x8d000 0x0 0x200>,
-                                       <0x0 0x8C000 0x0 0x4>;
+                                       <0x0 0x8c000 0x0 0x4>;
                                reg-names = "nfc", "emmc";
                                interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_C>,
index c05edebb90b523422b99718aa2f4e35bb53753f0..cab2ee9ea0d31bf52db5c9f366b662858210f56d 100644 (file)
@@ -20,7 +20,7 @@
 
        memory@0 {
                device_type = "memory";
-               reg = <0x00000000 0x00000000 0x00000000 0xE0000000
+               reg = <0x00000000 0x00000000 0x00000000 0xe0000000
                        0x00000001 0x00000000 0x00000000 0x20000000>;
        };
 
index 27b68ed85c4c29cd024007c2a4461a3717046f07..348411411f3d150c9b9f799ee310feed373b48fe 100644 (file)
                                clock-names = "core",
                                              "clkin0",
                                              "clkin1";
-                               assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_SEL2>;
-                               assigned-clock-parents = <&xtal>;
                                resets = <&reset RESET_SD_EMMC_A>;
                                power-domains = <&pwrc PWRC_SD_EMMC_ID>;
                                status = "disabled";
+
+                               assigned-clocks = <&clkc_periphs CLKID_SD_EMMC>;
+                               assigned-clock-rates = <24000000>;
                        };
                };
 
index 9611775b81eee3943bbc8a57a78eec7d1abea5a1..285c6ac1dd613c8c80155fb41fecf382a764a9d4 100644 (file)
                assigned-clocks = <&clkc CLKID_HIFI_PLL>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <589824000>,
                                       <270950400>,
                                       <393216000>;
index e95c91894968b2c8b3b8e96a5f5e85cd60f3e085..cc72491eaf6f52d46fed2458191556bd16d837f4 100644 (file)
                                        <&clkc CLKID_FCLK_DIV2>;
                                clock-names = "core", "clkin0", "clkin1";
                                resets = <&reset RESET_SD_EMMC_B>;
+
+                               assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+                               assigned-clock-rates = <24000000>;
                        };
 
                        sd_emmc_c: mmc@7000 {
                                        <&clkc CLKID_FCLK_DIV2>;
                                clock-names = "core", "clkin0", "clkin1";
                                resets = <&reset RESET_SD_EMMC_C>;
+
+                               assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+                               assigned-clock-rates = <24000000>;
                        };
 
                        nfc: nand-controller@7800 {
index ca455f634834b5a52db8ff4e6ebca35a87ea17b7..00609d2da67437bee1300077c15416673e34ca31 100644 (file)
                                 <&clkc CLKID_FCLK_DIV2>;
                        clock-names = "core", "clkin0", "clkin1";
                        resets = <&reset RESET_SD_EMMC_A>;
+
+                       assigned-clocks = <&clkc CLKID_SD_EMMC_A_CLK0>;
+                       assigned-clock-rates = <24000000>;
                };
 
                sd_emmc_b: mmc@ffe05000 {
                                 <&clkc CLKID_FCLK_DIV2>;
                        clock-names = "core", "clkin0", "clkin1";
                        resets = <&reset RESET_SD_EMMC_B>;
+
+                       assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+                       assigned-clock-rates = <24000000>;
                };
 
                sd_emmc_c: mmc@ffe07000 {
                                 <&clkc CLKID_FCLK_DIV2>;
                        clock-names = "core", "clkin0", "clkin1";
                        resets = <&reset RESET_SD_EMMC_C>;
+
+                       assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+                       assigned-clock-rates = <24000000>;
                };
 
                usb: usb@ffe09000 {
index d0a3b4b9229cc60394fe122fa1124a135866e0d6..4c9cd0024efb4a7648de2fa3df6fc1686c3df534 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &ethmac {
index 4353485c6f26b98eeeb37d8dfb3964c906b80f8e..4bb1c2846c81cbfb015881e4eeb6c612b69c4de5 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cvbs_vdac_port {
index f39fcabc763f1ab1e22cf38e7766e12e42c046e6..8ca7f6ec9adc9480e77d2003c64ffa759364853d 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cvbs_vdac_port {
index b5bf8ecc91e653e4a4082c5a4d17dba8239dbf47..a1c5d10f2f54f75097fce64c3f7d3b8857c074db 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &clkc_audio {
index 5ab460a3e637f714fe38f9b4ad106198c1709d5a..c393954354d50f65446b6c57e46c279beea9a44a 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cvbs_vdac_port {
index 1321ad95923d2c2bf0649214ddee30e14476a1ac..51317d11f263b1f01ca773ce32a264488bfd9997 100644 (file)
@@ -25,6 +25,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                cpu1: cpu@1 {
@@ -40,6 +42,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                cpu2: cpu@2 {
@@ -55,6 +59,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                cpu3: cpu@3 {
@@ -70,6 +76,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                l2: l2-cache0 {
index 82546b73897716d4fe045207b710a76b3859aed2..5747acf8f337cd76b857b1921ea6f2c58232efa6 100644 (file)
@@ -6,7 +6,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/clock/g12a-clkc.h>
 #include "meson-g12b-a311d.dtsi"
 #include "meson-libretech-cottonwood.dtsi"
 
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &pwm_ab {
index 8ecb5bd125c1a4729c63d7f2b3edb4a2fecef5eb..f15baa708b36873ca286858e70c87f4e2e5d27b7 100644 (file)
                 };
        };
 };
+
+&cpu0 {
+       operating-points-v2 = <&cpu_opp_table_0>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu_opp_table_0>;
+};
+
+&cpu100 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
+
+&cpu101 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
+
+&cpu102 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
+
+&cpu103 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
index 2d74456e685df93d596c1de6202d6d6e28051144..cdb522f5365a0a95618bc354b77e8201b9ee03bb 100644 (file)
@@ -77,7 +77,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 0f48c32bec976cd14a8e3e9ef184eec0da757782..2d4071c51f3dcd7931814d3bc4dbd36634932f6b 100644 (file)
@@ -86,7 +86,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                        <&clkc CLKID_MPLL0>,
                                        <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 39011b645128cb9ee1107f4731d56840f2bdf5a7..7a204d324dd4fb3614402d94324e906cf08650b5 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &ext_mdio {
index 1b08303c42822ba94f600ef6e19ca057bf5fe7ed..7b5d78f972154b57b1dea4ef97d8a939fa1590b6 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &ethmac {
index 8e3e3354ed67a91873875540972638b98cadd6db..a69d5531c5406c6b897d1cd066e1ccc8a8b54fc1 100644 (file)
@@ -47,7 +47,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 369c5cf889b6c88e8c33132b970e03f1c1bc89c8..8758a68136ea62ea2d5b03f394a4a68dcd2ce492 100644 (file)
@@ -55,7 +55,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 654449afd3a4cb76f8c873a64c6d6e826bfac8ad..a9478e2cce4dc59a823dd26b377d631decda4799 100644 (file)
@@ -56,7 +56,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index e203113867451e4226a145162f27d1f06d0a3743..a2ff5040eadf5bca1a21b3f81606149f31d634d5 100644 (file)
@@ -44,7 +44,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index fc737499f207aa7c873371de5a59ca2a70e7c24b..b16247e0df9fb5ea92a351d4d196ac8a8a71e2c2 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &pwm_ab {
index d5938a4a6da375e5fbff89c761e634e7b85775fe..cac73c59a94fde7efff5c48cdbc622f4e2809c5b 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 /* RK817 only supports 12.5mV steps, round up the values */
index 3bca8023638d4b8b8bd32dd3c5846c64dd5e645d..edb7ed6b0ec03aaad4c38d4e44c7c6de4737d2bb 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 1b9097a302518b6fe17d35d9d85e90935f5bf743..15795889cb53bbd2b85e9fc99482d4fbd852d53c 100644 (file)
@@ -46,7 +46,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 3298d59833b643d2e925c80dc20778210ac937a5..88d995006f94eb642b114e5616d2389e1eba1daf 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu_thermal {
index 1e5c6f98494564aa61c9da269488bd52fd270b6b..50565851f3d8f57d3e8f41ff1981975b44db4c48 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu_thermal {
        };
 };
 
+/* Also exposed on the 40-pin header: SDA pin 3, SCL pin 5 */
+&i2c3 {
+       pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       fusb0: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+
+               pinctrl-0 = <&fusb302_irq_pins>;
+               pinctrl-names = "default";
+               interrupt-parent = <&gpio_intc>;
+               interrupts = <74 IRQ_TYPE_LEVEL_LOW>;
+
+               vbus-supply = <&ao_5v>;
+
+               connector {
+                       compatible = "usb-c-connector";
+               };
+       };
+};
+
 &ir {
        status = "disabled";
        pinctrl-0 = <&remote_input_ao_pins>;
        pinctrl-names = "default";
 };
 
+&periphs_pinctrl {
+       fusb302_irq_pins: fusb302-irq {
+               mux {
+                       groups = "GPIOA_13";
+                       function = "gpio_periphs";
+                       bias-pull-up;
+                       output-disable;
+               };
+       };
+};
+
 &pwm_ab {
        pinctrl-0 = <&pwm_a_e_pins>;
        pinctrl-names = "default";
        status = "okay";
 };
 
+&npu {
+       status = "okay";
+};
+
 &saradc {
        status = "okay";
        vref-supply = <&vddao_1v8>;
index 19cad93a68897ca00856983a936409d36786b3e4..eef98add05c6b47ae1182abb9ce87816cfa07292 100644 (file)
                };
        };
 };
+
+&cpu0 {
+       operating-points-v2 = <&cpu_opp_table_0>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu_opp_table_0>;
+};
+
+&cpu100 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
+
+&cpu101 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
+
+&cpu102 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
+
+&cpu103 {
+       operating-points-v2 = <&cpub_opp_table_1>;
+};
index 4c1a75b926ee34fe271c3b2c0fca09db05f50fe5..dbd72fe0f53fc885a0350b1c1633fe3c01c12b3c 100644 (file)
@@ -39,7 +39,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 9b6d780eada777a8314c9877f75c635076404c01..4834f418bef58dccd81c893bfe23d2c454b8603a 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table_0>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu100 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu101 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu102 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cpu103 {
        cpu-supply = <&vddcpu_a>;
-       operating-points-v2 = <&cpub_opp_table_1>;
-       clocks = <&clkc CLKID_CPUB_CLK>;
 };
 
 &cvbs_vdac_port {
index 23358d94844c94539c82bfabf0d5c990afab99d8..18506d54d2393fced7be5d487fa88535872bbd38 100644 (file)
@@ -57,6 +57,7 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2_cache_l>;
                        #cooling-cells = <2>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                cpu1: cpu@1 {
@@ -73,6 +74,7 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2_cache_l>;
                        #cooling-cells = <2>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                cpu100: cpu@100 {
@@ -89,6 +91,7 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2_cache_b>;
                        #cooling-cells = <2>;
+                       clocks = <&clkc CLKID_CPUB_CLK>;
                };
 
                cpu101: cpu@101 {
                        i-cache-sets = <32>;
                        next-level-cache = <&l2_cache_b>;
                        #cooling-cells = <2>;
+                       clocks = <&clkc CLKID_CPUB_CLK>;
                };
 
                cpu102: cpu@102 {
                        i-cache-sets = <64>;
                        next-level-cache = <&l2_cache_b>;
                        #cooling-cells = <2>;
+                       clocks = <&clkc CLKID_CPUB_CLK>;
                };
 
                cpu103: cpu@103 {
                        i-cache-sets = <64>;
                        next-level-cache = <&l2_cache_b>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpub_opp_table_1>;
+                       clocks = <&clkc CLKID_CPUB_CLK>;
                };
 
                l2_cache_l: l2-cache-cluster0 {
index 2da49cfbde77c61f6bc818fdbae1d08c898b377c..c2bf6f4cdfd2eaace946ff2197a8a710c6a7da27 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index b4f88ed6273b8f0db956d163451ea6855c45fe48..8d216a594d7bb930c55807d0f855f175cc18ebba 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 073b47ce8c3c4f5eccd04cf265aa830add20ee53..ff3ba97872ecdce0b9e77ad545bb41a382466759 100644 (file)
@@ -52,7 +52,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 2ecc6ebd5a430f4ecfe1e6b9a96d2ece8e1d86dc..5d9ddb814164c3d6c39ebdd75bd1657c803e7bf8 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index c09da40ff7b00b86c46c3ea48df09c230fd35dc6..ab8e06aa2b3230a76eedf288e652862eb3d8bedd 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 12e26f99d4f080a216e305981dc4291a49063b60..5943bc810678edc81fe1a8e3eeae69786e27010c 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index bfac00e76ba3e4ee303e48d7ad0bae1c66276172..b5981c0b1494ad9b310aa1937e5a9f37cf934603 100644 (file)
@@ -75,7 +75,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index c10f66031ecd4b2ac3447509cb567cc13be8a0bf..602777702984446655a21e846d46d1f6a8923cf4 100644 (file)
@@ -24,7 +24,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 6ff567225fee449f1c03a6b74be59cf500186222..a4d354cc93a5e89d571bd0ebd92764e783a0925e 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index ec281a9e9e7768fc172c930ff40f1b3922350792..a22a8a435427f5f5c4668e3260c26a01cd3523c7 100644 (file)
@@ -23,7 +23,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 924414861b72f1c822b6f39b12e82cf6b15c6be2..6a1b65bf84da698d7daf5c8fffcec1767ee88923 100644 (file)
@@ -55,7 +55,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index f69923da07febd6b3ebbabd29c848eadca4653a4..a9c830a570cc6cd2875553fa9b0e3ef72a2f6478 100644 (file)
                 <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "clkin0", "clkin1";
        resets = <&reset RESET_SD_EMMC_A>;
+
+       assigned-clocks = <&clkc CLKID_SD_EMMC_A_CLK0>;
+       assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_b {
                 <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "clkin0", "clkin1";
        resets = <&reset RESET_SD_EMMC_B>;
+
+       assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+       assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_c {
                 <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "clkin0", "clkin1";
        resets = <&reset RESET_SD_EMMC_C>;
+
+       assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+       assigned-clock-rates = <24000000>;
 };
 
 &simplefb_hdmi {
index c6132fb71dfc481d2690e091e7ea639ab90a3145..3a9a801f33d40a8fdf1d83ed9814b5e276d0ab21 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index ca7c4e8e7cac810853e98149ccd9d2815f519ed5..75db2a5c96b347af386e9c911b0bade12e6e67ce 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index cac15b89c573924f84877deeb2c31b20b0c3cae6..9e571b96bde65f73ee28bb3046643a49f7021453 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 4e89d6f6bb57fefd04317b514c6c26b5f540f96c..0a6664275bcbf06a5dee967199a16bd709622765 100644 (file)
@@ -74,7 +74,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 6cbdfde00e12a4b504696b10b020563e70677486..277fb34981c7fc719c4927aa715275e862c7009d 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 401064b0428de96a8f6ece2a48c1c6f779f084c9..fe1df108892c9b43ad2bf5366ad52b2ad797ae36 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 8b41e340f91997e0ec3c57de61c2ed664a45cc6c..9da495cca787ff0bac0c6c932dd8465fd688e6a8 100644 (file)
@@ -57,7 +57,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index a9c5881c9783bd46ed9bbfd1543e7aa06fc62145..1e4d3fdd0b22d18e04cf691b5689c12e23b41588 100644 (file)
@@ -98,7 +98,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index ba535010a3c91d598e72d63fb04243e0c37e9cc9..e202d84f067205fd68fd7953124d77aa19a3704b 100644 (file)
                 <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "clkin0", "clkin1";
        resets = <&reset RESET_SD_EMMC_A>;
+
+       assigned-clocks = <&clkc CLKID_SD_EMMC_A_CLK0>;
+       assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_b {
                 <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "clkin0", "clkin1";
        resets = <&reset RESET_SD_EMMC_B>;
+
+       assigned-clocks = <&clkc CLKID_SD_EMMC_B_CLK0>;
+       assigned-clock-rates = <24000000>;
 };
 
 &sd_emmc_c {
                 <&clkc CLKID_FCLK_DIV2>;
        clock-names = "core", "clkin0", "clkin1";
        resets = <&reset RESET_SD_EMMC_C>;
+
+       assigned-clocks = <&clkc CLKID_SD_EMMC_C_CLK0>;
+       assigned-clock-rates = <24000000>;
 };
 
 &simplefb_hdmi {
index 2a09b3d550e2b635acbd78e36d3a986b40f7578d..5b1aafe16d5c64f7e23c696860605a3d0b7b924d 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index f5b3424c0f617c3ee156d64079d3c83cf0227e8b..dddbbe6dca7c53697eb17557f6865f874ce3ae81 100644 (file)
@@ -17,7 +17,7 @@
 
        memory@0 {
                device_type = "memory";
-               reg = <0x0 0x0 0x0 0xC0000000>;
+               reg = <0x0 0x0 0x0 0xc0000000>;
        };
 
        adc-keys {
index 773107cc47ddb57fdd4de3f89a1899d92500a634..81f5eb3da5dcad875780168ff2d60db63cc97d9a 100644 (file)
@@ -93,7 +93,6 @@
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 9d5a481b309f7201e5a82b7a91b8ca265c7ef42a..9626a2621a3d955c0742bf7c04fadae655e382d8 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>,
                                  <&clkc CLKID_MPLL2>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 7daa9b122d5c0573de0cfe41ee8730c6c5db77e9..73aa6b5a5de7125489dd3e47c30e45b10e29ee56 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index ac9c4c2673b1e28762606bb18791a19e2fd250ae..cb8b0f98beb4bed6355dec9acd7642e284baf968 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 6730c44642d2910d42ec0c4adf49fefc3514dbec..0a3f81ea0fb0a7c4b54e73e9f9df5eec5d74144b 100644 (file)
@@ -9,7 +9,7 @@
 
 / {
        model = "Amlogic Meson S4 AQ222 Development Board";
-       compatible = "amlogic,aq222", "amlogic,s4";
+       compatible = "amlogic,aq222", "amlogic,s805x2", "amlogic,s4";
        interrupt-parent = <&gic>;
        #address-cells = <2>;
        #size-cells = <2>;
diff --git a/src/arm64/amlogic/meson-s4-s905y4-khadas-vim1s.dts b/src/arm64/amlogic/meson-s4-s905y4-khadas-vim1s.dts
new file mode 100644 (file)
index 0000000..27d0f61
--- /dev/null
@@ -0,0 +1,259 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2026 Khadas Technology Co., Ltd.
+ */
+
+/dts-v1/;
+
+#include "meson-s4.dtsi"
+
+/ {
+       model = "Khadas VIM1S";
+       compatible = "khadas,vim1s", "amlogic,s905y4", "amlogic,s4";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               mmc0 = &emmc; /* eMMC */
+               mmc1 = &sd; /* SD card */
+               mmc2 = &sdio; /* SDIO */
+               serial0 = &uart_b;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+
+       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;
+               };
+       };
+
+       emmc_pwrseq: emmc-pwrseq {
+               compatible = "mmc-pwrseq-emmc";
+               reset-gpios = <&gpio GPIOB_9 GPIO_ACTIVE_LOW>;
+       };
+
+       sdio_32k: sdio-32k {
+               compatible = "pwm-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+               clocks = <&sdio_32k>;
+               clock-names = "ext_clock";
+       };
+
+       main_5v: regulator-main-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       sd_3v3: regulator-sd-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "SD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio GPIOD_4 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+       };
+
+       vddio_sd: regulator-vddio-sd {
+               compatible = "regulator-gpio";
+               regulator-name = "VDDIO_SD";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio GPIOD_9 GPIO_ACTIVE_HIGH>;
+               gpios-states = <1>;
+               states = <1800000 1
+                               3300000 0>;
+       };
+
+       vddao_3v3: regulator-vddao-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&main_5v>;
+               regulator-always-on;
+       };
+
+       vddio_ao1v8: regulator-vddio-ao1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDIO_AO1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-always-on;
+       };
+
+       /* SY8120B1ABC DC/DC Regulator. */
+       vddcpu: regulator-vddcpu {
+               compatible = "pwm-regulator";
+
+               regulator-name = "VDDCPU";
+               regulator-min-microvolt = <689000>;
+               regulator-max-microvolt = <1049000>;
+
+               vin-supply = <&main_5v>;
+
+               pwms = <&pwm_ij 1 1500 0>;
+               pwm-dutycycle-range = <100 0>;
+
+               regulator-boot-on;
+               regulator-always-on;
+               /* Voltage Duty-Cycle */
+               voltage-table = <1049000 0>,
+                               <1039000 3>,
+                               <1029000 6>,
+                               <1019000 9>,
+                               <1009000 12>,
+                               <999000 14>,
+                               <989000 17>,
+                               <979000 20>,
+                               <969000 23>,
+                               <959000 26>,
+                               <949000 29>,
+                               <939000 31>,
+                               <929000 34>,
+                               <919000 37>,
+                               <909000 40>,
+                               <899000 43>,
+                               <889000 45>,
+                               <879000 48>,
+                               <869000 51>,
+                               <859000 54>,
+                               <849000 56>,
+                               <839000 59>,
+                               <829000 62>,
+                               <819000 65>,
+                               <809000 68>,
+                               <799000 70>,
+                               <789000 73>,
+                               <779000 76>,
+                               <769000 79>,
+                               <759000 81>,
+                               <749000 84>,
+                               <739000 87>,
+                               <729000 89>,
+                               <719000 92>,
+                               <709000 95>,
+                               <699000 98>,
+                               <689000 100>;
+       };
+};
+
+&emmc {
+       status = "okay";
+       pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
+       pinctrl-1 = <&emmc_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       max-frequency = <200000000>;
+       non-removable;
+       disable-wp;
+
+       mmc-pwrseq = <&emmc_pwrseq>;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddio_ao1v8>;
+};
+
+&ethmac {
+       status = "okay";
+       phy-handle = <&internal_ephy>;
+       phy-mode = "rmii";
+};
+
+&ir {
+       status = "okay";
+       pinctrl-0 = <&remote_pins>;
+       pinctrl-names = "default";
+};
+
+&pwm_ef {
+       status = "okay";
+       pinctrl-0 = <&pwm_e_pins1>;
+       pinctrl-names = "default";
+};
+
+&pwm_ij {
+       status = "okay";
+};
+
+&sd {
+       status = "okay";
+       pinctrl-0 = <&sdcard_pins>;
+       pinctrl-1 = <&sdcard_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+       bus-width = <4>;
+       cap-sd-highspeed;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       max-frequency = <200000000>;
+       disable-wp;
+
+       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&sd_3v3>;
+       vqmmc-supply = <&vddio_sd>;
+};
+
+&sdio {
+       status = "okay";
+       pinctrl-0 = <&sdio_pins>;
+       pinctrl-1 = <&sdio_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       max-frequency = <50000000>;
+       non-removable;
+       disable-wp;
+
+       no-sd;
+       no-mmc;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddio_ao1v8>;
+
+       brcmf: wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+       };
+};
+
+&spicc0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spicc0_pins_x>;
+       cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
+};
+
+&uart_b {
+       status = "okay";
+};
index 9d99ed2994dfa27ca5808da7ae0825e9af255417..dfc0a30a6e61be4ece624a6e8f57f4817a4a6055 100644 (file)
                        reg = <0x0 0xfe088000 0x0 0x800>;
                        interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clkc_periphs CLKID_SDEMMC_A>,
-                                <&xtal>,
+                                <&clkc_periphs CLKID_SD_EMMC_A>,
                                 <&clkc_pll CLKID_FCLK_DIV2>;
                        clock-names = "core", "clkin0", "clkin1";
                        resets = <&reset RESET_SD_EMMC_A>;
                        cap-sdio-irq;
                        keep-power-in-suspend;
                        status = "disabled";
+
+                       assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_A>;
+                       assigned-clock-rates = <24000000>;
                };
 
                sd: mmc@fe08a000 {
                        clock-names = "core", "clkin0", "clkin1";
                        resets = <&reset RESET_SD_EMMC_B>;
                        status = "disabled";
+
+                       assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_B>;
+                       assigned-clock-rates = <24000000>;
                };
 
                emmc: mmc@fe08c000 {
                        reg = <0x0 0xfe08c000 0x0 0x800>;
                        interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
                        clocks = <&clkc_periphs CLKID_NAND>,
-                                <&xtal>,
+                                <&clkc_periphs CLKID_SD_EMMC_C>,
                                 <&clkc_pll CLKID_FCLK_DIV2>;
                        clock-names = "core", "clkin0", "clkin1";
                        resets = <&reset RESET_NAND_EMMC>;
                        no-sdio;
                        no-sd;
                        status = "disabled";
+
+                       assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_C>;
+                       assigned-clock-rates = <24000000>;
                };
        };
 };
index 3c43d3490e14a5d457974bf79133751e33def81e..7c67e459c602964fa76b5122d2381a10031dd0f0 100644 (file)
@@ -29,7 +29,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 445c1671ede78c3b574e271c664413ea2f1626a4..e841c44c69de23ecc219c53d3d7ab343a75ff4a5 100644 (file)
@@ -29,7 +29,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 9be3084b090d2441098d97155e8d56d54560799b..661e454ca6731c0dd52a10c208547a89a2b5f8ee 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU1_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU2_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU3_CLK>;
 };
 
 &cvbs_vdac_port {
index eeaff22edade8fd0d6cdc4043343a4ed0a2d3e9f..8d12bd1702d35b2c85ea12a6ca6c7853f794f532 100644 (file)
@@ -29,7 +29,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 697855fec4760f5771c7183361dbf99c809df66f..0cd30656931219e7dde6d40b6f80353d3ecc5043 100644 (file)
@@ -64,7 +64,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index 5e07f0f9538e542737f7448fb0a19c9243c8f3b3..f0e4b168a41126512a4574f0b28ca303fe57b28b 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU1_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU2_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU3_CLK>;
 };
 
 &ext_mdio {
index 7b3a014d4cde2e3d19138b84a952f502551871bf..3c671676e45309dab828b9a910503872ed73700d 100644 (file)
@@ -29,7 +29,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index a3d9b66b6878fb2744e8dc31a95c53fa837613e1..4e1e9a5026666e506d888d62e1b97ec6d04d09a6 100644 (file)
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU1_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU2_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU3_CLK>;
 };
 
 &pwm_AO_cd {
index 0170139b8d32f4274ad991b0f3d9a0f6c67969ce..3ece30a0a1fff736c544cf89ed0a8cca0890f128 100644 (file)
@@ -52,6 +52,7 @@
 
                gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
                enable-active-high;
+               regulator-boot-on;
                regulator-always-on;
        };
 
@@ -65,6 +66,7 @@
 
                gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
                enable-active-high;
+               regulator-boot-on;
                regulator-always-on;
        };
 
index c4524eb4f0996dfbccec16ca5b936a5c3b2663a5..e6f02d738a21fa6e34c48c5c2438915270e1d10b 100644 (file)
@@ -37,6 +37,7 @@
 
                gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
                enable-active-high;
+               regulator-boot-on;
                regulator-always-on;
        };
 
@@ -50,6 +51,7 @@
 
                enable-gpios = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
                enable-active-high;
+               regulator-boot-on;
                regulator-always-on;
 
                gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_SOURCE>;
@@ -81,6 +83,7 @@
                regulator-name = "5V";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
                regulator-always-on;
                vin-supply = <&main_12v>;
                gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU1_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU2_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU3_CLK>;
 };
 
 &ext_mdio {
index 5daadfb170b42cc52f74052593218fc0c6709053..2a16f54332df3a544dda4f29ece3ea460f881249 100644 (file)
@@ -6,7 +6,6 @@
 
 /dts-v1/;
 
-#include <dt-bindings/clock/g12a-clkc.h>
 #include "meson-sm1.dtsi"
 #include "meson-libretech-cottonwood.dtsi"
 
 
 &cpu0 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU1_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU2_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu_b>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU3_CLK>;
 };
index 024d2eb8e6ee0f6a198cd70f144dfd0a0b26fa61..18b830a233a65a997293bd16aa1949b6272cf132 100644 (file)
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
 
 &cpu0 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU_CLK>;
 };
 
 &cpu1 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU1_CLK>;
 };
 
 &cpu2 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU2_CLK>;
 };
 
 &cpu3 {
        cpu-supply = <&vddcpu>;
-       operating-points-v2 = <&cpu_opp_table>;
-       clocks = <&clkc CLKID_CPU3_CLK>;
 };
 
 &ethmac {
index e4a3a2a8ad0647702f24da5c2a623b126975f879..ecb6aa79302d4df2250d5637b7361f0ce31fb26d 100644 (file)
@@ -29,7 +29,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index fff92e0d6dd51df28c3f42cb030265515b1d1013..24a6a679b377bf96288bc77d31d90aa74919c6a4 100644 (file)
@@ -29,7 +29,6 @@
                assigned-clocks = <&clkc CLKID_MPLL2>,
                                  <&clkc CLKID_MPLL0>,
                                  <&clkc CLKID_MPLL1>;
-               assigned-clock-parents = <0>, <0>, <0>;
                assigned-clock-rates = <294912000>,
                                       <270950400>,
                                       <393216000>;
index e5db8ce940620c25a4293f328c93e1237b821d41..8f5b850b1774f184396b8434507ec6169446e30b 100644 (file)
@@ -63,6 +63,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU_CLK>;
                };
 
                cpu1: cpu@1 {
@@ -78,6 +80,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU1_CLK>;
                };
 
                cpu2: cpu@2 {
@@ -93,6 +97,8 @@
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU2_CLK>;
                };
 
                cpu3: cpu@3 {
                        i-cache-sets = <32>;
                        next-level-cache = <&l2>;
                        #cooling-cells = <2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clocks = <&clkc CLKID_CPU3_CLK>;
                };
 
                l2: l2-cache0 {
index b1160780a2a6f9e93d42f19e96fbb00d95754eec..4ec05886dd41c45f2c8ae9dd4a3b063bc323af23 100644 (file)
@@ -38,6 +38,7 @@
 
        poweroff: poweroff@10548010 {
                compatible = "syscon-poweroff";
+               reg = <0x0 0x10548010 0x0 0x4>;
                regmap = <&poweroff_mbox>;
                offset = <0x10>;
                mask = <0x1>;
index 2ef658796746b8c479b544b3a905f90c2ade4466..8f7eeba56dc4585a3b62cd0e5f8adccf58a83189 100644 (file)
@@ -38,6 +38,7 @@
 
        poweroff: poweroff@10548010 {
                compatible = "syscon-poweroff";
+               reg = <0x0 0x10548010 0x0 0x4>;
                regmap = <&poweroff_mbox>;
                offset = <0x10>;
                mask = <0x1>;
index 5bbedb0a7107d5f5163c5b80d81f260c3f009838..e930f2f26f4bf9bc6c31fd192070101269e8ddb2 100644 (file)
                clock-frequency = <50000000>;
        };
 
-       i2cslimpro {
+       i2c {
                compatible = "apm,xgene-slimpro-i2c";
                mboxes = <&mailbox 0>;
        };
 
                        socplldiv2: socplldiv2  {
                                compatible = "fixed-factor-clock";
-                               #clock-cells = <1>;
+                               #clock-cells = <0>;
                                clocks = <&socpll 0>;
                                clock-mult = <1>;
                                clock-div = <2>;
                        ahbclk: ahbclk@17000000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x17000000 0x0 0x2000>;
                                reg-names = "div-reg";
                                divider-offset = <0x164>;
                        sdioclk: sdioclk@1f2ac000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x1f2ac000 0x0 0x1000
                                        0x0 0x17000000 0x0 0x2000>;
                                reg-names = "csr-reg", "div-reg";
                        pcie0clk: pcie0clk@1f2bc000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x1f2bc000 0x0 0x1000>;
                                reg-names = "csr-reg";
                                clock-output-names = "pcie0clk";
                        pcie1clk: pcie1clk@1f2cc000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x1f2cc000 0x0 0x1000>;
                                reg-names = "csr-reg";
                                clock-output-names = "pcie1clk";
                        xge0clk: xge0clk@1f61c000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x1f61c000 0x0 0x1000>;
                                reg-names = "csr-reg";
                                enable-mask = <0x3>;
                        xge1clk: xge1clk@1f62c000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x1f62c000 0x0 0x1000>;
                                reg-names = "csr-reg";
                                enable-mask = <0x3>;
                        rngpkaclk: rngpkaclk@17000000 {
                                compatible = "apm,xgene-device-clock";
                                #clock-cells = <1>;
-                               clocks = <&socplldiv2 0>;
+                               clocks = <&socplldiv2>;
                                reg = <0x0 0x17000000 0x0 0x2000>;
                                reg-names = "csr-reg";
                                csr-offset = <0xc>;
 
                reboot: reboot@17000014 {
                        compatible = "syscon-reboot";
+                       reg = <0x0 0x17000014 0x0 0x4>;
                        regmap = <&scu>;
                        offset = <0x14>;
                        mask = <0x1>;
                        compatible = "snps,designware-i2c";
                        reg = <0x0 0x10511000 0x0 0x1000>;
                        interrupts = <0 0x45 0x4>;
-                       #clock-cells = <1>;
                        clocks = <&sbapbclk 0>;
                };
 
index 4ca0ead120c1d09925d8ce374295055fc738108b..4c4938faffb12c7b8188135f329842a8e71b767b 100644 (file)
                interrupts = <1 12 0xff04>;
        };
 
-       i2cslimpro {
+       i2c {
                compatible = "apm,xgene-slimpro-i2c";
                mboxes = <&mailbox 0>;
        };
 
                reboot: reboot@17000014 {
                        compatible = "syscon-reboot";
+                       reg = <0x0 0x17000014 0x0 0x4>;
                        regmap = <&scu>;
                        offset = <0x14>;
                        mask = <0x1>;
 
                dma: dma@1f270000 {
                        compatible = "apm,xgene-storm-dma";
-                       device_type = "dma";
                        reg = <0x0 0x1f270000 0x0 0x10000>,
                              <0x0 0x1f200000 0x0 0x10000>,
                              <0x0 0x1b000000 0x0 0x400000>,
index e66a4c1c138fe82dcdd652d4d56a8f4583f660cb..67633c56a7238983517b36ba319a704424be07c5 100644 (file)
@@ -9,6 +9,10 @@
  * Copyright (c) 2024, Nick Chan <towinchenmi@gmail.com>
  */
 
+&dwi_bl {
+       status = "okay";
+};
+
 &ps_dcs4 {
        apple,always-on; /* LPDDR4 interface */
 };
index b5b00dca6ffa4caa1d504860693da001a8ced80e..209c7dd19b7c289096e22b3c86a825c53d19a78f 100644 (file)
                        power-domains = <&ps_aic>;
                };
 
+               dwi_bl: backlight@20e200080 {
+                       compatible = "apple,s8000-dwi-bl", "apple,dwi-bl";
+                       reg = <0x2 0x0e200080 0x0 0x8>;
+                       power-domains = <&ps_dwi>;
+                       status = "disabled";
+               };
+
                pinctrl_ap: pinctrl@20f100000 {
                        compatible = "apple,s8000-pinctrl", "apple,pinctrl";
                        reg = <0x2 0x0f100000 0x0 0x100000>;
index ffbe823b71bc8d9c0975524aa04efa9bf520a89e..6dcb71a1d65a8da82a512653a34ce6af3df8aee0 100644 (file)
@@ -11,6 +11,7 @@
 #include <dt-bindings/interrupt-controller/apple-aic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/apple.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/spmi/spmi.h>
 
 #include "multi-die-cpp.h"
index 2b7f80119618ad1b497b67597c55968585bd92a9..a2a24d028cbbf5f1703565e8bcdfd53826226a01 100644 (file)
 / {
        compatible = "apple,j375d", "apple,t6002", "apple,arm-platform";
        model = "Apple Mac Studio (M1 Ultra, 2022)";
+       aliases {
+               atcphy4 = &atcphy0_die1;
+               atcphy5 = &atcphy1_die1;
+       };
 };
 
 /* USB Type C */
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec4: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Front Right";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec4_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_4_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec4_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy4_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        /* front-left */
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec5: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Front Left";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec5_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_5_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec5_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy5_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 };
 
        brcm,board-type = "apple,okinawa";
 };
 
+/* USB controllers on die 1 */
+&dwc3_0_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_4_hs: endpoint {
+                               remote-endpoint = <&typec4_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_4_ss: endpoint {
+                               remote-endpoint = <&atcphy4_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_5_hs: endpoint {
+                               remote-endpoint = <&typec5_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_5_ss: endpoint {
+                               remote-endpoint = <&atcphy5_usb3>;
+                       };
+               };
+       };
+};
+
+/* Type-C PHYs */
+&atcphy0_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy4_typec_lanes: endpoint {
+                               remote-endpoint = <&typec4_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy4_usb3: endpoint {
+                               remote-endpoint = <&dwc3_4_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy5_typec_lanes: endpoint {
+                               remote-endpoint = <&typec5_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy5_usb3: endpoint {
+                               remote-endpoint = <&dwc3_5_ss>;
+                       };
+               };
+       };
+};
+
+/* delete unused USB nodes on die 1 */
+
+/delete-node/ &dwc3_2_dart_0_die1;
+/delete-node/ &dwc3_2_dart_1_die1;
+/delete-node/ &dwc3_2_die1;
+/delete-node/ &atcphy2_die1;
+
+/delete-node/ &dwc3_3_dart_0_die1;
+/delete-node/ &dwc3_3_dart_1_die1;
+/delete-node/ &dwc3_3_die1;
+/delete-node/ &atcphy3_die1;
+
 /* delete unused always-on power-domains on die 1 */
 
 /delete-node/ &ps_atc2_usb_aon_die1;
index 8fb648836b538bbd9efdccd6cec5d08d868a0d39..a532e5401c4ec430d8ff649a92459c80e9b6bb2b 100644 (file)
@@ -11,6 +11,7 @@
 #include <dt-bindings/interrupt-controller/apple-aic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/apple.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/spmi/spmi.h>
 
 #include "multi-die-cpp.h"
index 3603b276a2abcfa6a730f58d5c6b9914f22f00b0..f715b19efd1679e5cd384a967d6e2a7c261ee679 100644 (file)
                        nvmem-cell-names = "shutdown_flag", "boot_stage",
                                "boot_error_count", "panic_count";
                };
+
+               rtc {
+                       compatible = "apple,smc-rtc";
+                       nvmem-cells = <&rtc_offset>;
+                       nvmem-cell-names = "rtc_offset";
+               };
        };
 
        smc_mbox: mbox@290408000 {
index a32ff0c9d7b0c2ec720e9d4cf8e769da6431fbba..9676d5127039b76bdd53d5f8fa634118929af9db 100644 (file)
                interrupt-controller;
                #interrupt-cells = <2>;
        };
+
+       DIE_NODE(dwc3_0): usb@702280000 {
+               compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
+               reg = <0x7 0x02280000 0x0 0xcd00>, <0x7 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1190 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_0_dart_0) 0>,
+                       <&DIE_NODE(dwc3_0_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+               resets = <&DIE_NODE(atcphy0)>;
+               phys = <&DIE_NODE(atcphy0) PHY_TYPE_USB2>, <&DIE_NODE(atcphy0) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_0_dart_0): iommu@702f00000 {
+               compatible = "apple,t6000-dart";
+               reg = <0x7 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1194 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_0_dart_1): iommu@702f80000 {
+               compatible = "apple,t6000-dart";
+               reg = <0x7 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1194 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy0): phy@703000000 {
+               compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
+               reg = <0x7 0x03000000 0x0 0x4c000>,
+                       <0x7 0x03050000 0x0 0x8000>,
+                       <0x7 0x00000000 0x0 0x4000>,
+                       <0x7 0x02a90000 0x0 0x4000>,
+                       <0x7 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+       };
+
+       DIE_NODE(dwc3_1): usb@b02280000 {
+               compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
+               reg = <0xb 0x02280000 0x0 0xcd00>, <0xb 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1207 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_1_dart_0) 0>,
+                       <&DIE_NODE(dwc3_1_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+               resets = <&DIE_NODE(atcphy1)>;
+               phys = <&DIE_NODE(atcphy1) PHY_TYPE_USB2>, <&DIE_NODE(atcphy1) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_1_dart_0): iommu@b02f00000 {
+               compatible = "apple,t6000-dart";
+               reg = <0xb 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1211 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_1_dart_1): iommu@b02f80000 {
+               compatible = "apple,t6000-dart";
+               reg = <0xb 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1211 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy1): phy@b03000000 {
+               compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
+               reg = <0xb 0x03000000 0x0 0x4c000>,
+                       <0xb 0x03050000 0x0 0x8000>,
+                       <0xb 0x00000000 0x0 0x4000>,
+                       <0xb 0x02a90000 0x0 0x4000>,
+                       <0xb 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+       };
+
+       DIE_NODE(dwc3_2): usb@f02280000 {
+               compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
+               reg = <0xf 0x02280000 0x0 0xcd00>, <0xf 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1224 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_2_dart_0) 0>,
+                       <&DIE_NODE(dwc3_2_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+               resets = <&DIE_NODE(atcphy2)>;
+               phys = <&DIE_NODE(atcphy2) PHY_TYPE_USB2>, <&DIE_NODE(atcphy2) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_2_dart_0): iommu@f02f00000 {
+               compatible = "apple,t6000-dart";
+               reg = <0xf 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1228 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_2_dart_1): iommu@f02f80000 {
+               compatible = "apple,t6000-dart";
+               reg = <0xf 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1228 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy2): phy@f03000000 {
+               compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
+               reg = <0xf 0x03000000 0x0 0x4c000>,
+                       <0xf 0x03050000 0x0 0x8000>,
+                       <0xf 0x00000000 0x0 0x4000>,
+                       <0xf 0x02a90000 0x0 0x4000>,
+                       <0xf 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+       };
+
+       DIE_NODE(dwc3_3): usb@1302280000 {
+               compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
+               reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1241 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_3_dart_0) 0>,
+                       <&DIE_NODE(dwc3_3_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+               resets = <&DIE_NODE(atcphy3)>;
+               phys = <&DIE_NODE(atcphy3) PHY_TYPE_USB2>, <&DIE_NODE(atcphy3) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_3_dart_0): iommu@1302f00000 {
+               compatible = "apple,t6000-dart";
+               reg = <0x13 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1245 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_3_dart_1): iommu@1302f80000 {
+               compatible = "apple,t6000-dart";
+               reg = <0x13 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1245 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy3): phy@1303000000 {
+               compatible = "apple,t6000-atcphy", "apple,t8103-atcphy";
+               reg = <0x13 0x03000000 0x0 0x4c000>,
+                       <0x13 0x03050000 0x0 0x8000>,
+                       <0x13 0x00000000 0x0 0x4000>,
+                       <0x13 0x02a90000 0x0 0x4000>,
+                       <0x13 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+       };
index c0aac59a6fae4f6f4b387483665349a8e2521c1e..fee84f809a9cc3e6acf9cd0fafbc05ec25fc2d02 100644 (file)
 #include <dt-bindings/leds/common.h>
 
 / {
+       chassis-type = "laptop";
+
        aliases {
+               atcphy0 = &atcphy0;
+               atcphy1 = &atcphy1;
+               atcphy2 = &atcphy2;
+               atcphy3 = &atcphy3;
                bluetooth0 = &bluetooth0;
                serial0 = &serial0;
                wifi0 = &wifi0;
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec0: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Left Rear";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec0_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_0_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec0_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy0_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm1: usb-pd@3f {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec1: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Left Front";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec1_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_1_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec1_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy1_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm2: usb-pd@3b {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec2: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Right";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec2_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_2_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec2_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy2_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        /* MagSafe port */
        status = "okay";
 };
 
+/* USB controllers */
+&dwc3_0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_0_hs: endpoint {
+                               remote-endpoint = <&typec0_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_0_ss: endpoint {
+                               remote-endpoint = <&atcphy0_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_1_hs: endpoint {
+                               remote-endpoint = <&typec1_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_1_ss: endpoint {
+                               remote-endpoint = <&atcphy1_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_2 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_2_hs: endpoint {
+                               remote-endpoint = <&typec2_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_2_ss: endpoint {
+                               remote-endpoint = <&atcphy2_usb3>;
+                       };
+               };
+       };
+};
+
+/*
+ * ps_atc3_usb_aon power-domain is always-on to keep dwc3 working over suspend.
+ * atc3 is used exclusively for the DP-to-HDMI so do not keep this always on.
+ */
+&ps_atc3_usb_aon {
+       /delete-property/ apple,always-on;
+};
+
+/* ATC3 is used for DisplayPort -> HDMI only */
+&dwc3_3_dart_0 {
+       status = "disabled";
+};
+
+&dwc3_3_dart_1 {
+       status = "disabled";
+};
+
+&dwc3_3 {
+       status = "disabled";
+};
+
+/* Delete unused dwc3_3 to prevent dt_disable_missing_devs() from disabling
+ * atcphy3 via phandle references from a disablecd device.
+ */
+/delete-node/ &dwc3_3;
+
+/* Type-C PHYs */
+&atcphy0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy0_typec_lanes: endpoint {
+                               remote-endpoint = <&typec0_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy0_usb3: endpoint {
+                               remote-endpoint = <&dwc3_0_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy1_typec_lanes: endpoint {
+                               remote-endpoint = <&typec1_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy1_usb3: endpoint {
+                               remote-endpoint = <&dwc3_1_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy2 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy2_typec_lanes: endpoint {
+                               remote-endpoint = <&typec2_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy2_usb3: endpoint {
+                               remote-endpoint = <&dwc3_2_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy3 {
+       status = "disabled";
+};
+
 #include "spi1-nvram.dtsi"
index c0fb93ae72f4d4fcb254a36dc408d55ab1bca0e9..8a1494949e4c5882d8831884310b56a6635a5f08 100644 (file)
  */
 
 / {
+       chassis-type = "desktop";
+
        aliases {
+               atcphy0 = &atcphy0;
+               atcphy1 = &atcphy1;
+               atcphy2 = &atcphy2;
+               atcphy3 = &atcphy3;
                bluetooth0 = &bluetooth0;
                ethernet0 = &ethernet0;
                serial0 = &serial0;
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec0: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back Left";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec0_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_0_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec0_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy0_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm1: usb-pd@3f {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec1: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back Left Middle";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec1_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_1_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec1_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy1_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm2: usb-pd@3b {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec2: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back Right Middle";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec2_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_2_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec2_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy2_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm3: usb-pd@3c {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <174 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec3: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back Right";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec3_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_3_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec3_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy3_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+/* USB controllers */
+&dwc3_0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_0_hs: endpoint {
+                               remote-endpoint = <&typec0_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_0_ss: endpoint {
+                               remote-endpoint = <&atcphy0_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_1_hs: endpoint {
+                               remote-endpoint = <&typec1_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_1_ss: endpoint {
+                               remote-endpoint = <&atcphy1_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_2 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_2_hs: endpoint {
+                               remote-endpoint = <&typec2_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_2_ss: endpoint {
+                               remote-endpoint = <&atcphy2_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_3 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_3_hs: endpoint {
+                               remote-endpoint = <&typec3_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_3_ss: endpoint {
+                               remote-endpoint = <&atcphy3_usb3>;
+                       };
+               };
+       };
+};
+
+/* Type-C PHYs */
+&atcphy0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy0_typec_lanes: endpoint {
+                               remote-endpoint = <&typec0_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy0_usb3: endpoint {
+                               remote-endpoint = <&dwc3_0_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy1_typec_lanes: endpoint {
+                               remote-endpoint = <&typec1_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy1_usb3: endpoint {
+                               remote-endpoint = <&dwc3_1_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy2 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy2_typec_lanes: endpoint {
+                               remote-endpoint = <&typec2_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy2_usb3: endpoint {
+                               remote-endpoint = <&dwc3_2_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy3 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy3_typec_lanes: endpoint {
+                               remote-endpoint = <&typec3_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy3_usb3: endpoint {
+                               remote-endpoint = <&dwc3_3_ss>;
+                       };
+               };
        };
 };
 
index dca6bd167c225aa23e78e1c644bf6c97f42d46b5..f76b887429dd2770c9f41e5657a6e97051b47528 100644 (file)
 / {
        compatible = "apple,j180d", "apple,t6022", "apple,arm-platform";
        model = "Apple Mac Pro (M2 Ultra, 2023)";
+       chassis-type = "server";
+
        aliases {
+               atcphy0 = &atcphy0;
+               atcphy1 = &atcphy1;
+               atcphy2 = &atcphy2;
+               atcphy3 = &atcphy3;
+               atcphy4 = &atcphy0_die1;
+               atcphy5 = &atcphy1_die1;
+               atcphy6 = &atcphy2_die1;
+               atcphy7 = &atcphy3_die1;
                nvram = &nvram;
                serial0 = &serial0;
        };
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec2: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back 1";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec2_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_2_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec2_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy2_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm3: usb-pd@3c {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec3: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back 2";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec3_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_3_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec3_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy3_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        /* hpm4 and hpm5 included from t6022-jxxxd.dtsi */
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec6: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back 5";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec6_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_6_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec6_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy6_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm7: usb-pd@3e {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec7: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Back 6";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec7_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_7_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec7_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy7_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 };
 
+&typec4 {
+       label = "USB-C Back 3";
+};
+
+&typec5 {
+       label = "USB-C Back 4";
+};
+
 /* USB Type C Front */
 &i2c3 {
        status = "okay";
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <60 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec0: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Top Right";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec0_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_0_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec0_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy0_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm1: usb-pd@3f {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <60 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec1: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C Top Left";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec1_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_1_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec1_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy1_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+/* USB controllers */
+&dwc3_0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_0_hs: endpoint {
+                               remote-endpoint = <&typec0_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_0_ss: endpoint {
+                               remote-endpoint = <&atcphy0_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_1_hs: endpoint {
+                               remote-endpoint = <&typec1_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_1_ss: endpoint {
+                               remote-endpoint = <&atcphy1_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_2 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_2_hs: endpoint {
+                               remote-endpoint = <&typec2_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_2_ss: endpoint {
+                               remote-endpoint = <&atcphy2_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_3 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_3_hs: endpoint {
+                               remote-endpoint = <&typec3_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_3_ss: endpoint {
+                               remote-endpoint = <&atcphy3_usb3>;
+                       };
+               };
+       };
+};
+
+/* USB controllers on die 1 */
+&dwc3_2_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_6_hs: endpoint {
+                               remote-endpoint = <&typec6_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_6_ss: endpoint {
+                               remote-endpoint = <&atcphy6_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_3_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_7_hs: endpoint {
+                               remote-endpoint = <&typec7_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_7_ss: endpoint {
+                               remote-endpoint = <&atcphy7_usb3>;
+                       };
+               };
+       };
+};
+
+/* Type-C PHYs */
+&atcphy0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy0_typec_lanes: endpoint {
+                               remote-endpoint = <&typec0_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy0_usb3: endpoint {
+                               remote-endpoint = <&dwc3_0_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy1_typec_lanes: endpoint {
+                               remote-endpoint = <&typec1_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy1_usb3: endpoint {
+                               remote-endpoint = <&dwc3_1_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy2 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy2_typec_lanes: endpoint {
+                               remote-endpoint = <&typec2_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy2_usb3: endpoint {
+                               remote-endpoint = <&dwc3_2_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy3 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy3_typec_lanes: endpoint {
+                               remote-endpoint = <&typec3_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy3_usb3: endpoint {
+                               remote-endpoint = <&dwc3_3_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy2_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy6_typec_lanes: endpoint {
+                               remote-endpoint = <&typec6_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy6_usb3: endpoint {
+                               remote-endpoint = <&dwc3_6_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy3_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy7_typec_lanes: endpoint {
+                               remote-endpoint = <&typec7_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy7_usb3: endpoint {
+                               remote-endpoint = <&dwc3_7_ss>;
+                       };
+               };
        };
 };
 
index 736594544f79b5e45f6ea0c98e6c71d948ef7a43..31f24bbda9689b51c54a8f6cd42b2ad396082be5 100644 (file)
 / {
        compatible = "apple,j475d", "apple,t6022", "apple,arm-platform";
        model = "Apple Mac Studio (M2 Ultra, 2023)";
+
+       aliases {
+               atcphy4 = &atcphy0_die1;
+               atcphy5 = &atcphy1_die1;
+       };
 };
 
 &framebuffer0 {
        status = "okay";
 };
 
+&typec4 {
+       label = "USB-C Front Right";
+};
+
+&typec5 {
+       label = "USB-C Front Left";
+};
+
+/* delete unused USB nodes on die 1 */
+/delete-node/ &dwc3_2_dart_0_die1;
+/delete-node/ &dwc3_2_dart_1_die1;
+/delete-node/ &dwc3_2_die1;
+/delete-node/ &atcphy2_die1;
+
+/delete-node/ &dwc3_3_dart_0_die1;
+/delete-node/ &dwc3_3_dart_1_die1;
+/delete-node/ &dwc3_3_die1;
+/delete-node/ &atcphy3_die1;
+
+/* delete unused always-on power-domains on die 1 */
+/delete-node/ &ps_atc2_usb_aon_die1;
+/delete-node/ &ps_atc2_usb_die1;
+
+/delete-node/ &ps_atc3_usb_aon_die1;
+/delete-node/ &ps_atc3_usb_die1;
+
 &wifi0 {
        compatible = "pci14e4,4434";
        brcm,board-type = "apple,canary";
index 4f7bf2ebfe397dbde6451672d74ef76fe782bcd0..dc877bd604f827fdb944e2111309045e33b8370f 100644 (file)
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec4: connector {
+                       compatible = "usb-c-connector";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec4_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_4_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec4_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy4_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        /* front-left */
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec5: connector {
+                       compatible = "usb-c-connector";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec5_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_5_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec5_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy5_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+
+/* USB controllers on die 1 */
+&dwc3_0_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_4_hs: endpoint {
+                               remote-endpoint = <&typec4_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_4_ss: endpoint {
+                               remote-endpoint = <&atcphy4_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_5_hs: endpoint {
+                               remote-endpoint = <&typec5_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_5_ss: endpoint {
+                               remote-endpoint = <&atcphy5_usb3>;
+                       };
+               };
+       };
+};
+
+/* Type-C PHYs */
+&atcphy0_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy4_typec_lanes: endpoint {
+                               remote-endpoint = <&typec4_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy4_usb3: endpoint {
+                               remote-endpoint = <&dwc3_4_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1_die1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy5_typec_lanes: endpoint {
+                               remote-endpoint = <&typec5_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy5_usb3: endpoint {
+                               remote-endpoint = <&dwc3_5_ss>;
+                       };
+               };
        };
 };
index 2e7d2bf08ddc829e87d3776163503b0eaae843a7..8622ddea7b44539ff34b00bac773c0cb4e5197b2 100644 (file)
                        nvmem-cell-names = "shutdown_flag", "boot_stage",
                                "boot_error_count", "panic_count";
                };
+
+               rtc {
+                       compatible = "apple,smc-rtc";
+                       nvmem-cells = <&rtc_offset>;
+                       nvmem-cell-names = "rtc_offset";
+               };
        };
 
        pinctrl_smc: pinctrl@2a2820000 {
index cb07fd82b32e67a41d8290bf8347d4eca474af23..ae3d535c5acb372cc94b4891e104d2248394484d 100644 (file)
 
                reg = <0x4 0x4e80000 0 0x4000>;
        };
+
+       DIE_NODE(dwc3_0): usb@702280000 {
+               compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
+               reg = <0x7 0x02280000 0x0 0xcd00>, <0x7 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1256 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_0_dart_0) 0>,
+                       <&DIE_NODE(dwc3_0_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+               resets = <&DIE_NODE(atcphy0)>;
+               phys = <&DIE_NODE(atcphy0) PHY_TYPE_USB2>, <&DIE_NODE(atcphy0) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_0_dart_0): iommu@702f00000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0x7 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1260 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_0_dart_1): iommu@702f80000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0x7 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1260 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy0): phy@703000000 {
+               compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
+               reg = <0x7 0x03000000 0x0 0x4c000>,
+                       <0x7 0x03050000 0x0 0x8000>,
+                       <0x7 0x00000000 0x0 0x4000>,
+                       <0x7 0x02a90000 0x0 0x4000>,
+                       <0x7 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc0_usb)>;
+       };
+
+       DIE_NODE(dwc3_1): usb@b02280000 {
+               compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
+               reg = <0xb 0x02280000 0x0 0xcd00>, <0xb 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1274 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_1_dart_0) 0>,
+                       <&DIE_NODE(dwc3_1_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+               resets = <&DIE_NODE(atcphy1)>;
+               phys = <&DIE_NODE(atcphy1) PHY_TYPE_USB2>, <&DIE_NODE(atcphy1) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_1_dart_0): iommu@b02f00000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0xb 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1278 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_1_dart_1): iommu@b02f80000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0xb 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1278 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy1): phy@b03000000 {
+               compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
+               reg = <0xb 0x03000000 0x0 0x4c000>,
+                       <0xb 0x03050000 0x0 0x8000>,
+                       <0xb 0x00000000 0x0 0x4000>,
+                       <0xb 0x02a90000 0x0 0x4000>,
+                       <0xb 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc1_usb)>;
+       };
+
+       DIE_NODE(dwc3_2): usb@f02280000 {
+               compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
+               reg = <0xf 0x02280000 0x0 0xcd00>, <0xf 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1292 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_2_dart_0) 0>,
+                       <&DIE_NODE(dwc3_2_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+               resets = <&DIE_NODE(atcphy2)>;
+               phys = <&DIE_NODE(atcphy2) PHY_TYPE_USB2>, <&DIE_NODE(atcphy2) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_2_dart_0): iommu@f02f00000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0xf 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1296 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_2_dart_1): iommu@f02f80000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0xf 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1296 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy2): phy@f03000000 {
+               compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
+               reg = <0xf 0x03000000 0x0 0x4c000>,
+                       <0xf 0x03050000 0x0 0x8000>,
+                       <0xf 0x00000000 0x0 0x4000>,
+                       <0xf 0x02a90000 0x0 0x4000>,
+                       <0xf 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc2_usb)>;
+       };
+
+       DIE_NODE(dwc3_3): usb@1302280000 {
+               compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
+               reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;
+               reg-names = "dwc3-core", "dwc3-apple";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1310 IRQ_TYPE_LEVEL_HIGH>;
+               dr_mode = "otg";
+               usb-role-switch;
+               role-switch-default-mode = "host";
+               iommus = <&DIE_NODE(dwc3_3_dart_0) 0>,
+                       <&DIE_NODE(dwc3_3_dart_1) 1>;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+               resets = <&DIE_NODE(atcphy3)>;
+               phys = <&DIE_NODE(atcphy3) PHY_TYPE_USB2>, <&DIE_NODE(atcphy3) PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+       };
+
+       DIE_NODE(dwc3_3_dart_0): iommu@1302f00000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0x13 0x02f00000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1314 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(dwc3_3_dart_1): iommu@1302f80000 {
+               compatible = "apple,t6020-dart", "apple,t8110-dart";
+               reg = <0x13 0x02f80000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ DIE_NO 1314 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+               #iommu-cells = <1>;
+       };
+
+       DIE_NODE(atcphy3): phy@1303000000 {
+               compatible = "apple,t6020-atcphy", "apple,t8103-atcphy";
+               reg = <0x13 0x03000000 0x0 0x4c000>,
+                       <0x13 0x03050000 0x0 0x8000>,
+                       <0x13 0x00000000 0x0 0x4000>,
+                       <0x13 0x02a90000 0x0 0x4000>,
+                       <0x13 0x02a84000 0x0 0x4000>;
+               reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                       "pipehandler";
+
+               #phy-cells = <1>;
+               #reset-cells = <0>;
+
+               orientation-switch;
+               mode-switch;
+               power-domains = <&DIE_NODE(ps_atc3_usb)>;
+       };
index 1c3e37f86d46d7b5d733717b47c4b57dc55e1201..52965258200da354f067aab02091c9771d2e4cb4 100644 (file)
@@ -15,6 +15,7 @@
 / {
        compatible = "apple,j274", "apple,t8103", "apple,arm-platform";
        model = "Apple Mac mini (M1, 2020)";
+       chassis-type = "desktop";
 
        aliases {
                ethernet0 = &ethernet0;
        brcm,board-type = "apple,atlantisb";
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Back-left";
+};
+
+&typec1 {
+       label = "USB-C Back-right";
+};
+
 /*
  * Force the bus number assignments so that we can declare some of the
  * on-board devices and properties that are populated by the bootloader
index 5b3c42e9f0e6776241bf746d3458766e44e3639a..52f63ae7a58dd8abe6794d820d83a636d5256433 100644 (file)
@@ -16,6 +16,7 @@
 / {
        compatible = "apple,j293", "apple,t8103", "apple,arm-platform";
        model = "Apple MacBook Pro (13-inch, M1, 2020)";
+       chassis-type = "laptop";
 
        /*
         * All of those are used by the bootloader to pass calibration
        brcm,board-type = "apple,honshu";
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Left-back";
+};
+
+&typec1 {
+       label = "USB-C Left-front";
+};
+
 &i2c2 {
        status = "okay";
 };
index 97a4344d8dca685708aff136af92a1b316f3c3dd..9eb2825d25dcbaf64419747f12440c8c35c80af1 100644 (file)
@@ -16,6 +16,7 @@
 / {
        compatible = "apple,j313", "apple,t8103", "apple,arm-platform";
        model = "Apple MacBook Air (M1, 2020)";
+       chassis-type = "laptop";
 
        led-controller {
                compatible = "pwm-leds";
 &fpwm1 {
        status = "okay";
 };
+
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Left-back";
+};
+
+&typec1 {
+       label = "USB-C Left-front";
+};
index 58c8e43789b4861544e20c717124ede3327be010..090c97bb781b323da37c55c3b40cd412a4d0a6c5 100644 (file)
@@ -15,6 +15,7 @@
 / {
        compatible = "apple,j456", "apple,t8103", "apple,arm-platform";
        model = "Apple iMac (24-inch, 4x USB-C, M1, 2021)";
+       chassis-type = "all-in-one";
 
        aliases {
                ethernet0 = &ethernet0;
        };
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Back-right";
+};
+
+&typec1 {
+       label = "USB-C Back-right-middle";
+};
+
 /*
  * Force the bus number assignments so that we can declare some of the
  * on-board devices and properties that are populated by the bootloader
index 7089ccf3ce55661f3f83810496daed40c8199189..ebddde75455c692c8e6df5fd255fb0b08ebdf55b 100644 (file)
@@ -15,6 +15,7 @@
 / {
        compatible = "apple,j457", "apple,t8103", "apple,arm-platform";
        model = "Apple iMac (24-inch, 2x USB-C, M1, 2021)";
+       chassis-type = "all-in-one";
 
        aliases {
                ethernet0 = &ethernet0;
        brcm,board-type = "apple,santorini";
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Back-right";
+};
+
+&typec1 {
+       label = "USB-C Back-left";
+};
+
 /*
  * Force the bus number assignments so that we can declare some of the
  * on-board devices and properties that are populated by the bootloader
index 0c8206156bfefda8a32c869787b2e0c8e67a9d17..686fb1dd215d2d11e736826a254e17b6eab27c3e 100644 (file)
@@ -15,6 +15,8 @@
                serial0 = &serial0;
                serial2 = &serial2;
                wifi0 = &wifi0;
+               atcphy0 = &atcphy0;
+               atcphy1 = &atcphy1;
        };
 
        chosen {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec0: connector {
+                       compatible = "usb-c-connector";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec0_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_0_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec0_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy0_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm1: usb-pd@3f {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <106 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec1: connector {
+                       compatible = "usb-c-connector";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec1_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_1_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec1_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy1_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+/* USB controllers */
+&dwc3_0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_0_hs: endpoint {
+                               remote-endpoint = <&typec0_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_0_ss: endpoint {
+                               remote-endpoint = <&atcphy0_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_1_hs: endpoint {
+                               remote-endpoint = <&typec1_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_1_ss: endpoint {
+                               remote-endpoint = <&atcphy1_usb3>;
+                       };
+               };
+       };
+};
+
+/* Type-C PHYs */
+&atcphy0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy0_typec_lanes: endpoint {
+                               remote-endpoint = <&typec0_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy0_usb3: endpoint {
+                               remote-endpoint = <&dwc3_0_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy1_typec_lanes: endpoint {
+                               remote-endpoint = <&typec1_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy1_usb3: endpoint {
+                               remote-endpoint = <&dwc3_1_ss>;
+                       };
+               };
        };
 };
 
index c41c57d63997a59a9fe3c88de31fddb31781398e..fef8a4058f14159d953fdc1d47ed83950e30a37e 100644 (file)
                #power-domain-cells = <0>;
                #reset-cells = <0>;
                label = "gfx";
+               power-domains = <&ps_pmp>;
        };
 
        ps_dcs4: power-controller@320 {
                #power-domain-cells = <0>;
                #reset-cells = <0>;
                label = "atc0_usb_aon";
+               apple,always-on; /* Needs to stay on for dwc3 to work */
        };
 
        ps_atc1_usb_aon: power-controller@90 {
                #power-domain-cells = <0>;
                #reset-cells = <0>;
                label = "atc1_usb_aon";
+               apple,always-on; /* Needs to stay on for dwc3 to work */
        };
 
        ps_atc0_usb: power-controller@98 {
index 8b7b27887968741b745651e5133dffa7d8d20f6d..da774096b6674b2bc8e21c23bd70691b865d4ccf 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/apple.h>
 #include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        compatible = "apple,t8103", "apple,arm-platform";
                                nvmem-cell-names = "shutdown_flag", "boot_stage",
                                        "boot_error_count", "panic_count";
                        };
+
+                       rtc {
+                               compatible = "apple,smc-rtc";
+                               nvmem-cells = <&rtc_offset>;
+                               nvmem-cell-names = "rtc_offset";
+                       };
                };
 
                smc_mbox: mbox@23e408000 {
                        resets = <&ps_ans2>;
                };
 
+               dwc3_0: usb@382280000 {
+                       compatible = "apple,t8103-dwc3";
+                       reg = <0x3 0x82280000 0x0 0xcd00>, <0x3 0x8228cd00 0x0 0x3200>;
+                       reg-names = "dwc3-core", "dwc3-apple";
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>;
+                       dr_mode = "otg";
+                       usb-role-switch;
+                       role-switch-default-mode = "host";
+                       iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
+                       power-domains = <&ps_atc0_usb>;
+                       resets = <&atcphy0>;
+                       phys = <&atcphy0 PHY_TYPE_USB2>, <&atcphy0 PHY_TYPE_USB3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+               };
+
+               dwc3_0_dart_0: iommu@382f00000 {
+                       compatible = "apple,t8103-dart";
+                       reg = <0x3 0x82f00000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc0_usb>;
+               };
+
+               dwc3_0_dart_1: iommu@382f80000 {
+                       compatible = "apple,t8103-dart";
+                       reg = <0x3 0x82f80000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc0_usb>;
+               };
+
+               atcphy0: phy@383000000 {
+                       compatible = "apple,t8103-atcphy";
+                       reg = <0x3 0x83000000 0x0 0x4c000>,
+                               <0x3 0x83050000 0x0 0x8000>,
+                               <0x3 0x80000000 0x0 0x4000>,
+                               <0x3 0x82a90000 0x0 0x4000>,
+                               <0x3 0x82a84000 0x0 0x4000>;
+                       reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                               "pipehandler";
+
+                       #phy-cells = <1>;
+                       #reset-cells = <0>;
+
+                       orientation-switch;
+                       mode-switch;
+                       power-domains = <&ps_atc0_usb>;
+               };
+
+               dwc3_1: usb@502280000 {
+                       compatible = "apple,t8103-dwc3";
+                       reg = <0x5 0x02280000 0x0 0xcd00>, <0x5 0x0228cd00 0x0 0x3200>;
+                       reg-names = "dwc3-core", "dwc3-apple";
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 857 IRQ_TYPE_LEVEL_HIGH>;
+                       dr_mode = "otg";
+                       usb-role-switch;
+                       role-switch-default-mode = "host";
+                       iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>;
+                       power-domains = <&ps_atc1_usb>;
+                       resets = <&atcphy1>;
+                       phys = <&atcphy1 PHY_TYPE_USB2>, <&atcphy1 PHY_TYPE_USB3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+               };
+
+               dwc3_1_dart_0: iommu@502f00000 {
+                       compatible = "apple,t8103-dart";
+                       reg = <0x5 0x02f00000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc1_usb>;
+               };
+
+               dwc3_1_dart_1: iommu@502f80000 {
+                       compatible = "apple,t8103-dart";
+                       reg = <0x5 0x02f80000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 861 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc1_usb>;
+               };
+
+               atcphy1: phy@503000000 {
+                       compatible = "apple,t8103-atcphy";
+                       reg = <0x5 0x03000000 0x0 0x4c000>,
+                               <0x5 0x03050000 0x0 0x8000>,
+                               <0x5 0x0 0x0 0x4000>,
+                               <0x5 0x02a90000 0x0 0x4000>,
+                               <0x5 0x02a84000 0x0 0x4000>;
+                       reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                               "pipehandler";
+
+                       #phy-cells = <1>;
+                       #reset-cells = <0>;
+
+                       orientation-switch;
+                       mode-switch;
+                       power-domains = <&ps_atc1_usb>;
+               };
+
                pcie0_dart_0: iommu@681008000 {
                        compatible = "apple,t8103-dart";
                        reg = <0x6 0x81008000 0x0 0x4000>;
index 6f69658623bf89ce73e3486bce504f1f5f8003f3..1a08a41f369bfe253fd4c0de3d3459a88e9ff19f 100644 (file)
@@ -16,6 +16,7 @@
 / {
        compatible = "apple,j413", "apple,t8112", "apple,arm-platform";
        model = "Apple MacBook Air (13-inch, M2, 2022)";
+       chassis-type = "laptop";
 
        aliases {
                bluetooth0 = &bluetooth0;
        };
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Left-back";
+};
+
+&typec1 {
+       label = "USB-C Left-front";
+};
+
 &i2c0 {
        /* MagSafe port */
        hpm5: usb-pd@3a {
index b54e218e5384ca89155e4350d6680a28a531f408..e37c56d9fb4d6606a3d5aaee0739c85b0fce1dbf 100644 (file)
@@ -16,6 +16,7 @@
 / {
        compatible = "apple,j415", "apple,t8112", "apple,arm-platform";
        model = "Apple MacBook Air (15-inch, M2, 2023)";
+       chassis-type = "laptop";
 
        aliases {
                bluetooth0 = &bluetooth0;
        };
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Left-back";
+};
+
+&typec1 {
+       label = "USB-C Left-front";
+};
+
 &i2c0 {
        /* MagSafe port */
        hpm5: usb-pd@3a {
index 06fe257f08be498ace6906b936012e01084da702..438f972546b8133f09bcccb18e080d66cdac6e5a 100644 (file)
 / {
        compatible = "apple,j473", "apple,t8112", "apple,arm-platform";
        model = "Apple Mac mini (M2, 2023)";
+       chassis-type = "desktop";
 
        aliases {
                ethernet0 = &ethernet0;
        };
 };
 
+/*
+ * Keep the power-domains used for the HDMI port on.
+ */
+&framebuffer0 {
+       power-domains = <&ps_dispext_cpu0>, <&ps_dptx_ext_phy>;
+};
+
+/*
+ * The M2 Mac mini uses dispext for the HDMI output so it's not necessary to
+ * keep disp0 power-domains always-on.
+ */
+&ps_disp0_sys {
+       /delete-property/ apple,always-on;
+};
+
+&ps_disp0_fe {
+       /delete-property/ apple,always-on;
+};
+
 /*
  * Force the bus number assignments so that we can declare some of the
  * on-board devices and properties that are populated by the bootloader
 &pcie2_dart {
        status = "okay";
 };
+
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Back-left";
+};
+
+&typec1 {
+       label = "USB-C Back-right";
+};
index fb8ad7d4c65a8fe7966f5541f24f03a379143cfb..ec116da3e4dd9e22dc0406733e5089381e4850a4 100644 (file)
@@ -16,6 +16,7 @@
 / {
        compatible = "apple,j493", "apple,t8112", "apple,arm-platform";
        model = "Apple MacBook Pro (13-inch, M2, 2022)";
+       chassis-type = "laptop";
 
        /*
         * All of those are used by the bootloader to pass calibration
        };
 };
 
+/*
+ * Provide labels for the USB type C ports.
+ */
+
+&typec0 {
+       label = "USB-C Left-back";
+};
+
+&typec1 {
+       label = "USB-C Left-front";
+};
+
 &i2c4 {
        status = "okay";
 };
index 6da35496a4c88dbaba125ebbe8c5a4a428c647c3..562e7a25a1e8843f516c3d7327254049332cd08d 100644 (file)
@@ -11,6 +11,8 @@
 
 / {
        aliases {
+               atcphy0 = &atcphy0;
+               atcphy1 = &atcphy1;
                serial0 = &serial0;
                serial2 = &serial2;
        };
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec0: connector {
+                       compatible = "usb-c-connector";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec0_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_0_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec0_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy0_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
        };
 
        hpm1: usb-pd@3f {
                interrupt-parent = <&pinctrl_ap>;
                interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "irq";
+
+               typec1: connector {
+                       compatible = "usb-c-connector";
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       typec1_connector_hs: endpoint {
+                                               remote-endpoint = <&dwc3_1_hs>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       typec1_connector_ss: endpoint {
+                                               remote-endpoint = <&atcphy1_typec_lanes>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+/* USB controllers */
+&dwc3_0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_0_hs: endpoint {
+                               remote-endpoint = <&typec0_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_0_ss: endpoint {
+                               remote-endpoint = <&atcphy0_usb3>;
+                       };
+               };
+       };
+};
+
+&dwc3_1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dwc3_1_hs: endpoint {
+                               remote-endpoint = <&typec1_connector_hs>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dwc3_1_ss: endpoint {
+                               remote-endpoint = <&atcphy1_usb3>;
+                       };
+               };
+       };
+};
+
+/* Type-C PHYs */
+&atcphy0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy0_typec_lanes: endpoint {
+                               remote-endpoint = <&typec0_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy0_usb3: endpoint {
+                               remote-endpoint = <&dwc3_0_ss>;
+                       };
+               };
+       };
+};
+
+&atcphy1 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       atcphy1_typec_lanes: endpoint {
+                               remote-endpoint = <&typec1_connector_ss>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       atcphy1_usb3: endpoint {
+                               remote-endpoint = <&dwc3_1_ss>;
+                       };
+               };
        };
 };
 
index 3f79878b25af1f7760088aa552589494d67347fb..85c47422d4e8e3d86446846cff679c6d1a7370d7 100644 (file)
@@ -11,6 +11,7 @@
 #include <dt-bindings/interrupt-controller/apple-aic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pinctrl/apple.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/spmi/spmi.h>
 
 / {
                                nvmem-cell-names = "shutdown_flag", "boot_stage",
                                        "boot_error_count", "panic_count";
                        };
+
+                       rtc {
+                               compatible = "apple,smc-rtc";
+                               nvmem-cells = <&rtc_offset>;
+                               nvmem-cell-names = "rtc_offset";
+                       };
                };
 
                smc_mbox: mbox@23e408000 {
                        resets = <&ps_ans>;
                };
 
+               dwc3_0: usb@382280000 {
+                       compatible = "apple,t8112-dwc3", "apple,t8103-dwc3";
+                       reg = <0x3 0x82280000 0x0 0xcd00>, <0x3 0x8228cd00 0x0 0x3200>;
+                       reg-names = "dwc3-core", "dwc3-apple";
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 1031 IRQ_TYPE_LEVEL_HIGH>;
+                       dr_mode = "otg";
+                       usb-role-switch;
+                       role-switch-default-mode = "host";
+                       iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
+                       power-domains = <&ps_atc0_usb>;
+                       resets = <&atcphy0>;
+                       phys = <&atcphy0 PHY_TYPE_USB2>, <&atcphy0 PHY_TYPE_USB3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+               };
+
+               dwc3_0_dart_0: iommu@382f00000 {
+                       compatible = "apple,t8110-dart";
+                       reg = <0x3 0x82f00000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 1035 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc0_usb>;
+               };
+
+               dwc3_0_dart_1: iommu@382f80000 {
+                       compatible = "apple,t8110-dart";
+                       reg = <0x3 0x82f80000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 1035 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc0_usb>;
+               };
+
+               atcphy0: phy@383000000 {
+                       compatible = "apple,t8112-atcphy", "apple,t8103-atcphy";
+                       reg = <0x3 0x83000000 0x0 0x4c000>,
+                               <0x3 0x83050000 0x0 0x8000>,
+                               <0x3 0x80000000 0x0 0x4000>,
+                               <0x3 0x82a90000 0x0 0x4000>,
+                               <0x3 0x82a84000 0x0 0x4000>;
+                       reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                               "pipehandler";
+
+                       #phy-cells = <1>;
+                       #reset-cells = <0>;
+
+                       orientation-switch;
+                       mode-switch;
+                       power-domains = <&ps_atc0_usb>;
+               };
+
+               dwc3_1: usb@502280000 {
+                       compatible = "apple,t8112-dwc3", "apple,t8103-dwc3";
+                       reg = <0x5 0x02280000 0x0 0xcd00>, <0x5 0x0228cd00 0x0 0x3200>;
+                       reg-names = "dwc3-core", "dwc3-apple";
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 1112 IRQ_TYPE_LEVEL_HIGH>;
+                       dr_mode = "otg";
+                       usb-role-switch;
+                       role-switch-default-mode = "host";
+                       iommus = <&dwc3_1_dart_0 0>, <&dwc3_1_dart_1 1>;
+                       power-domains = <&ps_atc1_usb>;
+                       resets = <&atcphy1>;
+                       phys = <&atcphy1 PHY_TYPE_USB2>, <&atcphy1 PHY_TYPE_USB3>;
+                       phy-names = "usb2-phy", "usb3-phy";
+               };
+
+               dwc3_1_dart_0: iommu@502f00000 {
+                       compatible = "apple,t8110-dart";
+                       reg = <0x5 0x02f00000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 1116 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc1_usb>;
+               };
+
+               dwc3_1_dart_1: iommu@502f80000 {
+                       compatible = "apple,t8110-dart";
+                       reg = <0x5 0x02f80000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 1116 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_atc1_usb>;
+               };
+
+               atcphy1: phy@503000000 {
+                       compatible = "apple,t8112-atcphy", "apple,t8103-atcphy";
+                       reg = <0x5 0x03000000 0x0 0x4c000>,
+                               <0x5 0x03050000 0x0 0x8000>,
+                               <0x5 0x0 0x0 0x4000>,
+                               <0x5 0x02a90000 0x0 0x4000>,
+                               <0x5 0x02a84000 0x0 0x4000>;
+                       reg-names = "core", "lpdptx", "axi2af", "usb2phy",
+                               "pipehandler";
+
+                       #phy-cells = <1>;
+                       #reset-cells = <0>;
+
+                       orientation-switch;
+                       mode-switch;
+                       power-domains = <&ps_atc1_usb>;
+               };
+
                pcie0_dart: iommu@681008000 {
                        compatible = "apple,t8110-dart";
                        reg = <0x6 0x81008000 0x0 0x4000>;
index 2072c0b72325b478b28ebc04161c1e8a5ecbd644..4a3f217555f77e287b399c05a717f8c06b868af0 100644 (file)
                clock-output-names = "bp:clock24mhz";
        };
 
-       block_0: virtio_block@1c170000 {
+       block_0: virtio-block@1c170000 {
                compatible = "virtio,mmio";
                reg = <0x0 0x1c170000 0x0 0x200>;
                interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       net_0: virtio_net@1c180000 {
+       net_0: virtio-net@1c180000 {
                compatible = "virtio,mmio";
                reg = <0x0 0x1c180000 0x0 0x200>;
                interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       rng_0: virtio_rng@1c190000 {
+       rng_0: virtio-rng@1c190000 {
                compatible = "virtio,mmio";
                reg = <0x0 0x1c190000 0x0 0x200>;
                interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
        };
 
-       p9_0: virtio_p9@1c1a0000 {
+       p9_0: virtio-p9@1c1a0000 {
                compatible = "virtio,mmio";
                reg = <0x0 0x1c1a0000 0x0 0x200>;
                interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
index cee49dee75710c4eddea3f24b4dd5aeb3f513537..42c85f450fa9048562251fb6570a5e42945a790c 100644 (file)
                dma-coherent;
        };
 
+       pmu@50000000 {
+               compatible = "arm,cmn-600";
+               reg = <0x0 0x50000000 0x0 0x4000000>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+               arm,root-node = <0x804000>;
+       };
+
        pcie_ctlr: pcie@28c0000000 {
                device_type = "pci";
                compatible = "pci-host-ecam-generic";
index 205b87f557d6d9f8407accab2b0321f84b4fd585..d57a9b1bff70c0e4b5ef97d3e8a72521143deab7 100644 (file)
                        status = "disabled";
                };
 
+               pm: watchdog@7d200000 {
+                       compatible = "brcm,bcm2712-pm", "brcm,bcm2835-pm-wdt";
+                       reg = <0x7d200000 0x604>;
+                       reg-names = "pm";
+                       #power-domain-cells = <1>;
+                       #reset-cells = <1>;
+                       system-power-controller;
+               };
+
                pinctrl: pinctrl@7d504100 {
                        compatible = "brcm,bcm2712c0-pinctrl";
                        reg = <0x7d504100 0x30>;
                        reg = <0x7d510700 0x20>;
                };
 
+               random: rng@7d208000 {
+                       compatible = "brcm,bcm2711-rng200";
+                       reg = <0x7d208000 0x28>;
+                       status = "okay";
+               };
+
                interrupt-controller@7d517000 {
                        compatible = "brcm,bcm7271-l2-intc";
                        reg = <0x7d517000 0x10>;
index a5f9ec92bd5e436dd75c9f4a51adbf8d46be1296..c6d76ba04903d2b5e927db9b44af86a8287c52de 100644 (file)
                partition@0 {
                        label = "cferom";
                        reg = <0x0 0x100000>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x0 0x100000>;
 
                        nvmem-layout {
                                compatible = "fixed-layout";
diff --git a/src/arm64/broadcom/northstar2/ns2-clock.dtsi b/src/arm64/broadcom/northstar2/ns2-clock.dtsi
deleted file mode 100644 (file)
index 99009fd..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  BSD LICENSE
- *
- *  Copyright (c) 2016 Broadcom.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom Corporation nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <dt-bindings/clock/bcm-ns2.h>
-
-       osc: oscillator {
-               #clock-cells = <0>;
-               compatible = "fixed-clock";
-               clock-frequency = <25000000>;
-       };
-
-       lcpll_ddr: lcpll_ddr@6501d058 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-lcpll-ddr";
-               reg = <0x6501d058 0x20>,
-                     <0x6501c020 0x4>,
-                     <0x6501d04c 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "lcpll_ddr", "pcie_sata_usb",
-                                    "ddr", "ddr_ch2_unused",
-                                    "ddr_ch3_unused", "ddr_ch4_unused",
-                                    "ddr_ch5_unused";
-       };
-
-       lcpll_ports: lcpll_ports@6501d078 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-lcpll-ports";
-               reg = <0x6501d078 0x20>,
-                     <0x6501c020 0x4>,
-                     <0x6501d054 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "lcpll_ports", "wan", "rgmii",
-                                    "ports_ch2_unused",
-                                    "ports_ch3_unused",
-                                    "ports_ch4_unused",
-                                    "ports_ch5_unused";
-       };
-
-       genpll_scr: genpll_scr@6501d098 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-genpll-scr";
-               reg = <0x6501d098 0x32>,
-                     <0x6501c020 0x4>,
-                     <0x6501d044 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "genpll_scr", "scr", "fs",
-                                    "audio_ref", "scr_ch3_unused",
-                                    "scr_ch4_unused", "scr_ch5_unused";
-       };
-
-       iprocmed: iprocmed {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
-               clock-div = <2>;
-               clock-mult = <1>;
-       };
-
-       iprocslow: iprocslow {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
-               clock-div = <4>;
-               clock-mult = <1>;
-       };
-
-       genpll_sw: genpll_sw@6501d0c4 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-genpll-sw";
-               reg = <0x6501d0c4 0x32>,
-                     <0x6501c020 0x4>,
-                     <0x6501d044 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "genpll_sw", "rpe", "250", "nic",
-                                    "chimp", "port", "sdio";
-       };
index 5939d342aec7a3a832f5dfa4cb31baefa5bd5a62..de238a9b1845a580e8c42b23882b3da53a0596c3 100644 (file)
 
 &ssp0 {
        status = "okay";
-
-       slic@0 {
-               compatible = "silabs,si3226x";
-               reg = <0>;
-               spi-max-frequency = <5000000>;
-               spi-cpha;
-               spi-cpol;
-               pl022,interface = <0>;
-               pl022,slave-tx-disable = <0>;
-               pl022,com-mode = <0>;
-               pl022,rx-level-trig = <1>;
-               pl022,tx-level-trig = <1>;
-               pl022,ctrl-len = <11>;
-               pl022,wait-state = <0>;
-               pl022,duplex = <0>;
-       };
 };
 
 &ssp1 {
        status = "okay";
 
-       at25@0 {
+       eeprom@0 {
                compatible = "atmel,at25";
                reg = <0>;
                spi-max-frequency = <5000000>;
-               at25,byte-len = <0x8000>;
-               at25,addr-mode = <2>;
-               at25,page-size = <64>;
+               size = <0x8000>;
+               address-width = <16>;
+               pagesize = <64>;
                spi-cpha;
                spi-cpol;
                pl022,interface = <0>;
 };
 
 &nand {
-       nandcs@0 {
+       nand@0 {
                compatible = "brcm,nandcs";
                reg = <0>;
                nand-ecc-mode = "hw";
index 0e134a94e1425f59e10225c1514d83f668adcfcb..be0876648afddf683b994a232261472f4b1de2b9 100644 (file)
@@ -74,7 +74,7 @@
 };
 
 &nand {
-       nandcs@0 {
+       nand@0 {
                compatible = "brcm,nandcs";
                reg = <0>;
                nand-ecc-mode = "hw";
index 9888a1fabd5c6dc73fa76dc5ec075db6b5c8bc22..f0374b90f6aac8b1f8c551975446a3457deab3f9 100644 (file)
                                     <&A57_3>;
        };
 
+       osc: clock-25000000 {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <25000000>;
+       };
+
+       iprocmed: iprocmed {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
+               clock-div = <2>;
+               clock-mult = <1>;
+       };
+
+       iprocslow: iprocslow {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
+               clock-div = <4>;
+               clock-mult = <1>;
+       };
+
        pcie0: pcie@20020000 {
                compatible = "brcm,iproc-pcie";
                reg = <0 0x20020000 0 0x1000>;
                ranges = <0x83000000 0 0x00000000 0 0x00000000 0 0x20000000>;
 
                brcm,pcie-ob;
-               brcm,pcie-ob-oarr-size;
                brcm,pcie-ob-axi-offset = <0x00000000>;
 
                status = "disabled";
                ranges = <0x83000000 0 0x00000000 0 0x30000000 0 0x20000000>;
 
                brcm,pcie-ob;
-               brcm,pcie-ob-oarr-size;
                brcm,pcie-ob-axi-offset = <0x30000000>;
 
                status = "disabled";
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
 
-               #include "ns2-clock.dtsi"
-
                enet: ethernet@61000000 {
                        compatible = "brcm,ns2-amac";
                        reg = <0x61000000 0x1000>,
                        #iommu-cells = <1>;
                };
 
+               lcpll_ddr: clock-controller@6501d058 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,ns2-lcpll-ddr";
+                       reg = <0x6501d058 0x20>,
+                             <0x6501c020 0x4>,
+                             <0x6501d04c 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "lcpll_ddr", "pcie_sata_usb",
+                                            "ddr", "ddr_ch2_unused",
+                                            "ddr_ch3_unused", "ddr_ch4_unused",
+                                            "ddr_ch5_unused";
+               };
+
+               lcpll_ports: clock-controller@6501d078 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,ns2-lcpll-ports";
+                       reg = <0x6501d078 0x20>,
+                             <0x6501c020 0x4>,
+                             <0x6501d054 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "lcpll_ports", "wan", "rgmii",
+                                            "ports_ch2_unused",
+                                            "ports_ch3_unused",
+                                            "ports_ch4_unused",
+                                            "ports_ch5_unused";
+               };
+
+               genpll_scr: clock-controller@6501d098 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,ns2-genpll-scr";
+                       reg = <0x6501d098 0x32>,
+                             <0x6501c020 0x4>,
+                             <0x6501d044 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll_scr", "scr", "fs",
+                                            "audio_ref", "scr_ch3_unused",
+                                            "scr_ch4_unused", "scr_ch5_unused";
+               };
+
+               genpll_sw: clock-controller@6501d0c4 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,ns2-genpll-sw";
+                       reg = <0x6501d0c4 0x32>,
+                             <0x6501c020 0x4>,
+                             <0x6501d044 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll_sw", "rpe", "250", "nic",
+                                            "chimp", "port", "sdio";
+               };
                pinctrl: pinctrl@6501d130 {
                        compatible = "brcm,ns2-pinmux";
                        reg = <0x6501d130 0x08>,
                        ranges = <0 0x65590000 0x10000>;
 
                        pmu@9000 {
-                               compatible = "arm,cci-400-pmu,r1",
-                                            "arm,cci-400-pmu";
+                               compatible = "arm,cci-400-pmu,r1";
                                reg = <0x9000 0x4000>;
                                interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
                        reg = <0x66220000 0x28>;
                };
 
-               sata_phy: sata_phy@663f0100 {
+               sata_phy: sata-phy@663f0100 {
                        compatible = "brcm,iproc-ns2-sata-phy";
                        reg = <0x663f0100 0x1f00>,
                              <0x663f004c 0x10>;
                        };
                };
 
-               sdio0: sdhci@66420000 {
+               sdio0: mmc@66420000 {
                        compatible = "brcm,sdhci-iproc-cygnus";
                        reg = <0x66420000 0x100>;
                        interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               sdio1: sdhci@66430000 {
+               sdio1: mmc@66430000 {
                        compatible = "brcm,sdhci-iproc-cygnus";
                        reg = <0x66430000 0x100>;
                        interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               nand: nand@66460000 {
+               nand: nand-controller@66460000 {
                        compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
                        reg = <0x66460000 0x600>,
                              <0x67015408 0x600>,
                        interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "spi_l1_intr";
                        clocks = <&iprocmed>;
-                       clock-names = "iprocmed";
                        num-cs = <2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
index 8fe7325cfbb2db752ec2ee5c493f9d7e9c8e62a8..18152b16cfedd05df98aff576eca2755c303d704 100644 (file)
@@ -88,7 +88,7 @@
 
 &nand {
        status = "okay";
-       nandcs@0 {
+       nand@0 {
                compatible = "brcm,nandcs";
                reg = <0>;
                nand-ecc-mode = "hw";
diff --git a/src/arm64/broadcom/stingray/stingray-clock.dtsi b/src/arm64/broadcom/stingray/stingray-clock.dtsi
deleted file mode 100644 (file)
index 10a106a..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- *  BSD LICENSE
- *
- *  Copyright(c) 2016-2017 Broadcom.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <dt-bindings/clock/bcm-sr.h>
-
-               osc: oscillator {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-
-               crmu_ref25m: crmu_ref25m {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&osc>;
-                       clock-div = <2>;
-                       clock-mult = <1>;
-               };
-
-               genpll0: genpll0@1d104 {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-genpll0";
-                       reg = <0x0001d104 0x32>,
-                             <0x0001c854 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "genpll0", "clk_125m", "clk_scr",
-                                            "clk_250", "clk_pcie_axi",
-                                            "clk_paxc_axi_x2",
-                                            "clk_paxc_axi";
-               };
-
-               genpll2: genpll2@1d1ac {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-genpll2";
-                       reg = <0x0001d1ac 0x32>,
-                             <0x0001c854 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "genpll2", "clk_nic",
-                                            "clk_ts_500_ref", "clk_125_nitro",
-                                            "clk_chimp", "clk_nic_flash",
-                                            "clk_fs";
-               };
-
-               genpll3: genpll3@1d1e0 {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-genpll3";
-                       reg = <0x0001d1e0 0x32>,
-                             <0x0001c854 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "genpll3", "clk_hsls",
-                                            "clk_sdio";
-               };
-
-               genpll4: genpll4@1d214 {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-genpll4";
-                       reg = <0x0001d214 0x32>,
-                             <0x0001c854 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "genpll4", "clk_ccn",
-                                            "clk_tpiu_pll", "clk_noc",
-                                            "clk_chclk_fs4",
-                                            "clk_bridge_fscpu";
-               };
-
-               genpll5: genpll5@1d248 {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-genpll5";
-                       reg = <0x0001d248 0x32>,
-                             <0x0001c870 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "genpll5", "clk_fs4_hf",
-                                            "clk_crypto_ae", "clk_raid_ae";
-               };
-
-               lcpll0: lcpll0@1d0c4 {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-lcpll0";
-                       reg = <0x0001d0c4 0x3c>,
-                             <0x0001c870 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "lcpll0", "clk_sata_refp",
-                                            "clk_sata_refn", "clk_sata_350",
-                                            "clk_sata_500";
-               };
-
-               lcpll1: lcpll1@1d138 {
-                       #clock-cells = <1>;
-                       compatible = "brcm,sr-lcpll1";
-                       reg = <0x0001d138 0x3c>,
-                             <0x0001c870 0x4>;
-                       clocks = <&osc>;
-                       clock-output-names = "lcpll1", "clk_wan",
-                                            "clk_usb_ref",
-                                            "clk_crmu_ts";
-               };
-
-               hsls_clk: hsls_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&genpll3 1>;
-                       clock-div = <1>;
-                       clock-mult = <1>;
-               };
-
-               hsls_div2_clk: hsls_div2_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>;
-                       clock-div = <2>;
-                       clock-mult = <1>;
-
-               };
-
-               hsls_div4_clk: hsls_div4_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>;
-                       clock-div = <4>;
-                       clock-mult = <1>;
-               };
-
-               hsls_25m_clk: hsls_25m_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&crmu_ref25m>;
-                       clock-div = <1>;
-                       clock-mult = <1>;
-               };
-
-               hsls_25m_div2_clk: hsls_25m_div2_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&hsls_25m_clk>;
-                       clock-div = <2>;
-                       clock-mult = <1>;
-               };
-
-               sdio0_clk: sdio0_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>;
-                       clock-div = <1>;
-                       clock-mult = <1>;
-               };
-
-               sdio1_clk: sdio1_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-factor-clock";
-                       clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>;
-                       clock-div = <1>;
-                       clock-mult = <1>;
-               };
index 9666969c8c887dbe32252646e356181039889cbd..d704c4ab21473fc95c7a8162cd999bce232612e7 100644 (file)
@@ -30,7 +30,7 @@
  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-       fs4: fs4 {
+       fs4: fs4-bus@67000000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                        msi-parent = <&gic_its 0x4300>;
                        #mbox-cells = <3>;
                };
+       };
 
-               raid0: raid@0 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 0 0x1 0xff00>,
-                                <&raid_mbox 1 0x1 0xff00>,
-                                <&raid_mbox 2 0x1 0xff00>,
-                                <&raid_mbox 3 0x1 0xff00>;
-               };
+       raid0: raid-0 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 0 0x1 0xff00>,
+                        <&raid_mbox 1 0x1 0xff00>,
+                        <&raid_mbox 2 0x1 0xff00>,
+                        <&raid_mbox 3 0x1 0xff00>;
+       };
 
-               raid1: raid@1 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 4 0x1 0xff00>,
-                                <&raid_mbox 5 0x1 0xff00>,
-                                <&raid_mbox 6 0x1 0xff00>,
-                                <&raid_mbox 7 0x1 0xff00>;
-               };
+       raid1: raid-1 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 4 0x1 0xff00>,
+                        <&raid_mbox 5 0x1 0xff00>,
+                        <&raid_mbox 6 0x1 0xff00>,
+                        <&raid_mbox 7 0x1 0xff00>;
+       };
 
-               raid2: raid@2 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 8 0x1 0xff00>,
-                                <&raid_mbox 9 0x1 0xff00>,
-                                <&raid_mbox 10 0x1 0xff00>,
-                                <&raid_mbox 11 0x1 0xff00>;
-               };
+       raid2: raid-2 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 8 0x1 0xff00>,
+                        <&raid_mbox 9 0x1 0xff00>,
+                        <&raid_mbox 10 0x1 0xff00>,
+                        <&raid_mbox 11 0x1 0xff00>;
+       };
 
-               raid3: raid@3 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 12 0x1 0xff00>,
-                                <&raid_mbox 13 0x1 0xff00>,
-                                <&raid_mbox 14 0x1 0xff00>,
-                                <&raid_mbox 15 0x1 0xff00>;
-               };
+       raid3: raid-3 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 12 0x1 0xff00>,
+                        <&raid_mbox 13 0x1 0xff00>,
+                        <&raid_mbox 14 0x1 0xff00>,
+                        <&raid_mbox 15 0x1 0xff00>;
+       };
 
-               raid4: raid@4 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 16 0x1 0xff00>,
-                                <&raid_mbox 17 0x1 0xff00>,
-                                <&raid_mbox 18 0x1 0xff00>,
-                                <&raid_mbox 19 0x1 0xff00>;
-               };
+       raid4: raid-4 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 16 0x1 0xff00>,
+                        <&raid_mbox 17 0x1 0xff00>,
+                        <&raid_mbox 18 0x1 0xff00>,
+                        <&raid_mbox 19 0x1 0xff00>;
+       };
 
-               raid5: raid@5 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 20 0x1 0xff00>,
-                                <&raid_mbox 21 0x1 0xff00>,
-                                <&raid_mbox 22 0x1 0xff00>,
-                                <&raid_mbox 23 0x1 0xff00>;
-               };
+       raid5: raid-5 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 20 0x1 0xff00>,
+                        <&raid_mbox 21 0x1 0xff00>,
+                        <&raid_mbox 22 0x1 0xff00>,
+                        <&raid_mbox 23 0x1 0xff00>;
+       };
 
-               raid6: raid@6 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 24 0x1 0xff00>,
-                                <&raid_mbox 25 0x1 0xff00>,
-                                <&raid_mbox 26 0x1 0xff00>,
-                                <&raid_mbox 27 0x1 0xff00>;
-               };
+       raid6: raid-6 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 24 0x1 0xff00>,
+                        <&raid_mbox 25 0x1 0xff00>,
+                        <&raid_mbox 26 0x1 0xff00>,
+                        <&raid_mbox 27 0x1 0xff00>;
+       };
 
-               raid7: raid@7 {
-                       compatible = "brcm,iproc-sba-v2";
-                       mboxes = <&raid_mbox 28 0x1 0xff00>,
-                                <&raid_mbox 29 0x1 0xff00>,
-                                <&raid_mbox 30 0x1 0xff00>,
-                                <&raid_mbox 31 0x1 0xff00>;
-               };
+       raid7: raid-7 {
+               compatible = "brcm,iproc-sba-v2";
+               mboxes = <&raid_mbox 28 0x1 0xff00>,
+                        <&raid_mbox 29 0x1 0xff00>,
+                        <&raid_mbox 30 0x1 0xff00>,
+                        <&raid_mbox 31 0x1 0xff00>;
        };
index 663e517567464463ebc509c786711fbe7b1fbc5a..fbb2621d1b293b116c60e12d2c092ba1dd58f697 100644 (file)
@@ -38,7 +38,7 @@ pcie8: pcie@60400000 {
        phy-names = "pcie-phy";
 };
 
-pcie-ss {
+pcie-ss-bus@40000000 {
        compatible = "simple-bus";
        #address-cells = <1>;
        #size-cells = <1>;
index 46a82752192156c9e7448e077bb79446ba08a7d9..b8da71463ad773c9cbce5a36f26f8007c4bae617 100644 (file)
@@ -32,7 +32,7 @@
 
 #include <dt-bindings/pinctrl/brcm,pinctrl-stingray.h>
 
-               pinconf: pinconf@140000 {
+               pinconf: pinctrl@140000 {
                        compatible = "pinconf-single";
                        reg = <0x00140000 0x250>;
                        pinctrl-single,register-width = <32>;
index ac4f7b8f9273619d77c32c0096187878a0dc6804..850988287e488d100738d92f32b2c871006f30d1 100644 (file)
@@ -2,7 +2,7 @@
 /*
  *Copyright(c) 2018 Broadcom
  */
-       usb {
+       usb-bus@68500000 {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
                        status = "disabled";
                };
 
-               bdc0: usb@2000 {
-                       compatible = "brcm,bdc-v0.16";
-                       reg = <0x0 0x00002000 0x0 0x1000>;
-                       interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&usbphy0 0>, <&usbphy0 1>;
-                       phy-names = "phy0", "phy1";
-                       dma-coherent;
-                       status = "disabled";
-               };
-
                usbphy1: usb-phy@10000 {
                        compatible = "brcm,sr-usb-combo-phy";
                        reg = <0x0 0x00010000 0x0 0x100>;
                        status = "disabled";
                };
 
-               bdc1: usb@21000 {
-                       compatible = "brcm,bdc-v0.16";
-                       reg = <0x0 0x00021000 0x0 0x1000>;
-                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&usbphy2>;
-                       phy-names = "phy0";
-                       dma-coherent;
-                       status = "disabled";
-               };
        };
index 857fa427e195f0a0930685db348a4e5066ae20ec..05139bcb318439aa65ea4023d81f452178cfc251 100644 (file)
@@ -30,6 +30,7 @@
  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <dt-bindings/clock/bcm-sr.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
 / {
                reg = <0 0x60401000 0 0x38c>;
        };
 
-       scr {
+       osc: clock-50000000 {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <50000000>;
+       };
+
+       crmu_ref25m: hsls_25m_clk: clock-25000000 {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&osc>;
+               clock-div = <2>;
+               clock-mult = <1>;
+       };
+
+       hsls_div2_clk: hsls_div2_clk {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>;
+               clock-div = <2>;
+               clock-mult = <1>;
+
+       };
+
+       hsls_div4_clk: hsls_div4_clk {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>;
+               clock-div = <4>;
+               clock-mult = <1>;
+       };
+
+       hsls_25m_div2_clk: clock-12500000 {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&hsls_25m_clk>;
+               clock-div = <2>;
+               clock-mult = <1>;
+       };
+
+       scr-bus@61000000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                };
        };
 
-       crmu: crmu {
+       crmu: crmu-bus@66400000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x0 0x0 0x66400000 0x100000>;
 
-               #include "stingray-clock.dtsi"
-
                otp: otp@1c400 {
                        compatible = "brcm,ocotp-v2";
                        reg = <0x0001c400 0x68>;
                        reg = <0x0001d000 0x400>;
                };
 
+               lcpll0: clock-controller@1d0c4 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-lcpll0";
+                       reg = <0x0001d0c4 0x3c>,
+                               <0x0001c870 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "lcpll0", "clk_sata_refp",
+                                               "clk_sata_refn", "clk_sata_350",
+                                               "clk_sata_500";
+               };
+
+               genpll0: clock-controller@1d104 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-genpll0";
+                       reg = <0x0001d104 0x32>,
+                               <0x0001c854 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll0", "clk_125m", "clk_scr",
+                                               "clk_250", "clk_pcie_axi",
+                                               "clk_paxc_axi_x2",
+                                               "clk_paxc_axi";
+               };
+
+               lcpll1: clock-controller@1d138 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-lcpll1";
+                       reg = <0x0001d138 0x3c>,
+                               <0x0001c870 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "lcpll1", "clk_wan",
+                                               "clk_usb_ref",
+                                               "clk_crmu_ts";
+               };
+
+               genpll2: clock-controller@1d1ac {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-genpll2";
+                       reg = <0x0001d1ac 0x32>,
+                               <0x0001c854 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll2", "clk_nic",
+                                               "clk_ts_500_ref", "clk_125_nitro",
+                                               "clk_chimp", "clk_nic_flash",
+                                               "clk_fs";
+               };
+
+               genpll3: clock-controller@1d1e0 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-genpll3";
+                       reg = <0x0001d1e0 0x32>,
+                               <0x0001c854 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll3", "clk_hsls",
+                                               "clk_sdio";
+               };
+
+               genpll4: clock-controller@1d214 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-genpll4";
+                       reg = <0x0001d214 0x32>,
+                               <0x0001c854 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll4", "clk_ccn",
+                                               "clk_tpiu_pll", "clk_noc",
+                                               "clk_chclk_fs4",
+                                               "clk_bridge_fscpu";
+               };
+
+               genpll5: clock-controller@1d248 {
+                       #clock-cells = <1>;
+                       compatible = "brcm,sr-genpll5";
+                       reg = <0x0001d248 0x32>,
+                               <0x0001c870 0x4>;
+                       clocks = <&osc>;
+                       clock-output-names = "genpll5", "clk_fs4_hf",
+                                               "clk_crypto_ae", "clk_raid_ae";
+               };
+
                gpio_crmu: gpio@24800 {
                        compatible = "brcm,iproc-gpio";
                        reg = <0x00024800 0x4c>;
        #include "stingray-pcie.dtsi"
        #include "stingray-usb.dtsi"
 
-       hsls {
+       hsls-bus@68900000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                        status = "disabled";
                };
 
-               nand: nand@360000 {
+               nand: nand-controller@360000 {
                        compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
                        reg = <0x00360000 0x600>,
                              <0x0050a408 0x600>,
                        status = "disabled";
                };
 
-               sdio0: sdhci@3f1000 {
+               sdio0: mmc@3f1000 {
                        compatible = "brcm,sdhci-iproc";
                        reg = <0x003f1000 0x100>;
                        interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
                        bus-width = <8>;
-                       clocks = <&sdio0_clk>;
+                       clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>;
                        iommus = <&smmu 0x6002 0x0000>;
                        status = "disabled";
                };
 
-               sdio1: sdhci@3f2000 {
+               sdio1: mmc@3f2000 {
                        compatible = "brcm,sdhci-iproc";
                        reg = <0x003f2000 0x100>;
                        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
                        bus-width = <8>;
-                       clocks = <&sdio1_clk>;
+                       clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>;
                        iommus = <&smmu 0x6003 0x0000>;
                        status = "disabled";
                };
        };
 
-       tmons {
+       tmons-bus@8f100000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                };
        };
 
-       nic-hsls {
+       nic-hsls-bus@60800000 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges = <0x0 0x0  0x0 0x7fffffff>;
+               ranges = <0x0 0x0 0x60800000 0x6fffff>;
 
-               nic_i2c0: i2c@60826100 {
+               nic_i2c0: i2c@26100 {
                        compatible = "brcm,iproc-nic-i2c";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       reg = <0x60826100 0x100>,
-                             <0x60e00408 0x1000>;
+                       reg = <0x026100 0x100>,
+                             <0x600408 0x1000>;
                        brcm,ape-hsls-addr-mask = <0x03400000>;
                        clock-frequency = <100000>;
                        status = "disabled";
index cc860a80af516c903a4a65c8faf01c21c5c0a5cc..70430cb2b053a4628b9708554899d641baba04c2 100644 (file)
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x87e0 0x24000000 0x0 0x1000>;
                        interrupts = <1 21 4>;
-                       clocks = <&refclk50mhz>;
-                       clock-names = "apb_pclk";
+                       clocks = <&refclk50mhz>, <&refclk50mhz>;
+                       clock-names = "uartclk", "apb_pclk";
                };
 
                uaa1: serial@87e025000000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x87e0 0x25000000 0x0 0x1000>;
                        interrupts = <1 22 4>;
-                       clocks = <&refclk50mhz>;
-                       clock-names = "apb_pclk";
+                       clocks = <&refclk50mhz>, <&refclk50mhz>;
+                       clock-names = "uartclk", "apb_pclk";
                };
        };
 };
diff --git a/src/arm64/cavium/thunder2-99xx.dts b/src/arm64/cavium/thunder2-99xx.dts
deleted file mode 100644 (file)
index 89fc410..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * dts file for Cavium ThunderX2 CN99XX Evaluation Platform
- *
- * Copyright (c) 2017 Cavium Inc.
- * Copyright (c) 2013-2016 Broadcom
- */
-
-/dts-v1/;
-
-#include "thunder2-99xx.dtsi"
-
-/ {
-       model = "Cavium ThunderX2 CN99XX";
-       compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
-
-       memory@80000000 {
-               device_type = "memory";
-               reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
-                     <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
-       };
-
-       aliases {
-               serial0 = &uart0;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
diff --git a/src/arm64/cavium/thunder2-99xx.dtsi b/src/arm64/cavium/thunder2-99xx.dtsi
deleted file mode 100644 (file)
index 966fb57..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * dtsi file for Cavium ThunderX2 CN99XX processor
- *
- * Copyright (c) 2017 Cavium Inc.
- * Copyright (c) 2013-2016 Broadcom
- * Author: Zi Shen Lim <zlim@broadcom.com>
- */
-
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-
-/ {
-       model = "Cavium ThunderX2 CN99XX";
-       compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
-       interrupt-parent = <&gic>;
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       /* just 4 cpus now, 128 needed in full config */
-       cpus {
-               #address-cells = <0x2>;
-               #size-cells = <0x0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "cavium,thunder2", "brcm,vulcan";
-                       reg = <0x0 0x0>;
-                       enable-method = "psci";
-               };
-
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "cavium,thunder2", "brcm,vulcan";
-                       reg = <0x0 0x1>;
-                       enable-method = "psci";
-               };
-
-               cpu@2 {
-                       device_type = "cpu";
-                       compatible = "cavium,thunder2", "brcm,vulcan";
-                       reg = <0x0 0x2>;
-                       enable-method = "psci";
-               };
-
-               cpu@3 {
-                       device_type = "cpu";
-                       compatible = "cavium,thunder2", "brcm,vulcan";
-                       reg = <0x0 0x3>;
-                       enable-method = "psci";
-               };
-       };
-
-       psci {
-               compatible = "arm,psci-0.2";
-               method = "smc";
-       };
-
-       gic: interrupt-controller@4000080000 {
-               compatible = "arm,gic-v3";
-               #interrupt-cells = <3>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-               interrupt-controller;
-               #redistributor-regions = <1>;
-               reg = <0x04 0x00080000 0x0 0x20000>,    /* GICD */
-                     <0x04 0x01000000 0x0 0x1000000>;  /* GICR */
-               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
-
-               gicits: msi-controller@4000100000 {
-                       compatible = "arm,gic-v3-its";
-                       msi-controller;
-                       reg = <0x04 0x00100000 0x0 0x20000>;    /* GIC ITS */
-               };
-       };
-
-       timer {
-               compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
-       };
-
-       pmu {
-               compatible = "brcm,vulcan-pmu";
-               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; /* PMU overflow */
-       };
-
-       clk125mhz: uart_clk125mhz {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <125000000>;
-               clock-output-names = "clk125mhz";
-       };
-
-       pcie@30000000 {
-               compatible = "pci-host-ecam-generic";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #address-cells = <3>;
-               #size-cells = <2>;
-
-               /* ECAM at 0x3000_0000 - 0x4000_0000 */
-               reg = <0x0 0x30000000  0x0 0x10000000>;
-
-               /*
-                * PCI ranges:
-                *   IO         no supported
-                *   MEM        0x4000_0000 - 0x6000_0000
-                *   MEM64 pref 0x40_0000_0000 - 0x60_0000_0000
-                */
-               ranges =
-                 <0x02000000    0 0x40000000    0 0x40000000    0 0x20000000
-                  0x43000000 0x40 0x00000000 0x40 0x00000000 0x20 0x00000000>;
-               bus-range = <0 0xff>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map =
-                     /* addr  pin  ic   icaddr  icintr */
-                       <0 0 0  1  &gic   0 0    GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
-                        0 0 0  2  &gic   0 0    GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
-                        0 0 0  3  &gic   0 0    GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
-                        0 0 0  4  &gic   0 0    GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
-               msi-parent = <&gicits>;
-               dma-coherent;
-       };
-
-       soc {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               uart0: serial@402020000 {
-                       compatible = "arm,pl011", "arm,primecell";
-                       reg = <0x04 0x02020000 0x0 0x1000>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&clk125mhz>, <&clk125mhz>;
-                       clock-names = "uartclk", "apb_pclk";
-               };
-       };
-
-};
diff --git a/src/arm64/cix/sky1-xcp.dts b/src/arm64/cix/sky1-xcp.dts
new file mode 100644 (file)
index 0000000..1fae52d
--- /dev/null
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright 2025 Cix Technology Group Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include "sky1.dtsi"
+#include "sky1-pinfunc.h"
+
+/ {
+       model = "Xunlong,OrangePi 6 Plus";
+       compatible = "xunlong,orangepi-6-plus", "cix,sky1";
+
+       aliases {
+               serial2 = &uart2;
+       };
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x0 0x28000000>;
+                       linux,cma-default;
+               };
+       };
+
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_hog: hog-cfg {
+               pins {
+                       pinmux = <CIX_PAD_GPIO144_FUNC_GPIO144>,
+                               <CIX_PAD_GPIO145_FUNC_GPIO145>,
+                               <CIX_PAD_GPIO146_FUNC_GPIO146>,
+                               <CIX_PAD_GPIO147_FUNC_GPIO147>;
+                       bias-pull-down;
+                       drive-strength = <8>;
+               };
+       };
+};
+
+&iomuxc_s5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog_s5>;
+
+       pinctrl_hog_s5: hog-s5-cfg {
+               pins {
+                       pinmux = <CIX_PAD_GPIO014_FUNC_GPIO014>;
+                       bias-pull-up;
+                       drive-strength = <8>;
+
+               };
+       };
+};
+
+&pcie_x8_rc {
+       status = "okay";
+};
+
+&pcie_x2_rc {
+       status = "okay";
+};
+
+&pcie_x1_1_rc {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
index 64b76905cbff5eb5f1010e426832a86295158f1d..fb8c826bbc97e4930b551a5196be60039a3d6c5b 100644 (file)
                        reg-names = "reg", "cfg", "rcsu_strap", "rcsu_status", "msg";
                        ranges = <0x01000000 0x0 0x38100000 0x0 0x38100000 0x0 0x00100000>,
                                 <0x02000000 0x0 0x38200000 0x0 0x38200000 0x0 0x07e00000>,
-                                <0x43000000 0x0C 0x00000000 0x0C 0x00000000 0x04 0x00000000>;
+                                <0x43000000 0x0c 0x00000000 0x0c 0x00000000 0x04 0x00000000>;
                        #address-cells = <3>;
                        #size-cells = <2>;
                        bus-range = <0x30 0x5f>;
index 6ee74d260776f189f458c95c75023ddd20de468e..02bf2ca52fdce1bda7aea7f355864aa0d654003c 100644 (file)
                                      "wfd";
                };
 
+               cmu_mfd: clock-controller@19e00000 {
+                       compatible = "samsung,exynosautov920-cmu-mfd";
+                       reg = <0x19e00000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_MFD_NOC>;
+                       clock-names = "oscclk",
+                                     "noc";
+               };
+
                pinctrl_aud: pinctrl@1a460000 {
                        compatible = "samsung,exynosautov920-pinctrl";
                        reg = <0x1a460000 0x10000>;
index d06d1d05f36408137a8acd98e43d48ea7d4f4292..d085f9fb0f62ac2f57b104c20880e64d885d0bee 100644 (file)
                #size-cells = <1>;
                ranges = <0x0 0x0 0x0 0x40000000>;
 
+               efuse@10000000 {
+                       compatible = "google,gs101-otp";
+                       reg = <0x10000000 0xf084>;
+                       clocks = <&cmu_misc CLK_GOUT_MISC_OTP_CON_TOP_PCLK>;
+                       clock-names = "pclk";
+                       interrupts = <GIC_SPI 752 IRQ_TYPE_LEVEL_HIGH 0>;
+               };
+
                cmu_misc: clock-controller@10010000 {
                        compatible = "google,gs101-cmu-misc";
                        reg = <0x10010000 0x10000>;
                        clocks = <&cmu_top CLK_DOUT_CMU_MISC_BUS>,
                                 <&cmu_top CLK_DOUT_CMU_MISC_SSS>;
                        clock-names = "bus", "sss";
+                       samsung,sysreg = <&sysreg_misc>;
                };
 
                sysreg_misc: syscon@10030000 {
                        status = "disabled";
                };
 
+               trng: rng@10141400 {
+                       compatible = "google,gs101-trng",
+                                    "samsung,exynos850-trng";
+                       reg = <0x10141400 0x100>;
+                       clocks = <&cmu_misc CLK_GOUT_MISC_SSS_I_ACLK>,
+                                <&cmu_misc CLK_GOUT_MISC_SSS_I_PCLK>;
+                       clock-names = "secss", "pclk";
+               };
+
                gic: interrupt-controller@10400000 {
                        compatible = "arm,gic-v3";
                        #address-cells = <0>;
                                 <&cmu_top CLK_DOUT_CMU_PERIC0_BUS>,
                                 <&cmu_top CLK_DOUT_CMU_PERIC0_IP>;
                        clock-names = "oscclk", "bus", "ip";
+                       samsung,sysreg = <&sysreg_peric0>;
                };
 
                sysreg_peric0: syscon@10820000 {
                                 <&cmu_top CLK_DOUT_CMU_PERIC1_BUS>,
                                 <&cmu_top CLK_DOUT_CMU_PERIC1_IP>;
                        clock-names = "oscclk", "bus", "ip";
+                       samsung,sysreg = <&sysreg_peric1>;
                };
 
                sysreg_peric1: syscon@10c20000 {
                                 <&cmu_top CLK_DOUT_CMU_HSI0_USBDPDBG>;
                        clock-names = "oscclk", "bus", "dpgtc", "usb31drd",
                                      "usbdpdbg";
+                       samsung,sysreg = <&sysreg_hsi0>;
                };
 
                sysreg_hsi0: syscon@11020000 {
                                 <&cmu_top CLK_DOUT_CMU_HSI2_UFS_EMBD>,
                                 <&cmu_top CLK_DOUT_CMU_HSI2_MMC_CARD>;
                        clock-names = "oscclk", "bus", "pcie", "ufs", "mmc";
+                       samsung,sysreg = <&sysreg_hsi2>;
                };
 
                sysreg_hsi2: syscon@14420000 {
 
                        clocks = <&ext_24_5m>;
                        clock-names = "oscclk";
+                       samsung,sysreg = <&sysreg_apm>;
                };
 
                sysreg_apm: syscon@17420000 {
                };
 
                pmu_system_controller: system-controller@17460000 {
-                       compatible = "google,gs101-pmu", "syscon";
+                       compatible = "google,gs101-pmu";
                        reg = <0x17460000 0x10000>;
                        google,pmu-intr-gen-syscon = <&pmu_intr_gen>;
 
                        status = "disabled";
                };
 
+               cmu_dpu: clock-controller@1c000000 {
+                       compatible = "google,gs101-cmu-dpu";
+                       reg = <0x1c000000 0x10000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&ext_24_5m>,
+                                <&cmu_top CLK_DOUT_CMU_DPU_BUS>;
+                       clock-names = "oscclk", "bus";
+                       samsung,sysreg = <&sysreg_dpu>;
+               };
+
+               sysreg_dpu: syscon@1c020000 {
+                       compatible = "google,gs101-dpu-sysreg", "syscon";
+                       reg = <0x1c020000 0x10000>;
+                       clocks = <&cmu_dpu CLK_GOUT_DPU_SYSREG_DPU_PCLK>;
+               };
+
                cmu_top: clock-controller@1e080000 {
                        compatible = "google,gs101-cmu-top";
                        reg = <0x1e080000 0x10000>;
index ef80bf6a604f475c670e2d626a727e94fcb2a17a..b07022e3b6d59cce3f8b8bff35baf9ff16e9601e 100644 (file)
                        clock-names = "sfp";
                };
 
-               sec_mon: sec_mon@1e90000 {
+               sec_mon: sec-mon@1e90000 {
                        compatible = "fsl,sec-v5.4-mon", "fsl,sec-v5.0-mon",
                                     "fsl,sec-v4.0-mon";
                        reg = <0x0 0x1e90000 0x0 0x10000>;
diff --git a/src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a-ind.dts b/src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a-ind.dts
new file mode 100644 (file)
index 0000000..571b801
--- /dev/null
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2019-2025 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Michael Krummsdorf
+ * Author: Matthias Schiffer
+ * Author: Alexander Stein
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1028a-tqmls1028a-mbls1028a.dtsi"
+
+/ {
+       model = "MBLS1028A-IND starterkit";
+       compatible = "tq,ls1028a-tqmls1028a-mbls1028a-ind", "tq,ls1028a-tqmls1028a", "fsl,ls1028a";
+};
+
+&i2c5 {
+       gpio_exp_3v3: gpio@71 {
+               compatible = "nxp,pca9538";
+               reg = <0x71>;
+               #gpio-cells = <2>;
+               gpio-controller;
+
+               clk-intn-hog {
+                       gpio-hog;
+                       gpios = <0 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "CLK_INT#";
+               };
+
+               mpcie-waken-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "MPCIE_WAKE#";
+               };
+
+               mpcie-disn-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "MPCIE_DIS#";
+               };
+
+               mpcie-rstn-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "MPCIE_RST#";
+               };
+
+               sata-perstn-hog {
+                       gpio-hog;
+                       gpios = <6 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "SATA_PERST#";
+               };
+
+               dcdc-reset-hog {
+                       gpio-hog;
+                       gpios = <7 GPIO_ACTIVE_HIGH>;
+                       output-low;
+                       line-name = "DCDC_RESET";
+               };
+       };
+};
diff --git a/src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a.dts b/src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a.dts
new file mode 100644 (file)
index 0000000..02563f9
--- /dev/null
@@ -0,0 +1,118 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2019-2025 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Michael Krummsdorf
+ * Author: Matthias Schiffer
+ * Author: Alexander Stein
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "fsl-ls1028a-tqmls1028a-mbls1028a.dtsi"
+
+/ {
+       model = "MBLS1028A starterkit";
+       compatible = "tq,ls1028a-tqmls1028a-mbls1028a", "tq,ls1028a-tqmls1028a", "fsl,ls1028a";
+
+       gpio-beeper {
+               compatible = "gpio-beeper";
+               gpios = <&gpio_exp_3v3 15 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               button-0 {
+                       label = "S4";
+                       linux,code = <BTN_0>;
+                       gpios = <&gpio_exp_3v3 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-1 {
+                       label = "S5";
+                       linux,code = <BTN_1>;
+                       gpios = <&gpio_exp_3v3 12 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       function-enumerator = <1>;
+                       gpios = <&gpio_exp_3v3 14 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio_exp_3v3 13 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&gpio_exp_1v8 {
+       dcdc-reset-hog {
+               gpio-hog;
+               gpios = <6 GPIO_ACTIVE_HIGH>;
+               line-name = "DCDC_RESET";
+               output-low;
+       };
+};
+
+&i2c5 {
+       gpio_exp_3v3: gpio@25 {
+               compatible = "nxp,pca9555";
+               reg = <0x25>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               interrupt-parent = <&gpio1>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+               vcc-supply = <&reg_3p3v>;
+
+               clk-intn-hog {
+                       gpio-hog;
+                       gpios = <0 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "CLK_INT#";
+               };
+
+               mpcie-waken-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "MPCIE_WAKE#";
+               };
+
+               mpcie-disn-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "MPCIE_DIS#";
+               };
+
+               mpcie-rstn-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "MPCIE_RST#";
+               };
+
+               sata-perstn-hog {
+                       gpio-hog;
+                       gpios = <6 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "SATA_PERST#";
+               };
+       };
+};
diff --git a/src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a.dtsi b/src/arm64/freescale/fsl-ls1028a-tqmls1028a-mbls1028a.dtsi
new file mode 100644 (file)
index 0000000..cf338b2
--- /dev/null
@@ -0,0 +1,287 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2019-2025 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Michael Krummsdorf
+ * Author: Matthias Schiffer
+ * Author: Alexander Stein
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/net/ti-dp83867.h>
+#include "fsl-ls1028a-tqmls1028a.dtsi"
+
+/ {
+       aliases {
+               crypto = &crypto;
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               mmc0 = &esdhc; /* SD-Card */
+               mmc1 = &esdhc1; /* eMMC */
+               serial0 = &duart0;
+               serial1 = &duart1;
+       };
+
+       chosen {
+               stdout-path = &duart0;
+       };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "V_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "V_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       /* 256 MiB */
+                       size = <0 0x10000000>;
+                       linux,cma-default;
+               };
+       };
+};
+
+&can0 {
+       status = "okay";
+};
+
+&can1 {
+       status = "okay";
+};
+
+&dspi2 {
+       bus-num = <2>;
+       status = "okay";
+};
+
+&duart0 {
+       status = "okay";
+};
+
+&duart1 {
+       status = "okay";
+};
+
+&esdhc {
+       cd-gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       no-1-8-v;
+       bus-width = <4>;
+       status = "okay";
+};
+
+/* When switched to baseboard-internal i2c bus,
+ * IIC5 has access to the following devices.
+ */
+&i2c4 {
+       /* TUSB8041 only supports 100 KHz, but it is not connected */
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* SI5338 - set up in U-Boot */
+       /* clockgen@70 */
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       gpio_exp_1v8: gpio@70 {
+               compatible = "nxp,pca9538";
+               reg = <0x70>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               interrupt-parent = <&gpio1>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+               vcc-supply = <&reg_1p8v>;
+
+               ec1-intn-hog {
+                       gpio-hog;
+                       gpios = <0 0>;
+                       input;
+                       line-name = "EC1_INT#";
+               };
+
+               sgmii-intn-hog {
+                       gpio-hog;
+                       gpios = <2 0>;
+                       input;
+                       line-name = "SGMII_INT#";
+               };
+
+               qsgmii-intn-hog {
+                       gpio-hog;
+                       gpios = <4 0>;
+                       input;
+                       line-name = "QSGMII_INT#";
+               };
+
+               qsgmii-rstn-hog {
+                       gpio-hog;
+                       gpios = <5 0>;
+                       output-high;
+                       line-name = "QSGMII_RESET#";
+               };
+       };
+};
+
+&enetc_mdio_pf3 {
+       mdio0_rgmii_phy00: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x00>;
+               reset-gpios = <&gpio_exp_1v8 1 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <1>;
+               reset-deassert-us = <200>;
+               interrupt-parent = <&gpio_exp_1v8>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
+               ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+       };
+
+       mdio0_sgmii_phy03: ethernet-phy@3 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x03>;
+               reset-gpios = <&gpio_exp_1v8 3 GPIO_ACTIVE_LOW>;
+               /*
+                * Long reset to work around PHY incorrect strap pin sampling
+                * due to external capacitors for SGMII
+                */
+               reset-assert-us = <2500>;
+               reset-deassert-us = <200>;
+               interrupt-parent = <&gpio_exp_1v8>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+       };
+
+       qsgmii_phy1: ethernet-phy@1c {
+               reg = <0x1c>;
+       };
+
+       qsgmii_phy2: ethernet-phy@1d {
+               reg = <0x1d>;
+       };
+
+       qsgmii_phy3: ethernet-phy@1e {
+               reg = <0x1e>;
+       };
+
+       qsgmii_phy4: ethernet-phy@1f {
+               reg = <0x1f>;
+       };
+};
+
+&enetc_port0 {
+       phy-handle = <&mdio0_sgmii_phy03>;
+       phy-mode = "sgmii";
+       managed = "in-band-status";
+       status = "okay";
+};
+
+&enetc_port1 {
+       phy-handle = <&mdio0_rgmii_phy00>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+};
+
+&enetc_port2 {
+       status = "okay";
+};
+
+&mscc_felix {
+       status = "okay";
+};
+
+/* l2switch ports */
+&mscc_felix_port0 {
+       phy-handle = <&qsgmii_phy1>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&mscc_felix_port1 {
+       phy-handle = <&qsgmii_phy2>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&mscc_felix_port2 {
+       phy-handle = <&qsgmii_phy3>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&mscc_felix_port3 {
+       phy-handle = <&qsgmii_phy4>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&mscc_felix_port4 {
+       ethernet = <&enetc_port2>;
+       status = "okay";
+};
+
+&pcie2 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&usb0 {
+       /* dual role is implemented, but not a full featured OTG */
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb1 {
+       dr_mode = "host";
+       #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 = <&gpio_exp_3v3 1 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_3p3v>;
+       };
+
+       hub_3_0: hub@2 {
+               compatible = "usb451,8140";
+               reg = <2>;
+               peer-hub = <&hub_2_0>;
+               reset-gpios = <&gpio_exp_3v3 1 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_3p3v>;
+       };
+};
diff --git a/src/arm64/freescale/fsl-ls1028a-tqmls1028a.dtsi b/src/arm64/freescale/fsl-ls1028a-tqmls1028a.dtsi
new file mode 100644 (file)
index 0000000..dbf24db
--- /dev/null
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2019-2025 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Michael Krummsdorf
+ * Author: Matthias Schiffer
+ * Author: Alexander Stein
+ */
+
+#include "fsl-ls1028a.dtsi"
+
+/ {
+       compatible = "tq,ls1028a-tqmls1028a", "fsl,ls1028a";
+
+       reg_1p8v_som: regulator-1p8v-som {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V_SOM";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       reg_3p3v_som: regulator-3p3v-som {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V_SOM";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       thermal-zones {
+               /*
+                * TQMLS1028A uses an external temperature sensor
+                * instead of TMU
+                */
+               /delete-node/ ddr-controller;
+
+               cluster-thermal {
+                       thermal-sensors = <&sa56004_4c 1>;
+               };
+       };
+};
+
+&esdhc1 {
+       no-sdio;
+       no-sd;
+       non-removable;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-ddr-1_8v;
+       bus-width = <8>;
+       vmmc-supply = <&reg_3p3v_som>;
+       vqmmc-supply = <&reg_1p8v_som>;
+       status = "okay";
+};
+
+&fspi {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <100000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+               vcc-supply = <&reg_1p8v_som>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+       };
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       js42_18: temperature-sensor@18 {
+               compatible = "nxp,se97b", "jedec,jc-42.4-temp";
+               reg = <0x18>;
+       };
+
+       sa56004_4c: temperature-sensor@4c {
+               compatible = "nxp,sa56004";
+               reg = <0x4c>;
+               #thermal-sensor-cells = <1>;
+               vcc-supply = <&reg_3p3v_som>;
+       };
+
+       se97_50: eeprom@50 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               read-only;
+               reg = <0x50>;
+               pagesize = <16>;
+               vcc-supply = <&reg_3p3v_som>;
+       };
+
+       rtc1: rtc@51 {
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               quartz-load-femtofarads = <12500>;
+       };
+
+       m24c256_57: eeprom@57 {
+               compatible = "atmel,24c256";
+               reg = <0x57>;
+               pagesize = <32>;
+               vcc-supply = <&reg_3p3v_som>;
+       };
+};
+
+/*
+ * We use a separate sensor IC to measure core temperature. Disable the TMU
+ * as its driver can cause log spam outside of its measurement range (0-125C).
+ *
+ * Will have to be reevaluated if this DTS is ported to a mainline kernel,
+ * as both sensors of the TMU are referenced by the default LS1028A
+ * thermal-zones definitions there.
+ */
+&tmu {
+       status = "disabled";
+};
index fa543db99def6b055be9ab7ce24a215d2b0e57cc..7059ab8bc9d464f9a56e0e68dddf2f65344babf2 100644 (file)
 #include "fsl-ls1046a.dtsi"
 #include "tqmls10xxa.dtsi"
 
+&bman_fbpr {
+       alloc-ranges = <0 0x88000000 1 0x00000000>;
+};
+
+&qman_fqd {
+       alloc-ranges = <0 0x88000000 1 0x00000000>;
+};
+
+&qman_pfdr {
+       alloc-ranges = <0 0x88000000 1 0x00000000>;
+};
+
 &qspi {
        num-cs = <2>;
        status = "okay";
index 22173d69713d1bd2abca986e76668ad437dd34e4..6fefe837f434f36eb7620a3fcfb9a5a1ffd06b20 100644 (file)
                        status = "disabled";
                };
 
-               pcie_ep1: pcie_ep@3400000 {
+               pcie_ep1: pcie-ep@3400000 {
                        compatible = "fsl,ls1046a-pcie-ep";
                        reg = <0x00 0x03400000 0x0 0x00100000>,
                              <0x40 0x00000000 0x8 0x00000000>;
                        status = "disabled";
                };
 
-               pcie_ep2: pcie_ep@3500000 {
+               pcie_ep2: pcie-ep@3500000 {
                        compatible = "fsl,ls1046a-pcie-ep";
                        reg = <0x00 0x03500000 0x0 0x00100000>,
                              <0x48 0x00000000 0x8 0x00000000>;
                        status = "disabled";
                };
 
-               pcie_ep3: pcie_ep@3600000 {
+               pcie_ep3: pcie-ep@3600000 {
                        compatible = "fsl,ls1046a-pcie-ep";
                        reg = <0x00 0x03600000 0x0 0x00100000>,
                              <0x50 0x00000000 0x8 0x00000000>;
index 71765ec91745ec3f340dfd4d1c658d1e8241aebc..f51508952d51cbec5ccc85cb92a8d6534c039834 100644 (file)
                        /* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
                        partition@2800000 {
                                label = "ubia";
-                               reg = <0x2800000 0x6C00000>;
+                               reg = <0x2800000 0x6c00000>;
                        };
 
                        /* ubib (second OpenWrt) */
                        partition@9400000 {
                                label = "ubib";
-                               reg = <0x9400000 0x6C00000>;
+                               reg = <0x9400000 0x6c00000>;
                        };
                };
        };
index b2f6cd237be046123de9342e2167aa32248a8a16..99016768b73f210a6d086e9f7eac6f3629614272 100644 (file)
                        compatible = "arm,mmu-500";
                        reg = <0 0x5000000 0 0x800000>;
                        #iommu-cells = <1>;
-                       stream-match-mask = <0x7C00>;
+                       stream-match-mask = <0x7c00>;
                        dma-coherent;
                        #global-interrupts = <12>;
                                     // global secure fault
index 9421fdd7e30e3524225220f215420097a0d5f67a..6073e426774aad30a7a325fa0f562c0c14068ab9 100644 (file)
                        reg = <0 0x5000000 0 0x800000>;
                        #global-interrupts = <12>;
                        #iommu-cells = <1>;
-                       stream-match-mask = <0x7C00>;
+                       stream-match-mask = <0x7c00>;
                        dma-coherent;
                        interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, /* global secure fault */
                                     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, /* combined secure interrupt */
index d899c0355e51dd457a4e7259709cea98a488f557..853b01452813a7826a5029f7196d0d4c03f5319a 100644 (file)
@@ -35,7 +35,7 @@
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster0_l2>;
@@ -52,7 +52,7 @@
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster0_l2>;
@@ -69,7 +69,7 @@
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster1_l2>;
@@ -86,7 +86,7 @@
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster1_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster2_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster2_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster3_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster3_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster4_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster4_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster5_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster5_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster6_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster6_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster7_l2>;
                        d-cache-size = <0x8000>;
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <192>;
                        next-level-cache = <&cluster7_l2>;
index 9153dddfd3b848b9309a6427c2ed7dd269be14ac..6fc82b5eb58c1d6f11b20bd935f8af58f40120f9 100644 (file)
@@ -6,6 +6,10 @@
 #include <dt-bindings/pwm/pwm.h>
 
 / {
+       aliases {
+               ethernet0 = &fec1;
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
index 7d5183c6c5bef9b57f2ff92c5184272e43054a03..37e68865b026deb73ffb6a52207f5c05a0dbf5fb 100644 (file)
@@ -11,7 +11,7 @@ ddr_subsys: bus@5c000000 {
        ranges = <0x5c000000 0x0 0x5c000000 0x1000000>;
 
        ddr_pmu0: ddr-pmu@5c020000 {
-               compatible = "fsl,imx8-ddr-pmu";
+               compatible = "fsl,imx8qxp-ddr-pmu", "fsl,imx8-ddr-pmu";
                reg = <0x5c020000 0x10000>;
                interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
        };
index 3569abb5bb9befd4d1504e3e2a352c64229533c0..adc6e394dbc5598c50e0e288ee605ac91087d36b 100644 (file)
@@ -7,3 +7,25 @@
        compatible = "fsl,imx8dxl-ddr-pmu", "fsl,imx8-ddr-pmu";
        interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
 };
+
+&ddr_subsys {
+       db_pmu0: db-pmu@5ca40000 {
+               compatible = "fsl,imx8dxl-db-pmu";
+               reg = <0x5ca40000 0x10000>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&db_pmu0_lpcg IMX_LPCG_CLK_4>, <&db_pmu0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg", "cnt";
+       };
+
+       db_pmu0_lpcg: clock-controller@5cae0000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5cae0000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&db_ipg_clk>, <&db_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "perf_lpcg_cnt_clk",
+                                    "perf_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_PERF>;
+       };
+};
index 8d60827822ed1cc6cfb1a9369faaebfd711708d1..5106be2fde6e025cc066b796ba7987d0d9c21bd5 100644 (file)
                clock-output-names = "xtal_24MHz";
        };
 
+       db_ipg_clk: clock-db-ipg {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <456000000>;
+               clock-output-names = "db_ipg_clk";
+       };
+
        /* sorted in register address */
        #include "imx8-ss-cm40.dtsi"
        #include "imx8-ss-adma.dtsi"
index 43d5905f3d7204bb42f59ab5cc422d21c06356e2..414f44b85564f43341e6fa895e529034ce35898f 100644 (file)
@@ -33,7 +33,7 @@
                        no-map;
                };
 
-               rsc_table: rsc_table@b80ff000 {
+               rsc_table: rsc-table@b80ff000 {
                        reg = <0 0xb80ff000 0 0x1000>;
                        no-map;
                };
index 3d66c6701342ae20839254674261c8264beccde5..b764f77348689be4b31495926dc77d177459ec55 100644 (file)
@@ -83,6 +83,7 @@
                        enet-phy-lane-no-swap;
                        ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
                        ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       ti,min-output-impedance;
                        ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                        ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                        reg = <0>;
index b941c8c4f7bb44a02fe1f6587050aeb517435b19..8dcc5cbcb8f66204dead0f71e42a7350c3cd3b86 100644 (file)
        status = "okay";
 };
 
+&reg_usdhc2_vqmmc {
+       status = "okay";
+};
+
 &sai3 {
        assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
        assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
                           <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
                           <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
                           <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
-                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
-                          <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>;
        };
 
        pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
                           <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
                           <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
                           <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
-                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
-                          <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>;
        };
 
        pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
                           <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
                           <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
                           <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
-                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
-                          <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+                          <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>;
        };
 };
index b82e9790ea20593d4f1af5f0620f210feaa14708..29b298af0d739100d33ff43a8b955a37821b3ef7 100644 (file)
                reg = <0x00000000 0x40000000 0 0x40000000>;
        };
 
-       /* e-MMC IO, needed for HS modes */
-       reg_vcc1v8: regulator-vcc1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "TQMA8MXML_VCC1V8";
+       reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
+               compatible = "regulator-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vqmmc>;
+               regulator-name = "V_SD2";
                regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       /* identical to buck4_reg, but should never change */
-       reg_vcc3v3: regulator-vcc3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "TQMA8MXML_VCC3V3";
-               regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
+               gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x1>,
+                        <3300000 0x0>;
+               vin-supply = <&ldo5_reg>;
+               status = "disabled";
        };
 
        reserved-memory {
                };
        };
 
-
        pcf85063: rtc@51 {
                compatible = "nxp,pcf85063a";
                reg = <0x51>;
                read-only;
                reg = <0x53>;
                pagesize = <16>;
-               vcc-supply = <&reg_vcc3v3>;
+               vcc-supply = <&buck4_reg>;
        };
 
        eeprom0: eeprom@57 {
                compatible = "atmel,24c64";
                reg = <0x57>;
                pagesize = <32>;
-               vcc-supply = <&reg_vcc3v3>;
+               vcc-supply = <&buck4_reg>;
        };
 };
 
        fsl,clkreq-unsupported;
 };
 
+&usdhc2 {
+       vqmmc-supply = <&reg_usdhc2_vqmmc>;
+};
+
 &usdhc3 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc3>;
        non-removable;
        no-sd;
        no-sdio;
-       vmmc-supply = <&reg_vcc3v3>;
-       vqmmc-supply = <&reg_vcc1v8>;
+       vmmc-supply = <&buck4_reg>;
+       vqmmc-supply = <&buck5_reg>;
        status = "okay";
 };
 
                fsl,pins = <MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19         0x84>;
        };
 
+       pinctrl_reg_usdhc2_vqmmc: regusdhc2vqmmcgrp {
+               fsl,pins = <MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4           0xc0>;
+       };
+
        pinctrl_usdhc3: usdhc3grp {
                fsl,pins = <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d4>,
                           <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
index 429be2bab8a2d5188dc9769ff7ad000e8769c53e..320806d3d07344e8e8f2e8b348cba1d9a2cb0a6e 100644 (file)
                interrupt-parent = <&gpio4>;
                interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
        };
+
+       magnetometer@1e {
+               compatible = "st,lis2mdl";
+               reg = <0x1e>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mag>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
+       };
 };
 
 /* off-board header */
                >;
        };
 
+       pinctrl_mag: maggrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1         0x159
+               >;
+       };
+
        pinctrl_gpio_leds: gpioledgrp {
                fsl,pins = <
                        MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5    0x19
index fc3cd639310ef07d6d14c457af607f61e2288b1e..9f49c0b386d31051da9638b566c5e5ee5d2c54b2 100644 (file)
                arm,no-tick-in-suspend;
        };
 
-       thermal-zones {
+       thermal_zones: thermal-zones {
                cpu-thermal {
                        polling-delay-passive = <250>;
                        polling-delay = <2000>;
index d7f7f9aafb7d1b65180fc4f3c29039598c239233..664f4a6950a82af8ac38288bb0d71517eda91580 100644 (file)
        samsung,esc-clock-frequency = <20000000>;
 };
 
+&reg_usdhc2_vqmmc {
+       status = "okay";
+};
+
 &sai3 {
        assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
        assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
        };
 
        pinctrl_i2c2: i2c2grp {
-               fsl,pins = <MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL              0x400001C4>,
-                          <MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA              0x400001C4>;
+               fsl,pins = <MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL              0x400001c4>,
+                          <MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA              0x400001c4>;
        };
 
        pinctrl_i2c2_gpio: i2c2gpiogrp {
-               fsl,pins = <MX8MN_IOMUXC_I2C2_SCL_GPIO5_IO16            0x400001C4>,
-                          <MX8MN_IOMUXC_I2C2_SDA_GPIO5_IO17            0x400001C4>;
+               fsl,pins = <MX8MN_IOMUXC_I2C2_SCL_GPIO5_IO16            0x400001c4>,
+                          <MX8MN_IOMUXC_I2C2_SDA_GPIO5_IO17            0x400001c4>;
        };
 
        pinctrl_i2c3: i2c3grp {
-               fsl,pins = <MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL              0x400001C4>,
-                          <MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA              0x400001C4>;
+               fsl,pins = <MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL              0x400001c4>,
+                          <MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA              0x400001c4>;
        };
 
        pinctrl_i2c3_gpio: i2c3gpiogrp {
-               fsl,pins = <MX8MN_IOMUXC_I2C3_SCL_GPIO5_IO18            0x400001C4>,
-                          <MX8MN_IOMUXC_I2C3_SDA_GPIO5_IO19            0x400001C4>;
+               fsl,pins = <MX8MN_IOMUXC_I2C3_SCL_GPIO5_IO18            0x400001c4>,
+                          <MX8MN_IOMUXC_I2C3_SDA_GPIO5_IO19            0x400001c4>;
        };
 
        pinctrl_pwm3: pwm3grp {
                           <MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
                           <MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
                           <MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
-                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
-                          <MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>;
        };
 
        pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
                           <MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
                           <MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
                           <MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
-                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
-                          <MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>;
        };
 
        pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
                           <MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0         0x1d4>,
                           <MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1         0x1d4>,
                           <MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2         0x1d4>,
-                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>,
-                          <MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT      0x84>;
+                          <MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3         0x1d4>;
        };
 
        pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
index 1d23814e11cd30f81051c99dd95f8af5a5f86ea2..31a3ca137e63640a2387d3497274f10a6b8c6766 100644 (file)
                reg = <0x00000000 0x40000000 0 0x40000000>;
        };
 
-       /* e-MMC IO, needed for HS modes */
-       reg_vcc1v8: regulator-vcc1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "TQMA8MXNL_VCC1V8";
+       reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
+               compatible = "regulator-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vqmmc>;
+               regulator-name = "V_SD2";
                regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       reg_vcc3v3: regulator-vcc3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "TQMA8MXNL_VCC3V3";
-               regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
+               gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x1>,
+                        <3300000 0x0>;
+               vin-supply = <&ldo5_reg>;
+               status = "disabled";
        };
 
        reserved-memory {
                read-only;
                reg = <0x53>;
                pagesize = <16>;
-               vcc-supply = <&reg_vcc3v3>;
+               vcc-supply = <&buck4_reg>;
        };
 
        eeprom0: eeprom@57 {
                compatible = "atmel,24c64";
                reg = <0x57>;
                pagesize = <32>;
-               vcc-supply = <&reg_vcc3v3>;
+               vcc-supply = <&buck4_reg>;
        };
 };
 
        vddio-supply = <&ldo3_reg>;
 };
 
+&usdhc2 {
+       vqmmc-supply = <&reg_usdhc2_vqmmc>;
+};
+
 &usdhc3 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc3>;
        non-removable;
        no-sd;
        no-sdio;
-       vmmc-supply = <&reg_vcc3v3>;
-       vqmmc-supply = <&reg_vcc1v8>;
+       vmmc-supply = <&buck4_reg>;
+       vqmmc-supply = <&buck5_reg>;
        status = "okay";
 };
 
                fsl,pins = <MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19         0x84>;
        };
 
+       pinctrl_reg_usdhc2_vqmmc: regusdhc2vqmmcgrp {
+               fsl,pins = <MX8MN_IOMUXC_GPIO1_IO04_GPIO1_IO4           0xc0>;
+       };
+
        pinctrl_usdhc3: usdhc3grp {
                fsl,pins = <MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK           0x1d4>,
                           <MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD           0x1d2>,
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-common.dtsi b/src/arm64/freescale/imx8mn-vhip4-evalboard-common.dtsi
new file mode 100644 (file)
index 0000000..aaf9761
--- /dev/null
@@ -0,0 +1,396 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020-2024 Fedor Ross <fedor.ross@ifm.com>
+ */
+
+#include "imx8mn.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "ifm i.MX8MNano VHIP4 Evaluation Board";
+       compatible = "ifm,imx8mn-vhip4-evalboard", "ifm,imx8mn-vhip4", "fsl,imx8mn";
+
+       aliases {
+               mmc0 = &usdhc3;
+               mmc1 = &usdhc1;
+               mmc2 = &usdhc2;
+               rtc0 = &hw_rtc;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               bootargs = "console=ttymxc2,115200 earlycon=ec_imx6q,0x30880000,115200 rootwait";
+               stdout-path = &uart3;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0 0x40000000>;
+       };
+
+       can_clk20m: can-clk20m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <20000000>;
+       };
+
+       can_clk40m: can-clk40m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <40000000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&pinctrl_gpio_button>;
+               pinctrl-names = "default";
+
+               button-2 {
+                       label = "Button2";
+                       gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_2>;
+               };
+
+               button-3 {
+                       label = "Button3";
+                       gpios = <&gpio2 18 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_3>;
+               };
+       };
+
+       ifm_led: led {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pinctrl_gpio_led>;
+               pinctrl-names = "default", "extended";
+
+               led-0 {
+                       function = LED_FUNCTION_STATUS;
+                       function-enumerator = <1>;
+                       color = <LED_COLOR_ID_YELLOW>;
+                       gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+                       default-state = "keep";
+               };
+
+               led-1 {
+                       function = LED_FUNCTION_STATUS;
+                       function-enumerator = <2>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
+                       default-state = "keep";
+               };
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&ddrc {
+       operating-points-v2 = <&ddrc_opp_table>;
+
+       ddrc_opp_table: opp-table {
+               compatible = "operating-points-v2";
+
+               opp-25000000 {
+                       opp-hz = /bits/ 64 <25000000>;
+               };
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+               };
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+               };
+       };
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_ecspi1_cs>;
+       /delete-property/ dmas;
+       /delete-property/ dma-names;
+};
+
+&ecspi3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi3>, <&pinctrl_ecspi3_cs>;
+       /delete-property/ dmas;
+       /delete-property/ dma-names;
+};
+
+&gpu {
+       /* SoC has GPU fused off. */
+       status = "disabled";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+
+       eeprom@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+       };
+
+       hw_rtc: rtc@52 {
+               compatible = "microcrystal,rv3028";
+               reg = <0x52>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+
+       ifm_pmic: pmic@4b {
+               compatible = "rohm,bd71847";
+               reg = <0x4b>;
+               pinctrl-0 = <&pinctrl_pmic>;
+               rohm,reset-snvs-powered;
+
+               regulators {
+                       buck1_reg: BUCK1 {
+                               regulator-name = "buck1";
+                               regulator-min-microvolt = <790000>;
+                               regulator-max-microvolt = <860000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "buck2";
+                               regulator-min-microvolt = <840000>;
+                               regulator-max-microvolt = <960000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               // BUCK5 in datasheet
+                               regulator-name = "buck3";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1350000>;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               // BUCK6 in datasheet
+                               regulator-name = "buck4";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               // BUCK7 in datasheet
+                               regulator-name = "buck5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6_reg: BUCK6 {
+                               // BUCK8 in datasheet
+                               regulator-name = "buck6";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1_reg: LDO1 {
+                               regulator-name = "ldo1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2_reg: LDO2 {
+                               regulator-name = "ldo2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3_reg: LDO3 {
+                               regulator-name = "ldo3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4_reg: LDO4 {
+                               regulator-name = "ldo4";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "ldo5";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "ldo6";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x110
+                       MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x110
+                       MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x190
+               >;
+       };
+
+       pinctrl_ecspi3: ecspi3-grp {
+               fsl,pins = <
+                       /* SPI3_CAN_CLK */
+                       MX8MN_IOMUXC_UART1_RXD_ECSPI3_SCLK              0x110
+                       /* SPI3_CAN_MOSI */
+                       MX8MN_IOMUXC_UART1_TXD_ECSPI3_MOSI              0x110
+                       /* SPI3_CAN_MISO */
+                       MX8MN_IOMUXC_UART2_RXD_ECSPI3_MISO              0x190
+               >;
+       };
+
+       pinctrl_gpio_button: gpiobutton-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD2_DATA1_GPIO2_IO16               0x96
+                       MX8MN_IOMUXC_SD2_DATA3_GPIO2_IO18               0x96
+               >;
+       };
+
+       pinctrl_gpio_led: gpioled-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD2_CLK_GPIO2_IO13                 0x116
+                       MX8MN_IOMUXC_SD2_DATA0_GPIO2_IO15               0x116
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK               0x40000110
+                       MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d0
+                       MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d0
+                       MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d0
+                       MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
+                       MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d0
+                       MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d0
+                       MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d0
+                       MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d0
+                       MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d0
+                       MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x190
+                       MX8MN_IOMUXC_NAND_READY_B_USDHC3_RESET_B        0x150
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK               0x40000114
+                       MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d4
+                       MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d4
+                       MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d4
+                       MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d4
+                       MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d4
+                       MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d4
+                       MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d4
+                       MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d4
+                       MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d4
+                       MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x194
+                       MX8MN_IOMUXC_NAND_READY_B_USDHC3_RESET_B        0x150
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK               0x40000116
+                       MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d6
+                       MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d6
+                       MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d6
+                       MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d6
+                       MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d6
+                       MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d6
+                       MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d6
+                       MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d6
+                       MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d6
+                       MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x196
+                       MX8MN_IOMUXC_NAND_READY_B_USDHC3_RESET_B        0x150
+               >;
+       };
+
+       pinctrl_wdog: wdog-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B            0x64
+               >;
+       };
+};
+
+&pgc_gpumix {
+       /* SoC has GPU fused off. */
+       status = "disabled";
+};
+
+&snvs_pwrkey {
+       status = "okay";
+};
+
+&uart3 { /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&usbotg1 {
+       status = "okay";
+};
+
+&usdhc3 {
+       assigned-clocks = <&clk IMX8MN_CLK_USDHC3_ROOT>;
+       assigned-clock-rates = <400000000>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-ksz8794-common.dtsi b/src/arm64/freescale/imx8mn-vhip4-evalboard-ksz8794-common.dtsi
new file mode 100644 (file)
index 0000000..c1a98ec
--- /dev/null
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2025 Fedor Ross <fedor.ross@ifm.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "imx8mn-pinfunc.h"
+
+&ecspi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ksz8794: ethernet-switch@1 {
+               compatible = "microchip,ksz8794";
+               pinctrl-names = "default", "reset";
+               pinctrl-0 = <&pinctrl_ks8794>;
+               pinctrl-1 = <&pinctrl_ks8794>;
+               reg = <1>;
+               reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+               spi-max-frequency = <5000000>;
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "lan1";
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "lan2";
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "lan3";
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                               label = "cpu";
+                               ethernet = <&fec1>;
+                               phy-mode = "rgmii-id";
+                               rx-internal-delay-ps = <2000>;
+                               tx-internal-delay-ps = <2000>;
+                               fixed-link {
+                                       full-duplex;
+                                       speed = <1000>;
+                               };
+                       };
+               };
+       };
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       fixed-link {
+               full-duplex;
+               speed = <1000>;
+       };
+};
+
+&iomuxc {
+       pinctrl_fec1: fec1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ENET_MDC_ENET1_MDC                 0x16
+                       MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO               0x96
+                       MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x16
+                       MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x16
+                       MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x16
+                       MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x16
+                       MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x96
+                       MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x96
+                       MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x96
+                       MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x96
+                       MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x10
+                       MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x96
+                       MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x96
+                       MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x16
+                       MX8MN_IOMUXC_SAI3_TXFS_GPIO4_IO31               0x1d6
+               >;
+       };
+
+       pinctrl_ks8794: ks8794-grp {
+               fsl,pins = <
+                       /* KSZ8794 reset line */
+                       MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28               0x16
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-v1-overlay-ksz8794.dtso b/src/arm64/freescale/imx8mn-vhip4-evalboard-v1-overlay-ksz8794.dtso
new file mode 100644 (file)
index 0000000..20eb427
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "imx8mn-pinfunc.h"
+
+&pinctrl_ecspi1 {
+       fsl,pins = <
+               MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x10
+               MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x10
+               MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x90
+               /* KS8794 nCS */
+               MX8MN_IOMUXC_I2C4_SDA_GPIO5_IO21                0x150
+               /* ANV32C81 nCS */
+               MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x150
+       >;
+};
+
+#include "imx8mn-vhip4-evalboard-ksz8794-common.dtsi"
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-v1-overlay-ksz9031.dtso b/src/arm64/freescale/imx8mn-vhip4-evalboard-v1-overlay-ksz9031.dtso
new file mode 100644 (file)
index 0000000..de24206
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "imx8mn-pinfunc.h"
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+               };
+       };
+};
+
+&iomuxc {
+       pinctrl_fec1: fec1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ENET_MDC_ENET1_MDC                 0x16
+                       MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO               0x96
+                       MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x16
+                       MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x16
+                       MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x16
+                       MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x16
+                       MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x96
+                       MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x96
+                       MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x96
+                       MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x96
+                       MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x16
+                       MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x96
+                       MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x96
+                       MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x16
+                       MX8MN_IOMUXC_SAI3_TXFS_GPIO4_IO31               0x1d6
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-v1.dts b/src/arm64/freescale/imx8mn-vhip4-evalboard-v1.dts
new file mode 100644 (file)
index 0000000..5f37065
--- /dev/null
@@ -0,0 +1,258 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2020-2024 Fedor Ross <fedor.ross@ifm.com>
+ */
+
+/dts-v1/;
+
+#include "imx8mn-vhip4-evalboard-common.dtsi"
+
+/ {
+       model = "ifm i.MX8MNano VHIP4 Evaluation Board v1";
+       compatible = "ifm,imx8mn-vhip4-evalboard-v1", "ifm,imx8mn-vhip4-evalboard",
+                    "ifm,imx8mn-vhip4", "fsl,imx8mn";
+};
+
+&ifm_led {
+       pinctrl-1 = <&pinctrl_gpio_led_v1>;
+
+       led-2 {
+               function = LED_FUNCTION_STATUS;
+               function-enumerator = <3>;
+               color = <LED_COLOR_ID_YELLOW>;
+               gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
+               default-state = "keep";
+       };
+
+       led-3 {
+               function = LED_FUNCTION_STATUS;
+               function-enumerator = <4>;
+               color = <LED_COLOR_ID_GREEN>;
+               gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               default-state = "keep";
+       };
+};
+
+&ecspi1 {
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, <&gpio5 21 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       eeprom@0 {
+               compatible = "anvo,anv32c81w", "atmel,at25";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+               spi-cpha;
+               spi-cpol;
+               pagesize = <1>;
+               size = <32768>;
+               address-width = <16>;
+       };
+};
+
+&ecspi3 {
+       cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>, <&gpio5 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       can0: can@0 {
+               compatible = "microchip,mcp25625";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mcp25625>;
+               reg = <0>;
+               clocks = <&can_clk20m>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       can1: can@1 {
+               compatible = "microchip,mcp2518fd";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mcp2518>;
+               reg = <1>;
+               clocks = <&can_clk40m>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+               microchip,rx-int-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
+&i2c1 {
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "national,lm75";
+               reg = <0x48>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&i2c3 {
+       scl-gpios = <&gpio2 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&ifm_pmic {
+       interrupt-parent = <&gpio2>;
+       interrupts = <0 GPIO_ACTIVE_LOW>;
+};
+
+&iomuxc {
+       pinctrl_ecspi1_cs: ecspi1-cs-grp {
+               fsl,pins = <
+                       /* KS8794 nCS */
+                       MX8MN_IOMUXC_I2C4_SDA_GPIO5_IO21                0x150
+                       /* ANV32C81 nCS */
+                       MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x150
+               >;
+       };
+
+       pinctrl_ecspi3_cs: ecspi3-cs-grp {
+               fsl,pins = <
+                       /* MCP25625 nCS */
+                       MX8MN_IOMUXC_UART2_TXD_GPIO5_IO25               0x150
+                       /* MCP2518FD nCS */
+                       MX8MN_IOMUXC_SPDIF_RX_GPIO5_IO4                 0x150
+               >;
+       };
+
+       pinctrl_gpio_5: gpio5-grp {
+               fsl,pins = <
+                       /* CFG_EEPROM_WP */
+                       MX8MN_IOMUXC_I2C4_SCL_GPIO5_IO20                0x140
+               >;
+       };
+
+       pinctrl_gpio_led_v1: gpioled-v1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD2_DATA2_GPIO2_IO17               0x116
+                       MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19             0x116
+               >;
+       };
+
+       pinctrl_i2c1: i2c1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL                  0x40000056
+                       MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA                  0x400000d6
+               >;
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C1_SCL_GPIO5_IO14                0x56
+                       MX8MN_IOMUXC_I2C1_SDA_GPIO5_IO15                0xd6
+               >;
+       };
+
+       pinctrl_i2c2: i2c2-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL                  0x40000056
+                       MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA                  0x400000d6
+               >;
+       };
+
+       pinctrl_i2c2_gpio: i2c2-gpio-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C2_SCL_GPIO5_IO16                0x56
+                       MX8MN_IOMUXC_I2C2_SDA_GPIO5_IO17                0xd6
+               >;
+       };
+
+       pinctrl_i2c3: i2c3-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_RESET_B_I2C3_SCL               0x40000056
+                       MX8MN_IOMUXC_SD1_STROBE_I2C3_SDA                0x400000d6
+               >;
+       };
+
+       pinctrl_i2c3_gpio: i2c3-gpio-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_RESET_B_GPIO2_IO10             0x56
+                       MX8MN_IOMUXC_SD1_STROBE_GPIO2_IO11              0xd6
+               >;
+       };
+
+       pinctrl_mcp2518: mcp2518-grp {
+               fsl,pins = <
+                       /* MCP2518 nINT line */
+                       MX8MN_IOMUXC_SAI3_MCLK_GPIO5_IO2                0x116
+                       /* MCP2518 nINT1/GPIO1 line */
+                       MX8MN_IOMUXC_SAI3_TXD_GPIO5_IO1                 0x116
+               >;
+       };
+
+       pinctrl_mcp25625: mcp25625-grp {
+               fsl,pins = <
+                       /* MCP25625 nINT line */
+                       MX8MN_IOMUXC_SAI2_RXFS_GPIO4_IO21               0x156
+               >;
+       };
+
+       pinctrl_pmic: pmic-irq-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_CLK_GPIO2_IO0                  0x16
+               >;
+       };
+
+       pinctrl_uart3: uart3-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_UART3_RXD_UART3_DCE_RX             0x142
+                       MX8MN_IOMUXC_UART3_TXD_UART3_DCE_TX             0x142
+               >;
+       };
+
+       pinctrl_usb_nreset: usbnreset-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29                0x14a
+               >;
+       };
+
+       pinctrl_wdog: wdog-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B            0x64
+               >;
+       };
+};
+
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_5>;
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "",
+               "ifm_device_info_eeprom_wp",
+               "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_nreset>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       usb-hub@1 {
+               compatible = "usb424,2512", "usb424,2514";
+               reg = <1>;
+               reset-gpios = <&gpio4 29 GPIO_ACTIVE_LOW>;
+       };
+};
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-v2-overlay-adin1300.dtso b/src/arm64/freescale/imx8mn-vhip4-evalboard-v2-overlay-adin1300.dtso
new file mode 100644 (file)
index 0000000..6ad7434
--- /dev/null
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 Fedor Ross <fedor.ross@ifm.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "imx8mn-pinfunc.h"
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       reg = <0>;
+
+                       adi,rx-internal-delay-ps = <1800>;
+                       adi,tx-internal-delay-ps = <2200>;
+                       interrupts-extended = <&gpio4 31 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <10000>;
+               };
+       };
+};
+
+&iomuxc {
+       pinctrl_fec1: fec1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ENET_MDC_ENET1_MDC                 0x16
+                       MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO               0x96
+                       MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x16
+                       MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x16
+                       MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x16
+                       MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x16
+                       MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x96
+                       MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x96
+                       MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x96
+                       MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x96
+                       MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x16
+                       MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x96
+                       MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x96
+                       MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x16
+                       /* nRST */
+                       MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28               0x156
+                       /* nIRQ */
+                       MX8MN_IOMUXC_SAI3_TXFS_GPIO4_IO31               0x1d6
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-v2-overlay-ksz8794.dtso b/src/arm64/freescale/imx8mn-vhip4-evalboard-v2-overlay-ksz8794.dtso
new file mode 100644 (file)
index 0000000..ab1304e
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "imx8mn-pinfunc.h"
+
+&pinctrl_ecspi1 {
+       fsl,pins = <
+               MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x10
+               MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x10
+               MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x90
+               /* KS8794 nCS */
+               MX8MN_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x150
+               /* ANV32C81 nCS */
+               MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x150
+       >;
+};
+
+#include "imx8mn-vhip4-evalboard-ksz8794-common.dtsi"
diff --git a/src/arm64/freescale/imx8mn-vhip4-evalboard-v2.dts b/src/arm64/freescale/imx8mn-vhip4-evalboard-v2.dts
new file mode 100644 (file)
index 0000000..4dadfb7
--- /dev/null
@@ -0,0 +1,221 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 Fedor Ross <fedor.ross@ifm.com>
+ */
+
+/dts-v1/;
+
+#include "imx8mn-vhip4-evalboard-common.dtsi"
+
+/ {
+       model = "ifm i.MX8MNano VHIP4 Evaluation Board v2";
+       compatible = "ifm,imx8mn-vhip4-evalboard-v2", "ifm,imx8mn-vhip4-evalboard",
+                    "ifm,imx8mn-vhip4", "fsl,imx8mn";
+
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_INDICATOR;
+               leds = <&rgb_0>, <&rgb_1>, <&rgb_2>;
+       };
+};
+
+&ifm_led {
+       pinctrl-1 = <&pinctrl_gpio_led_v2>;
+
+       rgb_0: rgb-led-red {
+               color = <LED_COLOR_ID_RED>;
+               gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
+               default-state = "keep";
+       };
+
+       rgb_1: rgb-led-green {
+               color = <LED_COLOR_ID_GREEN>;
+               gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               default-state = "keep";
+       };
+
+       rgb_2: rgb-led-blue {
+               color = <LED_COLOR_ID_BLUE>;
+               gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+               default-state = "keep";
+       };
+};
+
+&ecspi1 {
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>, <&gpio1 11 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       eeprom@0 {
+               compatible = "fujitsu,mb85rs64", "atmel,at25";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+               spi-cpha;
+               spi-cpol;
+               pagesize = <1>;
+               size = <32768>;
+               address-width = <16>;
+       };
+};
+
+&ecspi3 {
+       cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       can0: can@0 {
+               compatible = "microchip,mcp2518fd";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mcp2518>;
+               reg = <0>;
+               clocks = <&can_clk40m>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
+               microchip,rx-int-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
+&i2c1 {
+       scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp1075";
+               reg = <0x48>;
+       };
+
+       eeprom@54 {
+               compatible = "atmel,24c128";
+               reg = <0x54>;
+       };
+};
+
+&i2c3 {
+       scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&ifm_pmic {
+       interrupt-parent = <&gpio5>;
+       interrupts = <17 GPIO_ACTIVE_LOW>;
+};
+
+&iomuxc {
+       pinctrl_ecspi1_cs: ecspi1-cs-grp {
+               fsl,pins = <
+                       /* KS8794 nCS */
+                       MX8MN_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x150
+                       /* Retain memory nCS (FRAM or MRAM) */
+                       MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x150
+                       /* RETAIN_nHOLD */
+                       MX8MN_IOMUXC_SPDIF_RX_GPIO5_IO4                 0x140
+               >;
+       };
+
+       pinctrl_ecspi3_cs: ecspi3-cs-grp {
+               fsl,pins = <
+                       /* MCP2518FD nCS */
+                       MX8MN_IOMUXC_UART2_TXD_GPIO5_IO25               0x150
+               >;
+       };
+
+       pinctrl_gpio_led_v2: gpioled-v2-grp {
+               fsl,pins = <
+                       /* LED_RGB_RED */
+                       MX8MN_IOMUXC_SD2_DATA2_GPIO2_IO17               0x116
+                       /* LED_RGB_GREEN */
+                       MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19             0x116
+                       /* LED_RGB_BLUE */
+                       MX8MN_IOMUXC_SD2_WP_GPIO2_IO20                  0x116
+               >;
+       };
+
+       pinctrl_i2c1: i2c1-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_DATA4_I2C1_SCL                 0x40000056
+                       MX8MN_IOMUXC_SD1_DATA5_I2C1_SDA                 0x400000d6
+               >;
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_DATA4_GPIO2_IO6                0x56
+                       MX8MN_IOMUXC_SD1_DATA5_GPIO2_IO7                0xd6
+                       /* CFG_EEPROM_WP */
+                       MX8MN_IOMUXC_SD1_STROBE_GPIO2_IO11              0x140
+                       /* RTC_nIRQ */
+                       MX8MN_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5            0x116
+                       /* LOG_EE_WP */
+                       MX8MN_IOMUXC_SPDIF_TX_GPIO5_IO3                 0x140
+               >;
+       };
+
+       pinctrl_i2c3: i2c3-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C3_SCL_I2C3_SCL                  0x40000056
+                       MX8MN_IOMUXC_I2C3_SDA_I2C3_SDA                  0x400000d6
+               >;
+       };
+
+       pinctrl_i2c3_gpio: i2c3-gpio-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C3_SCL_GPIO5_IO18                0x56
+                       MX8MN_IOMUXC_I2C3_SDA_GPIO5_IO19                0xd6
+               >;
+       };
+
+       pinctrl_mcp2518: mcp2518-grp {
+               fsl,pins = <
+                       /* CAN0_CLKO */
+                       MX8MN_IOMUXC_GPIO1_IO00_GPIO1_IO0               0x116
+                       /* CAN0_nINT0 */
+                       MX8MN_IOMUXC_GPIO1_IO03_GPIO1_IO3               0x116
+                       /* CAN0_nINT1 */
+                       MX8MN_IOMUXC_GPIO1_IO04_GPIO1_IO4               0x116
+                       /* CAN0_nINT */
+                       MX8MN_IOMUXC_GPIO1_IO01_GPIO1_IO1               0x116
+               >;
+       };
+
+       pinctrl_pmic: pmic-irq-grp {
+               fsl,pins = <
+                       /* PMIC_nIRQ */
+                       MX8MN_IOMUXC_I2C2_SDA_GPIO5_IO17                0x1d6
+               >;
+       };
+
+       pinctrl_uart3: uart3-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SD1_DATA6_UART3_DCE_TX             0x142
+                       MX8MN_IOMUXC_SD1_DATA7_UART3_DCE_RX             0x142
+               >;
+       };
+
+       pinctrl_wdog: wdog-grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B            0x64
+               >;
+       };
+};
+
+&gpio2 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "",
+               "ifm_device_info_eeprom_wp",
+               "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "", "", "",
+               "ifm_logging_eeprom_wp",
+               "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
index b98b3d0ddf25aa4b98f8320ecc7f44e22271178e..3199bc0966b039057b54b28ffc3522f7854c12bd 100644 (file)
                                        wakeup-source;
                                        status = "disabled";
                                };
+
+                               snvs_lpgpr: snvs-lpgpr {
+                                       compatible = "fsl,imx8mn-snvs-lpgpr",
+                                                    "fsl,imx7d-snvs-lpgpr";
+                               };
                        };
 
                        clk: clock-controller@30380000 {
index 16078ff60ef08bcf7f2792ed2d1456560fe47601..7e46537a22a01d6e66305394edcddd73fdf660da 100644 (file)
                status = "disabled";
        };
 
+       reg_pcie0: regulator-pcie {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wifi>;
+               regulator-name = "WIFI_BT_RST#";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
 &eqos {        /* First ethernet */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
-       phy-handle = <&phy_eqos>;
+       phy-handle = <&phy_eqos_bcm>;
        phy-mode = "rgmii-id";
        status = "okay";
 
                #size-cells = <0>;
 
                /* Atheros AR8031 PHY */
-               phy_eqos: ethernet-phy@0 {
+               phy_eqos_ath: ethernet-phy@0 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0>;
                        /*
                        reset-deassert-us = <10000>;
                        qca,keep-pll-enabled;
                        vddio-supply = <&vddio_eqos>;
+                       status = "disabled";
 
                        vddio_eqos: vddio-regulator {
                                regulator-name = "VDDIO_EQOS";
                                regulator-name = "VDDH_EQOS";
                        };
                };
+
+               /* Broadcom BCM54213PE PHY */
+               phy_eqos_bcm: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       /*
+                        * Dedicated ENET_INT# and ENET_WOL# signals are
+                        * unused, the PHY does not provide cable detect
+                        * interrupt.
+                        */
+                       reset-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <10000>;
+               };
        };
 };
 
 &fec { /* Second ethernet */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_fec>;
-       phy-handle = <&phy_fec>;
+       phy-handle = <&phy_fec_bcm>;
        phy-mode = "rgmii-id";
        fsl,magic-packet;
        status = "okay";
                #size-cells = <0>;
 
                /* Atheros AR8031 PHY */
-               phy_fec: ethernet-phy@0 {
+               phy_fec_ath: ethernet-phy@0 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0>;
                        /*
                        reset-deassert-us = <10000>;
                        qca,keep-pll-enabled;
                        vddio-supply = <&vddio_fec>;
+                       status = "disabled";
 
                        vddio_fec: vddio-regulator {
                                regulator-name = "VDDIO_FEC";
                                regulator-name = "VDDH_FEC";
                        };
                };
+
+               /* Broadcom BCM54213PE PHY */
+               phy_fec_bcm: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       /*
+                        * Dedicated ENET_INT# and ENET_WOL# signals are
+                        * unused, the PHY does not provide cable detect
+                        * interrupt.
+                        */
+                       reset-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <10000>;
+               };
        };
 };
 
                self-powered;
        };
 
-       eeprom: eeprom@50 {
+       tpm: tpm@2e {
+               compatible = "st,st33tphf2ei2c", "tcg,tpm-tis-i2c";
+               reg = <0x2e>;
+       };
+
+       eeprom900: eeprom@50 {  /* board rev.900 */
                compatible = "atmel,24c32";
                reg = <0x50>;
                pagesize = <32>;
+               status = "disabled";
+       };
+
+       eeprom902: eeprom@51 {  /* board rev.902 */
+               compatible = "atmel,24c32";
+               reg = <0x51>;
+               pagesize = <32>;
        };
 
        rtc: rtc@68 {
+               #clock-cells = <1>;
                compatible = "st,m41t62";
                reg = <0x68>;
                pinctrl-names = "default";
        scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
+
+       gpiolvds: io-expander@20 {
+               compatible = "nxp,pca9554";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "BL_ENABLE_V", "SEL_BL_12V",
+                       "SEL_PANEL_5V", "SEL_PANEL_12V",
+                       "SEL_BL_PWM", "SEL_BL_EN",
+                       "REVERSE_SCAN_PANEL", "GND_REV903";
+       };
+
+       gpiowifi: io-expander@21 {
+               compatible = "nxp,pca9554";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "BL_LVDS_ENABLE_3V3", "BL_LVDS_PWM_3V3",
+                       "M2_BT_WAKE_3V3#", "M2_W_DISABLE2_3V3#",
+                       "TFT_PANEL_ENABLE_3V3", "TPM_RESET_3V3#",
+                       "CSI2_PD_3V3", "CSI2_RESET_3V3#";
+
+               /* BL_LVDS_PWM_3V3 is patch-wired to BL_PWM_3V3 on rev.903 */
+               pwm-input-hog {
+                       gpio-hog;
+                       gpios = <1 0>;
+                       input;
+                       line-name = "BL_LVDS_PWM_3V3_HOG";
+               };
+       };
+
+       eepromlvds: eeprom@51 {
+               compatible = "atmel,24c32";
+               reg = <0x51>;
+               pagesize = <32>;
+               /* Optional EEPROM, disabled by default. */
+               status = "disabled";
+       };
 };
 
 &i2c3 {
        pinctrl-0 = <&pinctrl_pcie0>;
        fsl,max-link-speed = <3>;
        reset-gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_pcie0>;
        status = "okay";
 };
 
 &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4>;
-       status = "disabled";
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "infineon,cyw55572-bt";
+               brcm,requires-autobaud-mode;
+               clocks = <&rtc 0>;
+               clock-names = "txco";
+               max-speed = <921600>;
+               shutdown-gpios = <&gpiowifi 3 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &usb3_phy0 {
                        MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3       0x91
                        /* ENET_RST# */
                        MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15             0x6
-                       /* ENET_INT# */
-                       MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11             0x40000090
                >;
        };
 
                        MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC         0x1f
                        /* ENET2_RST# */
                        MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09              0x6
-                       /* ENET2_INT# */
-                       MX8MP_IOMUXC_SD1_DATA0__GPIO2_IO02              0x40000090
                >;
        };
 
 
                        /* PG_V_IN_VAR# */
                        MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01             0x40000000
-                       /* CSI2_PD_1V8 */
-                       MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08            0x0
-                       /* CSI2_RESET_1V8# */
-                       MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09            0x0
 
                        /* DIS_USB_DN1 */
                        MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21              0x0
                        /* GRAPHICS_PRSNT_1V8# */
                        MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18              0x40000000
 
+                       /* TOUCH_RESET_3V3# */
+                       MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00             0x2
+                       /* TOUCH_INT# */
+                       MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10             0x40000140
                        /* CLK_CCM_CLKO1_3V3 */
                        MX8MP_IOMUXC_GPIO1_IO14__CCM_CLKO1              0x10
+                       /* ENET_INT# (rev.900,901) or M2_WDIS_BTIRQ_3V3# (rev.903) */
+                       MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11             0x40000092
                >;
        };
 
                fsl,pins = <
                        /* M2_PCIE_RST# */
                        MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05             0x2
-                       /* M2_W_DISABLE1_1V8# */
+                       /* M2_PCIE_WAKE_1V8# */
                        MX8MP_IOMUXC_SAI5_RXD2__GPIO3_IO23              0x2
-                       /* M2_W_DISABLE2_1V8# */
-                       MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24              0x2
-                       /* CLK_M2_32K768 */
-                       MX8MP_IOMUXC_GPIO1_IO00__CCM_EXT_CLK1           0x14
+                       /* M2_UART_WAKE_1V8# */
+                       MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24              0x40000002
                        /* M2_PCIE_WAKE# */
                        MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06             0x40000140
                        /* M2_PCIE_CLKREQ# */
                fsl,pins = <
                        MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX            0x49
                        MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX            0x49
+                       MX8MP_IOMUXC_NAND_DATA02__UART4_DCE_CTS         0x149
+                       MX8MP_IOMUXC_NAND_DATA03__UART4_DCE_RTS         0x149
                >;
        };
 
                        MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08              0x26
                >;
        };
+
+       pinctrl_wifi: wifi-grp {
+               fsl,pins = <
+                       /* WIFI_BT_RST_3V3# */
+                       MX8MP_IOMUXC_SD1_DATA0__GPIO2_IO02              0x40000090
+               >;
+       };
 };
index 138f21e257aad18682d8aa74812f16e5e8031e33..242fa930bd2f5d7a08ccc46d917a7299834a9b1a 100644 (file)
 };
 
 &easrc {
-       fsl,asrc-rate  = <48000>;
+       fsl,asrc-rate = <48000>;
        status = "okay";
 };
 
index c6facb2ad9aaa210d355a0f40eecde5e4b2f4c5d..b256be710ea1281465f5cecc7a3b979f2c068e43 100644 (file)
                      <0x1 0x00000000 0 0xc0000000>;
        };
 
+       flexcan_phy: can-phy {
+               compatible = "nxp,tja1048";
+               #phy-cells = <1>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flexcan_phy>;
+               standby-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>,
+                               <&gpio4 27 GPIO_ACTIVE_LOW>;
+       };
+
        native-hdmi-connector {
                compatible = "hdmi-connector";
                label = "HDMI OUT";
                clock-frequency = <100000000>;
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "1v5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_2v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "2v8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
        reg_audio_3v3: regulator-audio-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "audio-3v3";
                enable-active-high;
        };
 
-       reg_can1_stby: regulator-can1-stby {
-               compatible = "regulator-fixed";
-               regulator-name = "can1-stby";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_flexcan1_reg>;
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
-       reg_can2_stby: regulator-can2-stby {
-               compatible = "regulator-fixed";
-               regulator-name = "can2-stby";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_flexcan2_reg>;
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
        reg_pcie0: regulator-pcie {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
 &flexcan1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan1>;
-       xceiver-supply = <&reg_can1_stby>;
+       phys = <&flexcan_phy 0>;
        status = "okay";
 };
 
 &flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
-       xceiver-supply = <&reg_can2_stby>;
+       phys = <&flexcan_phy 1>;
        status = "disabled";/* can2 pin conflict with pdm */
 };
 
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";
 
+       camera@3c {
+              compatible = "ovti,ov5640";
+              reg = <0x3c>;
+              pinctrl-names = "default";
+              pinctrl-0 = <&pinctrl_csi0_pwn>, <&pinctrl_csi0_rst>, <&pinctrl_csi_mclk>;
+              clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
+              clock-names = "xclk";
+              assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
+              assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+              assigned-clock-rates = <24000000>;
+              powerdown-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+              AVDD-supply = <&reg_2v8>;
+              DVDD-supply = <&reg_1v5>;
+              DOVDD-supply = <&reg_1v8>;
+              status = "okay";
+
+              port {
+                      ov5640_mipi_0_ep: endpoint {
+                              remote-endpoint = <&mipi_csi0_ep>;
+                              data-lanes = <1 2>;
+                      };
+              };
+       };
+
        hdmi@3d {
                compatible = "adi,adv7535";
                reg = <0x3d>;
         */
 };
 
+&isi_0 {
+       status = "okay";
+};
+
 &lcdif1 {
        status = "okay";
 };
        status = "okay";
 };
 
+&mipi_csi_0 {
+       status = "okay";
+
+       ports {
+              port@0 {
+                      mipi_csi0_ep: endpoint {
+                               remote-endpoint = <&ov5640_mipi_0_ep>;
+                               data-lanes = <1 2>;
+                      };
+              };
+       };
+};
+
 &mipi_dsi {
        samsung,esc-clock-frequency = <10000000>;
        status = "okay";
                >;
        };
 
+       pinctrl_csi_mclk: csi_mclk_grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO15__CCM_CLKO2      0x50
+               >;
+       };
+
+       pinctrl_csi0_pwn: csi0_pwn_grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11     0x10
+               >;
+       };
+
+       pinctrl_csi0_rst: csi0_rst_grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06     0x10
+               >;
+       };
+
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                             0x2
                >;
        };
 
-       pinctrl_flexcan1_reg: flexcan1reggrp {
+       pinctrl_flexcan_phy: flexcanphygrp {
                fsl,pins = <
                        MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05  0x154   /* CAN1_STBY */
-               >;
-       };
-
-       pinctrl_flexcan2_reg: flexcan2reggrp {
-               fsl,pins = <
                        MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27      0x154   /* CAN2_STBY */
                >;
        };
diff --git a/src/arm64/freescale/imx8mp-frdm.dts b/src/arm64/freescale/imx8mp-frdm.dts
new file mode 100644 (file)
index 0000000..55690f5
--- /dev/null
@@ -0,0 +1,355 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8mp.dtsi"
+
+/ {
+       model = "NXP i.MX8MPlus FRDM board";
+       compatible = "fsl,imx8mp-frdm", "fsl,imx8mp";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       label = "red";
+                       gpios = <&pcal6416_0 13 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               led-1 {
+                       label = "green";
+                       gpios = <&pcal6416_0 14 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+
+               led-2 {
+                       label = "blue";
+                       gpios = <&pcal6416_0 15 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0 0xc0000000>,
+                     <0x1 0x00000000 0 0x40000000>;
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&reg_arm>;
+};
+
+&A53_1 {
+       cpu-supply = <&reg_arm>;
+};
+
+&A53_2 {
+       cpu-supply = <&reg_arm>;
+};
+
+&A53_3 {
+       cpu-supply = <&reg_arm>;
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic@25 {
+               compatible = "nxp,pca9450c";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <720000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       reg_arm: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <720000>;
+                               regulator-max-microvolt = <1025000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                       };
+
+                       BUCK4 {
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_buck5: BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1650000>;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1045000>;
+                               regulator-max-microvolt = <1155000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1650000>;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <1710000>;
+                               regulator-max-microvolt = <1890000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       pcal6416_0: gpio@20 {
+               compatible = "nxp,pcal6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6416_0_int>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+               gpio-line-names = "CSI1_nRST",
+                       "CSI2_nRST",
+                       "DSI_CTP_RST",
+                       "EXT_PWREN1",
+                       "CAN_STBY",
+                       "EXP_P0_5",
+                       "EXP_P0_6",
+                       "P0_7",
+                       "LVDS0_BLT_EN",
+                       "LVDS1_BLT_EN",
+                       "LVDS0_CTP_RST",
+                       "LVDS1_CTP_RST",
+                       "SPK_PWREN",
+                       "RLED_GPIO",
+                       "GLED_GPIO",
+                       "BLED_GPIO";
+       };
+
+       pcal6416_1: gpio@21 {
+               compatible = "nxp,pcal6416";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6416_1_int>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+               gpio-line-names = "P0_0",
+                       "P0_1",
+                       "AUD_nINT",
+                       "RTC_nINTA",
+                       "USB1_SS_SEL",
+                       "USB2_PWR_EN",
+                       "SPI_EXP_SEL",
+                       "P0_7",
+                       "W2_HOST_WAKE_SD_3V3",
+                       "W2_HOST_WAKE_BT_3V3",
+                       "EXP_WIFI_BT_PDN_3V3",
+                       "EXP_BT_RST_3V3",
+                       "W2_RST_IND_3V3",
+                       "SPI_nINT_3V3",
+                       "KEYM_PCIE_nWAKE",
+                       "P1_7";
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+&snvs_pwrkey {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       assigned-clocks = <&clk IMX8MP_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usdhc3 {
+       assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
+       assigned-clock-rates = <400000000>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c2
+                       MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c2
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c2
+                       MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c2
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL 0x400001c2
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA 0x400001c2
+               >;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03     0x000001c0
+               >;
+       };
+
+       pinctrl_pcal6416_0_int: pcal6416-0-int-grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16   0x146
+               >;
+       };
+
+       pinctrl_pcal6416_1_int: pcal6416-1-int-grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11     0x146
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX    0x140
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX    0x140
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX  0x140
+                       MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX  0x140
+                       MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS  0x140
+                       MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS 0x140
+               >;
+       };
+
+       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
+               >;
+       };
+};
index 825ad6a2ba14ec5530b9c317cf3d749a8b5022ac..fa7cb9759d01c7c6e7cadb2ec54755fb49af4989 100644 (file)
 };
 
 &i2c3 {
-       carrier_eeprom: eeprom@57{
+       carrier_eeprom: eeprom@57 {
                compatible = "st,24c02", "atmel,24c02";
                reg = <0x57>;
                pagesize = <16>;
index 1dcf249ca90d2b4d9720a55de39e3f8564780dc3..02889d691c017deb3d191fe912994e691ab22361 100644 (file)
@@ -34,7 +34,7 @@
        status = "okay";
 };
 
-&panel0_lvds {
+&panel_lvds0 {
        compatible = "edt,etml1010g3dra";
        status = "okay";
 };
diff --git a/src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtsi b/src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtsi
new file mode 100644 (file)
index 0000000..57bbbdd
--- /dev/null
@@ -0,0 +1,196 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (C) 2025 PHYTEC Messtechnik GmbH
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include "imx8mp-pinfunc.h"
+
+&{/} {
+
+       backlight_lvds1: backlight-lvds1 {
+               compatible = "pwm-backlight";
+               pinctrl-0 = <&pinctrl_lvds1>;
+               pinctrl-names = "default";
+               power-supply = <&reg_vcc_12v>;
+               status = "disabled";
+       };
+
+       panel_lvds1: panel-lvds1 {
+               backlight = <&backlight_lvds1>;
+               power-supply = <&reg_vdd_3v3>;
+               status = "disabled";
+
+               port {
+                       panel1_in: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch1>;
+                       };
+               };
+       };
+
+       reg_vcc_12v: regulator-12v {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <12000000>;
+               regulator-min-microvolt = <12000000>;
+               regulator-name = "VCC_12V";
+       };
+
+       reg_vcc_1v8_audio: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "VCC_1V8_Audio";
+       };
+
+       reg_vcc_3v3_analog: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VCC_3V3_Analog";
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "snd-peb-av-10";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,mclk-fs = <32>;
+               simple-audio-card,widgets =
+                       "Line", "Line In",
+                       "Speaker", "Speaker",
+                       "Microphone", "Microphone Jack",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "Speaker", "SPOP",
+                       "Speaker", "SPOM",
+                       "Headphone Jack", "HPLOUT",
+                       "Headphone Jack", "HPROUT",
+                       "LINE1L", "Line In",
+                       "LINE1R", "Line In",
+                       "MIC3R", "Microphone Jack",
+                       "Microphone Jack", "Mic Bias";
+
+               simple-audio-card,codec {
+                       sound-dai = <&codec>;
+               };
+
+               dailink_master: simple-audio-card,cpu {
+                       sound-dai = <&sai5>;
+               };
+       };
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_i2c5>;
+       pinctrl-1 = <&pinctrl_i2c5_gpio>;
+       pinctrl-names = "default", "gpio";
+       scl-gpios = <&gpio3 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       codec: audio-codec@18 {
+               compatible = "ti,tlv320aic3007";
+               reg = <0x18>;
+               pinctrl-0 = <&pinctrl_tlv320>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <0>;
+               ai3x-gpio-func = <0xd 0x0>;
+               ai3x-micbias-vg = <2>;
+               AVDD-supply = <&reg_vcc_3v3_analog>;
+               DRVDD-supply = <&reg_vcc_3v3_analog>;
+               DVDD-supply = <&reg_vcc_1v8_audio>;
+               IOVDD-supply = <&reg_vdd_3v3>;
+       };
+
+       eeprom@57 {
+               compatible = "atmel,24c32";
+               reg = <0x57>;
+               pagesize = <32>;
+               vcc-supply = <&reg_vdd_3v3>;
+       };
+};
+
+&ldb_lvds_ch1 {
+       remote-endpoint = <&panel1_in>;
+};
+
+&pwm2 {
+       pinctrl-0 = <&pinctrl_pwm2>;
+       pinctrl-names = "default";
+};
+
+&sai5 {
+       pinctrl-0 = <&pinctrl_sai5>;
+       pinctrl-names = "default";
+       assigned-clocks = <&clk IMX8MP_CLK_SAI5>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <12288000>;
+       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_IPG>,
+                <&clk IMX8MP_CLK_DUMMY>,
+                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>,
+                <&clk IMX8MP_CLK_DUMMY>,
+                <&clk IMX8MP_CLK_DUMMY>,
+                <&clk IMX8MP_AUDIO_PLL1_OUT>,
+                <&clk IMX8MP_AUDIO_PLL2_OUT>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k",
+                     "pll11k";
+       #sound-dai-cells = <0>;
+       fsl,sai-mclk-direction-output;
+       fsl,sai-synchronous-rx;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_i2c5: i2c5grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXD0__I2C5_SCL        0x400001c2
+                       MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA         0x400001c2
+               >;
+       };
+
+       pinctrl_i2c5_gpio: i2c5gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21      0x1e2
+                       MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04       0x1e2
+               >;
+       };
+
+       pinctrl_lvds1: lvds1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28      0x12
+               >;
+       };
+
+       pinctrl_pwm2: pwm2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO09__PWM2_OUT       0x12
+               >;
+       };
+
+       pinctrl_sai5: sai5grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI5_TX_DATA00 0xd6
+                       MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI5_RX_DATA00  0xd6
+                       MX8MP_IOMUXC_SAI5_MCLK__AUDIOMIX_SAI5_MCLK      0xd6
+                       MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI5_TX_SYNC   0xd6
+                       MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI5_TX_BCLK   0xd6
+               >;
+       };
+
+       pinctrl_tlv320: tlv320grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29       0x16
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtso b/src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtso
new file mode 100644 (file)
index 0000000..803a199
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (C) 2025 PHYTEC Messtechnik GmbH
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include "imx8mp-libra-rdk-fpsc-lvds-peb-av-10.dtsi"
diff --git a/src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-ph128800t006-zhc01.dtso b/src/arm64/freescale/imx8mp-libra-rdk-fpsc-lvds-ph128800t006-zhc01.dtso
new file mode 100644 (file)
index 0000000..418c853
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (C) 2025 PHYTEC Messtechnik GmbH
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/imx8mp-clock.h>
+
+/dts-v1/;
+/plugin/;
+
+&backlight_lvds0 {
+       brightness-levels = <0 8 16 32 64 128 255>;
+       default-brightness-level = <8>;
+       enable-gpios = <&gpio5 23 GPIO_ACTIVE_LOW>;
+       num-interpolated-steps = <2>;
+       pwms = <&pwm1 0 66667 0>;
+       status = "okay";
+};
+
+&lcdif2 {
+       status = "okay";
+};
+
+&lvds_bridge {
+       assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>, <&clk IMX8MP_VIDEO_PLL1>;
+       assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
+       /*
+        * The LVDS panel uses 66.5 MHz pixel clock, set IMX8MP_VIDEO_PLL1 to
+        * 66.5 * 7 = 465.5 MHz so the LDB serializer and LCDIFv3 scanout
+        * engine can reach accurate pixel clock of exactly 66.5 MHz.
+        */
+       assigned-clock-rates = <0>, <465500000>;
+       status = "okay";
+};
+
+&panel_lvds0 {
+       compatible = "powertip,ph128800t006-zhc01";
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
index 6f3a7b863dca1e0f2de174e0fbff80e953c58dc9..86b8c5af4153d15e6b61c0d4b3bc5026a290d9aa 100644 (file)
@@ -15,7 +15,7 @@
                     "phytec,imx8mp-phycore-fpsc", "fsl,imx8mp";
        model = "PHYTEC i.MX8MP Libra RDK FPSC";
 
-       backlight_lvds0: backlight0 {
+       backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
                pinctrl-0 = <&pinctrl_lvds0>;
                pinctrl-names = "default";
@@ -27,7 +27,7 @@
                stdout-path = &uart4;
        };
 
-       panel0_lvds: panel-lvds {
+       panel_lvds0: panel-lvds0 {
                /* compatible panel in overlay */
                backlight = <&backlight_lvds0>;
                power-supply = <&reg_vdd_3v3>;
        };
        pinctrl_rtc: rtcgrp {
                fsl,pins = <
-                       MX8MP_IOMUXC_UART2_TXD__GPIO5_IO25      0x1C0
+                       MX8MP_IOMUXC_UART2_TXD__GPIO5_IO25      0x1c0
                >;
        };
 };
diff --git a/src/arm64/freescale/imx8mp-phyboard-pollux-peb-wlbt-05.dtso b/src/arm64/freescale/imx8mp-phyboard-pollux-peb-wlbt-05.dtso
new file mode 100644 (file)
index 0000000..0e98f4d
--- /dev/null
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (C) 2025 PHYTEC Messtechnik GmbH
+ */
+
+#include <dt-bindings/clock/imx8mp-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx8mp-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       wlbt_clock: clock-32768 {
+               compatible = "fixed-clock";
+               clock-accuracy = <20000>;
+               clock-frequency = <32768>;
+               clock-output-names = "WIFIBT_SLOW_CLK";
+               #clock-cells = <0>;
+       };
+
+       usdhc1_pwrseq: pwr-seq {
+               compatible = "mmc-pwrseq-simple";
+               post-power-on-delay-ms = <250>;
+               reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&iomuxc {
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_RESET_B__UART3_DCE_RTS 0x140   /* RTS */
+                       MX8MP_IOMUXC_SD1_STROBE__UART3_DCE_CTS  0x140   /* CTS */
+                       MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX    0x140   /* RX */
+                       MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX    0x140   /* TX */
+               >;
+       };
+
+       pinctrl_bluetooth: bluetoothgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06      0x106   /* BT_DEV_WAKE_EXP */
+                       MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07      0x106   /* BT_REG_ON_EXP */
+                       MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09      0x106   /* BT_HOST_WAKE_EXP */
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK        0x190   /* SDIO_CLK */
+                       MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD        0x1d0   /* SDIO_CMD */
+                       MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0    0x1d0   /* SDIO_D0 */
+                       MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1    0x1d0   /* SDIO_D1 */
+                       MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2    0x1d0   /* SDIO_D2 */
+                       MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3    0x1d0   /* SDIO_D3 */
+               >;
+       };
+
+       pinctrl_wifi: wifigrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05  0x106   /* WL_REG_ON_EXP */
+               >;
+       };
+};
+
+&uart3 {
+       assigned-clocks = <&clk IMX8MP_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
+       pinctrl-0 = <&pinctrl_uart3>;
+       pinctrl-names = "default";
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               pinctrl-0 = <&pinctrl_bluetooth>;
+               pinctrl-names = "default";
+               clock-names = "lpo";
+               clocks = <&wlbt_clock>;
+               device-wakeup-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
+               max-speed = <3000000>;
+               shutdown-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+               vbat-supply = <&reg_vcc_3v3_sw>;
+               vddio-supply = <&reg_vcc_1v8_exp_con>;
+       };
+};
+
+&usdhc1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       max-frequency = <50000000>;
+       mmc-pwrseq = <&usdhc1_pwrseq>;
+       non-removable;
+       vmmc-supply = <&reg_vcc_3v3_sw>;
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm4329-fmac";
+               reg = <1>;
+               pinctrl-0 = <&pinctrl_wifi>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
+       };
+};
index 9687b4ded8f4c98fe68bcbeedcb5ea03434e27a3..0fe52c73fc8fa5ac5bb52eb2b532323fe511f52e 100644 (file)
@@ -31,6 +31,7 @@
                compatible = "gpio-fan";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_fan>;
+               fan-supply = <&reg_vcc_5v_sw>;
                gpio-fan,speed-map = <0     0
                                      13000 1>;
                gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>;
                regulator-max-microvolt = <3300000>;
        };
 
+       reg_vcc_1v8_exp_con: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "VCC_1V8_EXP_CON";
+       };
+
        thermal-zones {
                soc-thermal {
                        trips {
        };
 };
 
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       sda-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       scl-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
 &ldb_lvds_ch1 {
        remote-endpoint = <&panel1_in>;
 };
                >;
        };
 
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL         0x400001c2
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA         0x400001c2
+               >;
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18       0x1e2
+                       MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19       0x1e2
+               >;
+       };
+
        pinctrl_lvds1: lvds1grp {
                fsl,pins = <
                        MX8MP_IOMUXC_SD2_WP__GPIO2_IO20         0x12
 
        pinctrl_rtc: rtcgrp {
                fsl,pins = <
-                       MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19      0x1C0
+                       MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19      0x1c0
                >;
        };
 
index 88831c0fbb7be3db18910385e4e15691b1c74ef2..63adb1c4b3ebc9e1f588e8c7c00acf92f5a04e94 100644 (file)
                regulator-min-microvolt = <3300000>;
                regulator-name = "VDD_IO";
        };
+
+       reg_vdd_1v8: regulator-vdd-1v8 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "VDD_1V8";
+       };
 };
 
 &A53_0 {
@@ -83,6 +90,7 @@
                spi-max-frequency = <80000000>;
                spi-rx-bus-width = <4>;
                spi-tx-bus-width = <1>;
+               vcc-supply = <&reg_vdd_1v8>;
        };
 };
 
index 4e6629f940bfade5d4da5bc4fc844c9a6ca2e98c..3cdb0bc0ab721709fc892931ea00a538ec6216ff 100644 (file)
                                nxp,dvs-standby-voltage = <850000>;
                        };
 
-                       buck4: BUCK4{
+                       buck4: BUCK4 {
                                regulator-name = "BUCK4";
                                regulator-min-microvolt = <600000>;
                                regulator-max-microvolt = <3400000>;
                                regulator-always-on;
                        };
 
-                       buck5: BUCK5{
+                       buck5: BUCK5 {
                                regulator-name = "BUCK5";
                                regulator-min-microvolt = <600000>;
                                regulator-max-microvolt = <3400000>;
                };
        };
 
-       som_eeprom: eeprom@50{
+       som_eeprom: eeprom@50 {
                compatible = "st,24c01", "atmel,24c01";
                reg = <0x50>;
                pagesize = <16>;
index 6f9dcd3a75c8d6114b8bd3cc99412ff32df1d460..b31de307093c821cf77c36c6cb4be1806134577a 100644 (file)
        pinctrl-0 = <&pinctrl_gpio4>, <&pinctrl_gpio6>;
 };
 
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
index bebe19eb360f88926d59843169c15a21eb50e11a..0348da385f23992e50eec5cd1bf84d566440ca60 100644 (file)
        };
 
        pinctrl_mcu_int: mcuintgrp {
-               fsl,pins = <MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08        0x1C0>; /* MCU_INT# */
+               fsl,pins = <MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08        0x1c0>; /* MCU_INT# */
        };
 
        /* SMARC LCD1_BKLT_PWM */
 
        /* SMARC SLEEP# */
        pinctrl_sleep: sleepgrp {
-               fsl,pins = <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x1C0>; /* SMARC S149 - SLEEP# */
+               fsl,pins = <MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01 0x1c0>; /* SMARC S149 - SLEEP# */
        };
 
        /* SMARC SMB_ALERT# */
        pinctrl_smb_alert: smbalertgrp {
-               fsl,pins = <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16       0x1C0>; /* SMARC P1 - SMB_ALERT# */
+               fsl,pins = <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16       0x1c0>; /* SMARC P1 - SMB_ALERT# */
        };
 
        /* TPM_CS# */
index f7346b3d35fe5396eac355fc8b5bc1c0318efb98..b7f69c92b7748fa67c94a120b17ac6783470a36f 100644 (file)
                        compatible = "shared-dma-pool";
                        reusable;
                        size = <0 0x38000000>;
-                       alloc-ranges = <0 0x40000000 0 0xB0000000>;
+                       alloc-ranges = <0 0x40000000 0 0xb0000000>;
                        linux,cma-default;
                };
        };
                        "Headphone Jack", "HPL",
                        "Headphone Jack", "HPR";
        };
+
+       sound-hdmi {
+               compatible = "fsl,imx-audio-hdmi";
+               model = "audio-hdmi";
+               audio-cpu = <&aud2htx>;
+               hdmi-out;
+       };
+};
+
+&aud2htx {
+       status = "okay";
 };
 
 &ecspi3 {
                        reset-deassert-us = <50000>;
                        enet-phy-lane-no-swap;
                        interrupt-parent = <&gpio4>;
-                       interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+                       interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
                        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>;
                        reset-deassert-us = <50000>;
                        enet-phy-lane-no-swap;
                        interrupt-parent = <&gpio4>;
-                       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+                       interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
                        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>;
        status = "disabled";
 };
 
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
                fsl,pins = <MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL 0x400001c2>,
                           <MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA 0x400001c2>,
                           <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD     0x40000010>,
-                          <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC     0x40000154>;
+                          <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC     0x40000030>;
        };
 
        pinctrl_gpt1: gpt1grp {
index 59642a8a2c445d41d791807cd9547422b2388cde..ad49bf85a04d39e32322c13c2b6ef57e82f79d40 100644 (file)
@@ -1,7 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2021-2022 TQ-Systems GmbH
- * Author: Alexander Stein <alexander.stein@tq-group.com>
+ * Copyright 2021-2025 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Alexander Stein
  */
 
 /dts-v1/;
                        compatible = "shared-dma-pool";
                        reusable;
                        size = <0 0x38000000>;
-                       alloc-ranges = <0 0x40000000 0 0xB0000000>;
+                       alloc-ranges = <0 0x40000000 0 0xb0000000>;
                        linux,cma-default;
                };
        };
                        "Line Out Jack", "LOR";
        };
 
+       sound-hdmi {
+               compatible = "fsl,imx-audio-hdmi";
+               model = "audio-hdmi";
+               audio-cpu = <&aud2htx>;
+               hdmi-out;
+       };
+
        thermal-zones {
                soc-thermal {
                        trips {
        };
 };
 
+&aud2htx {
+       status = "okay";
+};
+
 &ecspi1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi1>;
                        reset-deassert-us = <50000>;
                        enet-phy-lane-no-swap;
                        interrupt-parent = <&gpio4>;
-                       interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+                       interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
                };
        };
 };
                        reset-deassert-us = <50000>;
                        enet-phy-lane-no-swap;
                        interrupt-parent = <&gpio4>;
-                       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+                       interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
                };
        };
 };
                          "", "", "", "";
 };
 
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
                           <MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2                   0x12>,
                           <MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3                   0x12>,
                           <MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL             0x12>,
-                          <MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK   0x14>;
+                          <MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK   0x14>,
+                          <MX8MP_IOMUXC_SAI2_RXD0__ENET_QOS_1588_EVENT2_OUT            0x16>;
        };
 
        pinctrl_eqos_event: eqosevtgrp {
                fsl,pins = <MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL 0x400001c2>,
                           <MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA 0x400001c2>,
                           <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD     0x40000010>,
-                          <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC     0x40000010>;
+                          <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC     0x40000030>;
        };
 
        pinctrl_hoggpio2: hoggpio2grp {
index 36d3eb8652023446f7eb7d37aece6c3cd3560571..291f65e36865bd321972bcea7205493d54847d5a 100644 (file)
@@ -8,4 +8,149 @@
 / {
        model = "Variscite VAR-SOM-MX8M-PLUS on Symphony-Board";
        compatible = "variscite,var-som-mx8mp-symphony", "variscite,var-som-mx8mp", "fsl,imx8mp";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&pca9534 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+
+       reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
+               compatible = "regulator-gpio";
+               regulator-name = "VSD_VSEL";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
+               states = <3300000 0x0 1800000 0x1>;
+               vin-supply = <&ldo5>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+
+       /* GPIO expander */
+       pca9534: gpio@20 {
+               compatible = "nxp,pca9534";
+               reg = <0x20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pca9534>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
+               wakeup-source;
+
+               usb3-sata-sel-hog {
+                       gpio-hog;
+                       gpios = <4 0>;
+                       output-low;
+                       line-name = "usb3_sata_sel";
+               };
+       };
+};
+
+/* Console */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+/* SD-card */
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       vqmmc-supply = <&reg_usdhc2_vqmmc>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                                 0x400001c2
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                                 0x400001c2
+               >;
+       };
+
+       pinctrl_pca9534: pca9534grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15                             0xc0
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                            0x40
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                            0x40
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14                             0x1c4
+                       MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22                               0x10
+                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                               0xc0
+               >;
+       };
+
+       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
+               >;
+       };
 };
index 29f080904482c53c0d04321d53135b51e7fc24c5..49467b48d0b0bde9f729251f2e2133341af1e620 100644 (file)
 / {
        model = "Variscite VAR-SOM-MX8M Plus module";
 
-       chosen {
-               stdout-path = &uart2;
-       };
-
-       gpio-leds {
-               compatible = "gpio-leds";
-
-               led-0 {
-                       function = LED_FUNCTION_POWER;
-                       gpios = <&pca9534 0 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "heartbeat";
-               };
-       };
-
        memory@40000000 {
                device_type = "memory";
                reg = <0x0 0x40000000 0 0xc0000000>,
                      <0x1 0x00000000 0 0xc0000000>;
        };
 
-       reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
-               compatible = "regulator-fixed";
-               regulator-name = "VSD_3V3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               startup-delay-us = <100>;
-               off-on-delay-us = <12000>;
+       iw61x_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               post-power-on-delay-ms = <100>;
+               power-off-delay-us = <10000>;
+               reset-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>, /* WIFI_RESET */
+                             <&gpio2 19 GPIO_ACTIVE_LOW>; /* WIFI_PWR_EN */
        };
 
-       reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
-               compatible = "regulator-gpio";
-               regulator-name = "VSD_VSEL";
-               regulator-min-microvolt = <1800000>;
+       reg_audio_supply: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "wm8904-supply";
+               regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
-               gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
-               states = <3300000 0x0 1800000 0x1>;
-               vin-supply = <&ldo5>;
+               regulator-always-on;
        };
 
        reg_phy_supply: regulator-phy-supply {
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
        };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,bitclock-master = <&codec_dai>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&codec_dai>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,name = "wm8904-audio";
+               simple-audio-card,routing =
+                       "Headphone Jack", "HPOUTL",
+                       "Headphone Jack", "HPOUTR",
+                       "IN2L", "Line In Jack",
+                       "IN2R", "Line In Jack",
+                       "IN1L", "Microphone Jack",
+                       "IN1R", "Microphone Jack";
+               simple-audio-card,widgets =
+                       "Microphone", "Microphone Jack",
+                       "Headphone", "Headphone Jack",
+                       "Line", "Line In Jack";
+
+               codec_dai: simple-audio-card,codec {
+                       sound-dai = <&wm8904>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai3>;
+               };
+       };
 };
 
 &A53_0 {
        cpu-supply = <&buck2>;
 };
 
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       cs-gpios = <&gpio5 17 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       /* Resistive touch controller */
+       tsc2046: touchscreen@0 {
+               compatible = "ti,tsc2046";
+               reg = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_restouch>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+               spi-max-frequency = <1500000>;
+               pendown-gpio = <&gpio1 12 GPIO_ACTIVE_LOW>;
+               ti,x-min = /bits/ 16 <125>;
+               ti,x-max = /bits/ 16 <4008>;
+               ti,y-min = /bits/ 16 <282>;
+               ti,y-max = /bits/ 16 <3864>;
+               ti,x-plate-ohms = /bits/ 16 <180>;
+               ti,pressure-max = /bits/ 16 <255>;
+               ti,debounce-max = /bits/ 16 <10>;
+               ti,debounce-tol = /bits/ 16 <3>;
+               ti,debounce-rep = /bits/ 16 <1>;
+               ti,settle-delay-usec = /bits/ 16 <150>;
+               ti,keep-vref-on;
+               wakeup-source;
+       };
+};
+
 &eqos {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
                        };
                };
        };
-};
 
-&i2c3 {
-        clock-frequency = <400000>;
-        pinctrl-names = "default";
-        pinctrl-0 = <&pinctrl_i2c3>;
-        status = "okay";
-
-       /* GPIO expander */
-       pca9534: gpio@20 {
-               compatible = "nxp,pca9534";
-               reg = <0x20>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_pca9534>;
-               gpio-controller;
-               #gpio-cells = <2>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
-               wakeup-source;
-
-               usb3-sata-sel-hog {
-                       gpio-hog;
-                       gpios = <4 0>;
-                       output-low;
-                       line-name = "usb3_sata_sel";
-               };
+       wm8904: audio-codec@1a {
+               compatible = "wlf,wm8904";
+               reg = <0x1a>;
+               #sound-dai-cells = <0>;
+               clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>;
+               clock-names = "mclk";
+               AVDD-supply = <&reg_audio_supply>;
+               CPVDD-supply = <&reg_audio_supply>;
+               DBVDD-supply = <&reg_audio_supply>;
+               DCVDD-supply = <&reg_audio_supply>;
+               MICVDD-supply = <&reg_audio_supply>;
+               wlf,drc-cfg-names = "default", "peaklimiter", "tradition",
+                                   "soft", "music";
+               /*
+                * Config registers per name, respectively:
+                * KNEE_IP = 0,   KNEE_OP = 0,     HI_COMP = 1,   LO_COMP = 1
+                * KNEE_IP = -24, KNEE_OP = -6,    HI_COMP = 1/4, LO_COMP = 1
+                * KNEE_IP = -42, KNEE_OP = -3,    HI_COMP = 0,   LO_COMP = 1
+                * KNEE_IP = -45, KNEE_OP = -9,    HI_COMP = 1/8, LO_COMP = 1
+                * KNEE_IP = -30, KNEE_OP = -10.5, HI_COMP = 1/4, LO_COMP = 1
+                */
+               wlf,drc-cfg-regs = /bits/ 16 <0x01af 0x3248 0x0000 0x0000>,
+                                  /bits/ 16 <0x04af 0x324b 0x0010 0x0408>,
+                                  /bits/ 16 <0x04af 0x324b 0x0028 0x0704>,
+                                  /bits/ 16 <0x04af 0x324b 0x0018 0x078c>,
+                                  /bits/ 16 <0x04af 0x324b 0x0010 0x050e>;
+               /* GPIO1 = DMIC_CLK, don't touch others */
+               wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>;
        };
 };
 
-/* Console */
-&uart2 {
-        pinctrl-names = "default";
-        pinctrl-0 = <&pinctrl_uart2>;
-        status = "okay";
+&sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3>;
+       assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <11536000>;
+       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_IPG>,
+               <&clk IMX8MP_CLK_DUMMY>,
+               <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI3_MCLK1>,
+               <&clk IMX8MP_CLK_DUMMY>,
+               <&clk IMX8MP_CLK_DUMMY>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+       fsl,sai-mclk-direction-output;
+       status = "okay";
 };
 
-/* SD-card */
-&usdhc2 {
-        pinctrl-names = "default", "state_100mhz", "state_200mhz";
-        pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-        pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
-        pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
-        cd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
-        vmmc-supply = <&reg_usdhc2_vmmc>;
-       vqmmc-supply = <&reg_usdhc2_vqmmc>;
-        bus-width = <4>;
-        status = "okay";
+/* BT */
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_bluetooth>;
+       assigned-clocks = <&clk IMX8MP_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
+/* WIFI */
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_wifi>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_wifi>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_wifi>;
+       bus-width = <4>;
+       non-removable;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&iw61x_pwrseq>;
+       status = "okay";
 };
 
 /* eMMC */
 
 &iomuxc {
 
+       pinctrl_bluetooth: bluetoothgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09                              0xc0
+                       MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04                             0xc0
+                       MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10                            0xc0
+               >;
+       };
+
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C1_SCL__ECSPI1_SCLK                              0x12
+                       MX8MP_IOMUXC_I2C1_SDA__ECSPI1_MOSI                              0x12
+                       MX8MP_IOMUXC_I2C2_SCL__ECSPI1_MISO                              0x12
+                       MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17                               0x12
+               >;
+       };
+
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                             0x2
                >;
        };
 
-       pinctrl_i2c3: i2c3grp {
-               fsl,pins = <
-                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                                 0x400001c2
-                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                                 0x400001c2
-               >;
-       };
-
-       pinctrl_pca9534: pca9534grp {
-               fsl,pins = <
-                       MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15                             0xc0
-               >;
-       };
-
        pinctrl_pmic: pmicgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04                               0x1c0
                >;
        };
 
-       pinctrl_uart2: uart2grp {
-               fsl,pins = <
-                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                            0x40
-                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                            0x40
+       pinctrl_restouch: restouchgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12                             0xc0
                >;
        };
 
-       pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
-               fsl,pins = <
-                       MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14                             0x1c4
-                       MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22                               0x10
-                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                               0xc0
-               >;
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC                   0xd6
+                       MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK                    0xd6
+                       MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00                  0xd6
+                       MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00                  0xd6
+                       MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK                      0xd6
+                       MX8MP_IOMUXC_SAI3_RXFS__AUDIOMIX_SAI3_RX_SYNC                   0xd6
+                       MX8MP_IOMUXC_SAI3_RXC__AUDIOMIX_SAI3_RX_BCLK                    0xd6
+               >;
        };
 
-       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_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX                          0x140
+                       MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX                          0x140
+                       MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS                         0x140
+                       MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS                          0x140
+               >;
        };
 
-       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_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK                                0x190
+                       MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD                                0x1d0
+                       MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0                            0x1d0
+                       MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1                            0x1d0
+                       MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2                            0x1d0
+                       MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3                            0x1d0
+               >;
        };
 
-       pinctrl_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_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK                                0x194
+                       MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD                                0x1d4
+                       MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0                            0x1d4
+                       MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1                            0x1d4
+                       MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2                            0x1d4
+                       MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3                            0x1d4
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK                                0x196
+                       MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD                                0x1d6
+                       MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0                            0x1d6
+                       MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1                            0x1d6
+                       MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2                            0x1d6
+                       MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3                            0x1d6
+               >;
        };
 
        pinctrl_usdhc3: usdhc3grp {
                        MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B                           0xc6
                >;
        };
+
+       pinctrl_wifi: wifigrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08                              0xc0
+                       MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19                            0xc0
+               >;
+       };
 };
index 4bf818873fe3c5275e6383a84b515e8599637589..9317e62304e30d9387bc6664216288efbe27e80a 100644 (file)
                interrupt-parent = <&gpio4>;
                interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
        };
+
+       magnetometer@1e {
+               compatible = "st,lis2mdl";
+               reg = <0x1e>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_mag>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+       };
 };
 
 &pcie_phy {
                >;
        };
 
+       pinctrl_mag: maggrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25       0x150   /* IRQ */
+               >;
+       };
+
        pinctrl_gpio_leds: gpioledgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01       0x6     /* LEDG */
index 1493319aa748d0504fc8110cca28161b0428edc0..0e218e6b8e291c6cb9010a692a6147ee7afd4dc8 100644 (file)
 };
 
 /* Verdin HDMI_1 */
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
index a38e7c947a421cac689c14661530ced445697d47..72a4f846d694494a18ad26fd46922aaa876198de 100644 (file)
 };
 
 /* Verdin HDMI_1 */
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
index 11cf3bdc95c4ee276d0f29faf2476c6033e3850e..846b367068213d92b5b21953d91cf4601a1aba33 100644 (file)
 };
 
 /* Verdin HDMI_1 */
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
index cc389cda2af2ebf72a0c4f833115da3cfb8cb2a6..f3d28e23ba6c67bcae679ed14f31f84f837b4b8d 100644 (file)
 };
 
 /* Verdin HDMI_1 */
+&hdmi_pai {
+       status = "okay";
+};
+
 &hdmi_pvi {
        status = "okay";
 };
index d43ba008712693fea458b8e0622965521a5cb83a..d31f8082394fd3ab995ad25c230d8f62fc247c28 100644 (file)
        #pwm-cells = <3>;
 };
 
-/* TODO: Verdin I2S_1 */
-
-/* TODO: Verdin I2S_2 */
-
 &snvs_pwrkey {
        status = "okay";
 };
index d9f203c795197a8d02e6bfa831df6eacdefdc4b3..aadaeef928bd978b4790c46ebaf276377a01e191 100644 (file)
 
        pinctrl_hpdet: hpdetgrp {
                fsl,pins = <
-                       MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20        0xC0   /* HP_DET */
+                       MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20        0xc0   /* HP_DET */
                >;
        };
 
index 077c5cd2586f755fe09b989200917b0a571f1b5b..4533a84fb0b95f589ed64d83dc1fcde65d6ecd5b 100644 (file)
@@ -7,7 +7,7 @@
 
 &a53_opp_table {
        opp-1000000000 {
-               opp-microvolt = <950000>;
+               opp-microvolt = <1000000>;
        };
 };
 
index 9e0e2d7271efbe0c9f2713ad9a05a6d0d7db5edc..f5d529c5baf3e6848372d9b712acf3664dd2206e 100644 (file)
        compatible = "purism,librem5", "fsl,imx8mq";
        chassis-type = "handset";
 
+       aliases {
+               rtc0 = &rtc;
+               rtc1 = &snvs_rtc;
+       };
+
        backlight_dsi: backlight-dsi {
                compatible = "led-backlight";
                leds = <&led_backlight>;
 
        vibrator {
                compatible = "pwm-vibrator";
-               pwms = <&pwm1 0 1000000000 0>;
+               pwms = <&pwm1 0 50000 0>;
                pwm-names = "enable";
                vcc-supply = <&reg_vdd_3v3>;
        };
                >;
        };
 
+       pinctrl_i2c1_gpio: i2c1-gpiogrp {
+               fsl,pins = <
+                       MX8MQ_IOMUXC_I2C1_SCL_GPIO5_IO14        0x26
+                       MX8MQ_IOMUXC_I2C1_SDA_GPIO5_IO15        0x26
+               >;
+       };
+
        pinctrl_i2c2: i2c2grp {
                fsl,pins = <
                        MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL          0x40000026
                >;
        };
 
+       pinctrl_i2c2_gpio: i2c2-gpiogrp {
+               fsl,pins = <
+                       MX8MQ_IOMUXC_I2C2_SCL_GPIO5_IO16        0x26
+                       MX8MQ_IOMUXC_I2C2_SDA_GPIO5_IO17        0x26
+               >;
+       };
+
        pinctrl_i2c3: i2c3grp {
                fsl,pins = <
                        MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL          0x40000026
                >;
        };
 
+       pinctrl_i2c3_gpio: i2c3-gpiogrp {
+               fsl,pins = <
+                       MX8MQ_IOMUXC_I2C3_SCL_GPIO5_IO18        0x26
+                       MX8MQ_IOMUXC_I2C3_SDA_GPIO5_IO19        0x26
+               >;
+       };
+
        pinctrl_i2c4: i2c4grp {
                fsl,pins = <
                        MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL          0x40000026
                >;
        };
 
+       pinctrl_i2c4_gpio: i2c4-gpiogrp {
+               fsl,pins = <
+                       MX8MQ_IOMUXC_I2C4_SCL_GPIO5_IO20        0x26
+                       MX8MQ_IOMUXC_I2C4_SDA_GPIO5_IO21        0x26
+               >;
+       };
+
        pinctrl_keys: keysgrp {
                fsl,pins = <
                        /* VOL- */
-                       MX8MQ_IOMUXC_ENET_MDIO_GPIO1_IO17       0x01C0
+                       MX8MQ_IOMUXC_ENET_MDIO_GPIO1_IO17       0x01c0
                        /* VOL+ */
-                       MX8MQ_IOMUXC_ENET_MDC_GPIO1_IO16        0x01C0
+                       MX8MQ_IOMUXC_ENET_MDC_GPIO1_IO16        0x01c0
                >;
        };
 
        pinctrl_tcpc: tcpcgrp {
                fsl,pins = <
                        /* TCPC_INT */
-                       MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10      0x01C0
+                       MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10      0x01c0
                >;
        };
 
 
 &i2c1 {
        clock-frequency = <384000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
 
        typec_pd: usb-pd@3f {
                                regulator-max-microvolt = <1300000>;
                                regulator-boot-on;
                                regulator-ramp-delay = <1250>;
-                               rohm,dvs-run-voltage = <880000>;
-                               rohm,dvs-idle-voltage = <820000>;
-                               rohm,dvs-suspend-voltage = <810000>;
+                               rohm,dvs-run-voltage = <900000>;
+                               rohm,dvs-idle-voltage = <850000>;
+                               rohm,dvs-suspend-voltage = <850000>;
                                regulator-always-on;
                        };
 
                                regulator-max-microvolt = <1300000>;
                                regulator-boot-on;
                                regulator-ramp-delay = <1250>;
-                               rohm,dvs-run-voltage = <950000>;
-                               rohm,dvs-idle-voltage = <850000>;
+                               rohm,dvs-run-voltage = <1000000>;
+                               rohm,dvs-idle-voltage = <900000>;
                                regulator-always-on;
                        };
 
                                regulator-min-microvolt = <700000>;
                                regulator-max-microvolt = <1300000>;
                                regulator-boot-on;
-                               rohm,dvs-run-voltage = <850000>;
+                               rohm,dvs-run-voltage = <900000>;
                        };
 
                        buck4_reg: BUCK4 {
                                regulator-name = "buck4";
                                regulator-min-microvolt = <700000>;
                                regulator-max-microvolt = <1300000>;
-                               rohm,dvs-run-voltage = <930000>;
+                               rohm,dvs-run-voltage = <1000000>;
                        };
 
                        buck5_reg: BUCK5 {
                };
        };
 
-       rtc@68 {
+       rtc: rtc@68 {
                compatible = "microcrystal,rv4162";
                reg = <0x68>;
                pinctrl-names = "default";
 
 &i2c2 {
        clock-frequency = <384000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
 
        magnetometer: magnetometer@1e   {
 
 &i2c3 {
        clock-frequency = <384000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
 
        codec: audio-codec@1a {
                assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
                assigned-clock-rates = <24576000>;
                #sound-dai-cells = <0>;
-               mic-cfg = <0x200>;
                DCVDD-supply = <&reg_aud_1v8>;
                DBVDD-supply = <&reg_aud_1v8>;
                AVDD-supply = <&reg_aud_1v8>;
 
 &i2c4 {
        clock-frequency = <384000>;
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_gpio>;
+       scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
 
        vcm@c {
        status = "okay";
 };
 
-&snvs_rtc {
-       status = "disabled";
-};
-
 &uart1 { /* console */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
 
 &usdhc2 {
        assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
-       assigned-clock-rates = <200000000>;
+       assigned-clock-rates = <50000000>;
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc2>;
        pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
        mmc-pwrseq = <&usdhc2_pwrseq>;
        post-power-on-delay-ms = <20>;
        cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
-       max-frequency = <100000000>;
+       max-frequency = <50000000>;
        disable-wp;
        cap-sdio-irq;
+       cap-power-off-card;
        keep-power-in-suspend;
        wakeup-source;
        status = "okay";
        fsl,ext-reset-output;
        status = "okay";
 };
-
-&a53_opp_table {
-       opp-1000000000 {
-               opp-microvolt = <850000>;
-       };
-
-       opp-1500000000 {
-               opp-microvolt = <950000>;
-       };
-};
index 607962f807bebe52d55976019a210738fa6bb339..6a25e219832cedaaaf1b89acd3eb6f35a2698bf2 100644 (file)
                                                 <&clk IMX8MQ_GPU_PLL_OUT>,
                                                 <&clk IMX8MQ_GPU_PLL>;
                        assigned-clock-rates = <800000000>, <800000000>,
-                                              <800000000>, <800000000>, <0>;
+                                              <800000000>, <400000000>, <0>;
                        power-domains = <&pgc_gpu>;
                };
 
index f1b0563d3a09044dda30627a62de5707b53f021a..dadc136aec6e62d23567297dc3bfc733e65cdbbc 100644 (file)
 
        pinctrl_mipi_csi0: mipi-csi0grp {
                fsl,pins = <
-                       IMX8QM_MIPI_CSI0_GPIO0_00_LSIO_GPIO1_IO27               0xC0000041
-                       IMX8QM_MIPI_CSI0_GPIO0_01_LSIO_GPIO1_IO28               0xC0000041
-                       IMX8QM_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT        0xC0000041
+                       IMX8QM_MIPI_CSI0_GPIO0_00_LSIO_GPIO1_IO27               0xc0000041
+                       IMX8QM_MIPI_CSI0_GPIO0_01_LSIO_GPIO1_IO28               0xc0000041
+                       IMX8QM_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT        0xc0000041
                >;
        };
 
        pinctrl_mipi_csi1: mipi-csi1grp {
                fsl,pins = <
-                       IMX8QM_MIPI_CSI1_GPIO0_00_LSIO_GPIO1_IO30               0xC0000041
-                       IMX8QM_MIPI_CSI1_GPIO0_01_LSIO_GPIO1_IO31               0xC0000041
-                       IMX8QM_MIPI_CSI1_MCLK_OUT_MIPI_CSI1_ACM_MCLK_OUT        0xC0000041
+                       IMX8QM_MIPI_CSI1_GPIO0_00_LSIO_GPIO1_IO30               0xc0000041
+                       IMX8QM_MIPI_CSI1_GPIO0_01_LSIO_GPIO1_IO31               0xc0000041
+                       IMX8QM_MIPI_CSI1_MCLK_OUT_MIPI_CSI1_ACM_MCLK_OUT        0xc0000041
                >;
        };
 
diff --git a/src/arm64/freescale/imx8qm-ss-ddr.dtsi b/src/arm64/freescale/imx8qm-ss-ddr.dtsi
new file mode 100644 (file)
index 0000000..c831567
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2025 NXP
+ *     Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+&ddr_pmu0 {
+       compatible = "fsl,imx8qm-ddr-pmu", "fsl,imx8-ddr-pmu";
+       interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&ddr_subsys {
+       ddr_pmu1: ddr-pmu@5c120000 {
+               compatible = "fsl,imx8qm-ddr-pmu", "fsl,imx8-ddr-pmu";
+               reg = <0x5c120000 0x10000>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+       };
+};
index cb66853b1cd3f3764933438597733f23a99907c1..ae7de9f99055334df3bcb00df60b72eced32caff 100644 (file)
@@ -38,7 +38,7 @@
                #size-cells = <0>;
 
                cpu-map {
-                       cluster0 {
+                       cluster0: cluster0 {
                                core0 {
                                        cpu = <&A53_0>;
                                };
@@ -53,7 +53,7 @@
                                };
                        };
 
-                       cluster1 {
+                       cluster1: cluster1 {
                                core0 {
                                        cpu = <&A72_0>;
                                };
                        reg = <0x0 0x100>;
                        clocks = <&clk IMX_SC_R_A72 IMX_SC_PM_CLK_CPU>;
                        enable-method = "psci";
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
        gic: interrupt-controller@51a00000 {
                compatible = "arm,gic-v3";
                reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
-                     <0x0 0x51b00000 0 0xC0000>, /* GICR */
+                     <0x0 0x51b00000 0 0xc0000>, /* GICR */
                      <0x0 0x52000000 0 0x2000>,  /* GICC */
                      <0x0 0x52010000 0 0x1000>,  /* GICH */
                      <0x0 0x52020000 0 0x20000>; /* GICV */
        #include "imx8-ss-img.dtsi"
        #include "imx8-ss-dma.dtsi"
        #include "imx8-ss-conn.dtsi"
+       #include "imx8-ss-ddr.dtsi"
        #include "imx8-ss-lsio.dtsi"
        #include "imx8-ss-hsio.dtsi"
 };
 #include "imx8qm-ss-lvds.dtsi"
 #include "imx8qm-ss-mipi.dtsi"
 #include "imx8qm-ss-hsio.dtsi"
+#include "imx8qm-ss-ddr.dtsi"
 
 /delete-node/ &dsp;
diff --git a/src/arm64/freescale/imx8qp-apalis-v1.1-eval-v1.2.dts b/src/arm64/freescale/imx8qp-apalis-v1.1-eval-v1.2.dts
new file mode 100644 (file)
index 0000000..b5318de
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qp-apalis-v1.1.dtsi"
+#include "imx8-apalis-eval-v1.2.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QP V1.1 on Apalis Evaluation Board V1.2";
+       compatible = "toradex,apalis-imx8-v1.1-eval-v1.2",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qp";
+};
+
+/* Apalis MMC1 */
+&usdhc2 {
+       /delete-property/ no-1-8-v;
+};
+
+/* Apalis SD1 */
+&usdhc3 {
+       /delete-property/ no-1-8-v;
+};
diff --git a/src/arm64/freescale/imx8qp-apalis-v1.1-eval.dts b/src/arm64/freescale/imx8qp-apalis-v1.1-eval.dts
new file mode 100644 (file)
index 0000000..d558cff
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qp-apalis-v1.1.dtsi"
+#include "imx8-apalis-eval-v1.1.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QP V1.1 on Apalis Evaluation Board";
+       compatible = "toradex,apalis-imx8-v1.1-eval",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qp";
+};
diff --git a/src/arm64/freescale/imx8qp-apalis-v1.1-ixora-v1.1.dts b/src/arm64/freescale/imx8qp-apalis-v1.1-ixora-v1.1.dts
new file mode 100644 (file)
index 0000000..a73a632
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qp-apalis-v1.1.dtsi"
+#include "imx8-apalis-ixora-v1.1.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QP V1.1 on Apalis Ixora V1.1 Carrier Board";
+       compatible = "toradex,apalis-imx8-v1.1-ixora-v1.1",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qp";
+};
diff --git a/src/arm64/freescale/imx8qp-apalis-v1.1-ixora-v1.2.dts b/src/arm64/freescale/imx8qp-apalis-v1.1-ixora-v1.2.dts
new file mode 100644 (file)
index 0000000..71568d7
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8qp-apalis-v1.1.dtsi"
+#include "imx8-apalis-ixora-v1.2.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX8QP V1.1 on Apalis Ixora V1.2 Carrier Board";
+       compatible = "toradex,apalis-imx8-v1.1-ixora-v1.2",
+                    "toradex,apalis-imx8-v1.1",
+                    "fsl,imx8qp";
+};
diff --git a/src/arm64/freescale/imx8qp-apalis-v1.1.dtsi b/src/arm64/freescale/imx8qp-apalis-v1.1.dtsi
new file mode 100644 (file)
index 0000000..1e53115
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+#include "imx8qp.dtsi"
+#include "imx8-apalis-v1.1.dtsi"
+
+&cooling_maps_map0 {
+       cooling-device =
+               <&A53_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+               <&A53_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+               <&A53_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+               <&A53_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+               <&A72_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+};
diff --git a/src/arm64/freescale/imx8qp.dtsi b/src/arm64/freescale/imx8qp.dtsi
new file mode 100644 (file)
index 0000000..26af9c5
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
+
+#include "imx8qm.dtsi"
+
+/delete-node/ &A72_1;
+
+&cluster1 {
+       /delete-node/ core1;
+};
+
+&gpu_3d0 {
+       assigned-clock-rates = <625000000>, <625000000>;
+};
+
+&thermal_zones {
+       cpu1-thermal {
+               cooling-maps {
+                       map0 {
+                               cooling-device =
+                                       <&A72_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                       };
+               };
+       };
+};
index 523f48896b6b8e57c4c8eeaeb13716225d16dde6..40a0bc9f4e8485ba5c9d57245a8ea2e0a625d602 100644 (file)
                        #size-cells = <0>;
                        reg = <2>;
 
+                       accelerometer@1e {
+                               compatible = "nxp,fxos8700";
+                               reg = <0x1e>;
+                       };
+
+                       gyroscope@21 {
+                               compatible = "nxp,fxas21002c";
+                               reg = <0x21>;
+                       };
+
                        pressure-sensor@60 {
                                compatible = "fsl,mpl3115";
                                reg = <0x60>;
                                vdd-supply = <&reg_3v3>;
                                vddio-supply = <&reg_3v3>;
                        };
+
+                       /* Ref SCH-54536 */
+                       inertial-meter@68 {
+                               compatible = "invensense,icm20602";
+                               reg = <0x68>;
+                       };
+
+                       inertial-meter@69 {
+                               compatible = "invensense,iam20380";
+                               reg = <0x69>;
+                       };
+
+                       pressure-sensor@77 {
+                               compatible = "meas,ms5611";
+                               reg = <0x77>;
+                       };
                };
 
                i2c@3 {
                                interrupt-parent = <&lsio_gpio1>;
                                interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
                        };
+
+                       /* Ref SCH-54536 */
+                       light-sensort@60 {
+                               compatible = "vishay,vcnl4035";
+                               reg = <0x60>;
+                       };
                };
        };
 
 
        pinctrl_mipi_csi0: mipi-csi0grp {
                fsl,pins = <
-                       IMX8QXP_MIPI_CSI0_GPIO0_01_LSIO_GPIO3_IO07              0xC0000041
-                       IMX8QXP_MIPI_CSI0_GPIO0_00_LSIO_GPIO3_IO08              0xC0000041
-                       IMX8QXP_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT       0xC0000041
+                       IMX8QXP_MIPI_CSI0_GPIO0_01_LSIO_GPIO3_IO07              0xc0000041
+                       IMX8QXP_MIPI_CSI0_GPIO0_00_LSIO_GPIO3_IO08              0xc0000041
+                       IMX8QXP_MIPI_CSI0_MCLK_OUT_MIPI_CSI0_ACM_MCLK_OUT       0xc0000041
                >;
        };
 
index 13b01f3aa2a4950c37e72e04f6bfb5995dc19178..9b5d987665129e0c86734f90da3dde750305f387 100644 (file)
                                                "ch28", "ch29", "ch30", "ch31";
                        };
 
+                       sim_lpav: clock-controller@2da50000 {
+                               compatible = "fsl,imx8ulp-sim-lpav";
+                               reg = <0x2da50000 0x10000>;
+                               clocks = <&cgc2 IMX8ULP_CLK_LPAV_BUS_DIV>,
+                                        <&cgc2 IMX8ULP_CLK_HIFI_DIVCORE>,
+                                        <&cgc2 IMX8ULP_CLK_HIFI_DIVPLAT>;
+                               clock-names = "bus", "core", "plat";
+                               #clock-cells = <1>;
+                               #reset-cells = <1>;
+
+                               sim_lpav_mux: mux-controller {
+                                       compatible = "reg-mux";
+                                       #mux-control-cells = <1>;
+                                       mux-reg-masks = <0x8 0x00000200>;
+                               };
+                       };
+
                        cgc2: clock-controller@2da60000 {
                                compatible = "fsl,imx8ulp-cgc2";
                                reg = <0x2da60000 0x10000>;
index 8e9e841cc82813f11e41616d53e7dc8f77f86b68..47895ff8cb244e9bbebe228eb554c2b3f0dded1d 100644 (file)
@@ -3,7 +3,21 @@
  * Copyright 2019 Toradex
  */
 
+#include "dt-bindings/pwm/pwm.h"
+
 / {
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_bl_on>;
+               brightness-levels = <0 45 63 88 119 158 203 255>;
+               default-brightness-level = <4>;
+               enable-gpios = <&lsio_gpio3 12 GPIO_ACTIVE_HIGH>; /* Colibri BL_ON */
+               power-supply = <&reg_module_3v3>;
+               pwms = <&adma_pwm 0 6666667 PWM_POLARITY_INVERTED>;
+               status = "disabled";
+       };
+
        chosen {
                stdout-path = &lpuart3;
        };
                regulator-name = "usbh_vbus";
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       linux,cma-default;
+                       reusable;
+                       size = <0 0x1a000000>;
+               };
+       };
+
        sound-card {
                compatible = "simple-audio-card";
                simple-audio-card,bitclock-master = <&dailink_master>;
 /* On-module PCIe for Wi-Fi */
 &pcieb {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pcieb>;
+       pinctrl-0 = <&pinctrl_pcieb>, <&pinctrl_wifi>;
        phys = <&hsio_phy 0 PHY_TYPE_PCIE 0>;
        phy-names = "pcie-phy";
        reset-gpios = <&lsio_gpio4 0 GPIO_ACTIVE_LOW>;
        };
 
        pinctrl_csi_mclk: csimclkgrp {
-               fsl,pins = <IMX8QXP_CSI_MCLK_CI_PI_MCLK                         0xC0000041>;    /* SODIMM  75 / X3-12 */
+               fsl,pins = <IMX8QXP_CSI_MCLK_CI_PI_MCLK                         0xc0000041>;    /* SODIMM  75 / X3-12 */
        };
 
        pinctrl_ext_io0: extio0grp {
index aca78768dbd4bf30d9d6ae4a1cc37a29256d8f97..03f460d62f7a5887731eea07cdbbb3a29a39f893 100644 (file)
                serial4 = &lpuart5;
        };
 
+       bt_sco_codec: bt-sco-codec {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
                        linux,cma-default;
                };
        };
+
+       sound-wm8962 {
+               compatible = "fsl,imx-audio-wm8962";
+               model = "wm8962-audio";
+               audio-cpu = <&sai3>;
+               audio-codec = <&wm8962>;
+               hp-det-gpio = <&pcal6524 4 GPIO_ACTIVE_HIGH>;
+               audio-routing =
+                       "Headphone Jack", "HPOUTL",
+                       "Headphone Jack", "HPOUTR",
+                       "Ext Spk", "SPKOUTL",
+                       "Ext Spk", "SPKOUTR",
+                       "AMIC", "MICBIAS",
+                       "IN3R", "AMIC",
+                       "IN1R", "AMIC";
+       };
+
+       sound-bt-sco {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "bt-sco-audio";
+               simple-audio-card,format = "dsp_a";
+               simple-audio-card,bitclock-inversion;
+               simple-audio-card,frame-master = <&btcpu>;
+               simple-audio-card,bitclock-master = <&btcpu>;
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+
+               btcpu: simple-audio-card,cpu {
+                       sound-dai = <&sai1>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+       };
+
+       sound-micfil {
+               compatible = "fsl,imx-audio-card";
+               model = "micfil-audio";
+
+               pri-dai-link {
+                       link-name = "micfil hifi";
+                       format = "i2s";
+
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+               };
+       };
+
+       sound-xcvr {
+               compatible = "fsl,imx-audio-card";
+               model = "imx-audio-xcvr";
+
+               pri-dai-link {
+                       link-name = "XCVR PCM";
+
+                       cpu {
+                               sound-dai = <&xcvr>;
+                       };
+               };
+       };
 };
 
 &adc1 {
        pinctrl-names = "default";
        status = "okay";
 
-       audio_codec: wm8962@1a {
+       wm8962: audio-codec@1a {
                compatible = "wlf,wm8962";
                reg = <0x1a>;
                clocks = <&clk IMX93_CLK_SAI3_GATE>;
        };
 };
 
+&micfil {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_pdm>;
+       pinctrl-1 = <&pinctrl_pdm_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <49152000>;
+       status = "okay";
+};
+
+&sai1 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_sai1>;
+       pinctrl-1 = <&pinctrl_sai1_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_SAI1>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
+&sai3 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_sai3>;
+       pinctrl-1 = <&pinctrl_sai3_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &usbotg1 {
        adp-disable;
        disable-over-current;
        status = "okay";
 };
 
+&xcvr {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_spdif>;
+       pinctrl-1 = <&pinctrl_spdif_sleep>;
+       assigned-clocks = <&clk IMX93_CLK_SPDIF>,
+                         <&clk IMX93_CLK_AUDIO_XCVR>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>,
+                                <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+       assigned-clock-rates = <12288000>, <200000000>;
+       status = "okay";
+};
+
 &iomuxc {
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX91_PAD_PDM_CLK__PDM_CLK                       0x31e
+                       MX91_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM0       0x31e
+                       MX91_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM1       0x31e
+               >;
+       };
+
+       pinctrl_pdm_sleep: pdmsleepgrp {
+               fsl,pins = <
+                       MX91_PAD_PDM_CLK__GPIO1_IO8                     0x51e
+                       MX91_PAD_PDM_BIT_STREAM0__GPIO1_IO9             0x51e
+                       MX91_PAD_PDM_BIT_STREAM1__GPIO1_IO10            0x51e
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       MX91_PAD_SAI1_TXC__SAI1_TX_BCLK                 0x31e
+                       MX91_PAD_SAI1_TXFS__SAI1_TX_SYNC                0x31e
+                       MX91_PAD_SAI1_TXD0__SAI1_TX_DATA0               0x31e
+                       MX91_PAD_SAI1_RXD0__SAI1_RX_DATA0               0x31e
+               >;
+       };
+
+       pinctrl_sai1_sleep: sai1sleepgrp {
+               fsl,pins = <
+                       MX91_PAD_SAI1_TXC__GPIO1_IO12                   0x51e
+                       MX91_PAD_SAI1_TXFS__GPIO1_IO11                  0x51e
+                       MX91_PAD_SAI1_TXD0__GPIO1_IO13                  0x51e
+                       MX91_PAD_SAI1_RXD0__GPIO1_IO14                  0x51e
+               >;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO16__SAI3_TX_BCLK                0x31e
+                       MX91_PAD_GPIO_IO17__SAI3_MCLK                   0x31e
+                       MX91_PAD_GPIO_IO19__SAI3_TX_DATA0               0x31e
+                       MX91_PAD_GPIO_IO20__SAI3_RX_DATA0               0x31e
+                       MX91_PAD_GPIO_IO26__SAI3_TX_SYNC                0x31e
+               >;
+       };
+
+       pinctrl_sai3_sleep: sai3sleepgrp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO16__GPIO2_IO16                  0x51e
+                       MX91_PAD_GPIO_IO17__GPIO2_IO17                  0x51e
+                       MX91_PAD_GPIO_IO19__GPIO2_IO19                  0x51e
+                       MX91_PAD_GPIO_IO20__GPIO2_IO20                  0x51e
+                       MX91_PAD_GPIO_IO26__GPIO2_IO26                  0x51e
+               >;
+       };
+
+       pinctrl_spdif: spdifgrp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO22__SPDIF_IN                    0x31e
+                       MX91_PAD_GPIO_IO23__SPDIF_OUT                   0x31e
+               >;
+       };
+
+       pinctrl_spdif_sleep: spdifsleepgrp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO22__GPIO2_IO22                  0x51e
+                       MX91_PAD_GPIO_IO23__GPIO2_IO23                  0x51e
+               >;
+       };
+
        pinctrl_lpi2c3: lpi2c3grp {
                fsl,pins = <
                        MX91_PAD_GPIO_IO28__LPI2C3_SDA                          0x40000b9e
diff --git a/src/arm64/freescale/imx91-11x11-frdm.dts b/src/arm64/freescale/imx91-11x11-frdm.dts
new file mode 100644 (file)
index 0000000..c255615
--- /dev/null
@@ -0,0 +1,906 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2025 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx91.dtsi"
+
+/ {
+       compatible = "fsl,imx91-11x11-frdm", "fsl,imx91";
+       model = "NXP i.MX91 11x11 FRDM Board";
+
+       aliases {
+               ethernet0 = &fec;
+               ethernet1 = &eqos;
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               i2c0 = &lpi2c1;
+               i2c1 = &lpi2c2;
+               i2c2 = &lpi2c3;
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               mmc2 = &usdhc3;
+               rtc0 = &bbnsm_rtc;
+               rtc1 = &pcf2131;
+               serial0 = &lpuart1;
+               serial4 = &lpuart5;
+       };
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       flexcan_phy: can-phy {
+               compatible = "nxp,tja1051";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&pcal6524 23 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-k2 {
+                       interrupt-parent = <&pcal6524>;
+                       interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+                       label = "Button K2";
+                       gpios = <&pcal6524 5 GPIO_PULL_UP>;
+                       linux,code = <BTN_1>;
+               };
+
+               button-k3 {
+                       interrupt-parent = <&pcal6524>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+                       label = "Button K3";
+                       gpios = <&pcal6524 6 GPIO_PULL_UP>;
+                       linux,code = <BTN_2>;
+               };
+       };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "vref_1v8";
+       };
+
+       reg_m2_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "M.2-power";
+               gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               off-on-delay-us = <12000>;
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               pinctrl-names = "default";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VSD_3V3";
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "WLAN_EN";
+               vin-supply = <&reg_m2_pwr>;
+               gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               /*
+                * This regulator defined as PDn pin of the IW610 wifi module.
+                * IW610 wifi chip needs more delay than other wifi chips to complete
+                * the host interface initialization after power up, otherwise the
+                * internal state of IW610 may be unstable, resulting in the failure of
+                * the SDIO3.0 switch voltage.
+                */
+               startup-delay-us = <20000>;
+       };
+
+       reg_vdd_12v: regulator-vdd-12v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <12000000>;
+               regulator-min-microvolt = <12000000>;
+               regulator-name = "reg_vdd_12v";
+               gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_vexp_3v3: regulator-vexp-3v3 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VEXP_3V3";
+               vin-supply = <&buck4>;
+               gpio = <&pcal6524 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_vexp_5v: regulator-vexp-5v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "VEXP_5V";
+               gpio = <&pcal6524 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reserved-memory {
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0 0x80000000 0 0x30000000>;
+                       reusable;
+                       size = <0 0x10000000>;
+                       linux,cma-default;
+               };
+       };
+
+       soc@0 {
+               bootph-all;
+               bootph-pre-ram;
+       };
+
+       sound-mqs {
+               compatible = "fsl,imx6sx-sdb-mqs",
+                            "fsl,imx-audio-mqs";
+               audio-codec = <&mqs1>;
+               audio-cpu = <&sai1>;
+               model = "mqs-audio";
+       };
+
+       usdhc3_pwrseq: usdhc3-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&adc1 {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+};
+
+&aips1 {
+       bootph-pre-ram;
+       bootph-all;
+};
+
+&aips2 {
+       bootph-pre-ram;
+       bootph-some-ram;
+};
+
+&aips3 {
+       bootph-pre-ram;
+       bootph-some-ram;
+};
+
+&clk {
+       bootph-all;
+       bootph-pre-ram;
+};
+
+&clk_ext1 {
+       bootph-all;
+       bootph-pre-ram;
+};
+
+&eqos {
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&pinctrl_eqos>;
+       pinctrl-1 = <&pinctrl_eqos_sleep>;
+       pinctrl-names = "default", "sleep";
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy1: ethernet-phy@1 {
+                       reg = <1>;
+                       reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <15000>;
+                       reset-deassert-us = <100000>;
+               };
+       };
+};
+
+&fec {
+       phy-handle = <&ethphy2>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&pinctrl_fec>;
+       pinctrl-1 = <&pinctrl_fec_sleep>;
+       pinctrl-names = "default", "sleep";
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy2: ethernet-phy@2 {
+                       reg = <2>;
+                       reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <15000>;
+                       reset-deassert-us = <100000>;
+               };
+       };
+};
+
+&flexcan2 {
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       pinctrl-1 = <&pinctrl_flexcan2_sleep>;
+       pinctrl-names = "default", "sleep";
+       phys = <&flexcan_phy>;
+       status = "okay";
+};
+
+&gpio1 {
+       bootph-pre-ram;
+       bootph-some-ram;
+};
+
+&gpio2 {
+       bootph-pre-ram;
+       bootph-some-ram;
+};
+
+&gpio3 {
+       bootph-pre-ram;
+       bootph-some-ram;
+};
+
+&gpio4 {
+       bootph-pre-ram;
+       bootph-some-ram;
+};
+
+&lpi2c1 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c1>;
+       pinctrl-names = "default";
+       bootph-pre-ram;
+       bootph-some-ram;
+       status = "okay";
+
+       pcal6408: gpio@20 {
+               compatible = "nxp,pcal9554b";
+               reg = <0x20>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               vcc-supply = <&reg_usdhc3_vmmc>;
+               status = "okay";
+       };
+};
+
+&lpi2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       pinctrl-names = "default";
+       bootph-pre-ram;
+       bootph-some-ram;
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               interrupt-parent = <&gpio3>;
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               pinctrl-names = "default";
+       };
+
+       pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-parent = <&pcal6524>;
+               bootph-pre-ram;
+               bootph-some-ram;
+
+               regulators {
+                       bootph-pre-ram;
+                       bootph-some-ram;
+
+                       buck1: BUCK1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <2237500>;
+                               regulator-min-microvolt = <650000>;
+                               regulator-name = "BUCK1";
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-min-microvolt = <600000>;
+                               regulator-name = "BUCK2";
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-min-microvolt = <600000>;
+                               regulator-name = "BUCK4";
+                       };
+
+                       buck5: BUCK5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-min-microvolt = <600000>;
+                               regulator-name = "BUCK5";
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-min-microvolt = <600000>;
+                               regulator-name = "BUCK6";
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1600000>;
+                               regulator-name = "LDO1";
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <800000>;
+                               regulator-name = "LDO4";
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "LDO5";
+                       };
+               };
+       };
+};
+
+&lpi2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       pinctrl-names = "default";
+       bootph-pre-ram;
+       bootph-some-ram;
+       status = "okay";
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-parent = <&gpio3>;
+
+               typec1_con: connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       op-sink-microwatt = <15000000>;
+                       power-role = "dual";
+                       self-powered;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "sink";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       pcf2131: rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+               interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-parent = <&pcal6524>;
+               status = "okay";
+       };
+};
+
+&lpuart1 {
+       pinctrl-0 = <&pinctrl_uart1>;
+       pinctrl-names = "default";
+       bootph-pre-ram;
+       bootph-some-ram;
+       status = "okay";
+};
+
+&lpuart5 {
+       pinctrl-0 = <&pinctrl_uart5>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
+&mqs1 {
+       clocks = <&clk IMX93_CLK_MQS1_GATE>;
+       clock-names = "mclk";
+       pinctrl-0 = <&pinctrl_mqs1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&osc_32k {
+       bootph-all;
+       bootph-pre-ram;
+};
+
+&osc_24m {
+       bootph-all;
+       bootph-pre-ram;
+};
+
+&sai1 {
+       clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
+                <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
+                <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
+       assigned-clocks = <&clk IMX93_CLK_SAI1>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <24576000>;
+       #sound-dai-cells = <0>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
+&usbotg1 {
+       adp-disable;
+       disable-over-current;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       usb-role-switch;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usbotg2 {
+       disable-over-current;
+       dr_mode = "host";
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       status = "okay";
+};
+
+&usdhc1 {
+       bus-width = <8>;
+       non-removable;
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       bootph-pre-ram;
+       bootph-some-ram;
+       status = "okay";
+};
+
+&usdhc2 {
+       bus-width = <4>;
+       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
+       no-mmc;
+       no-sdio;
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bootph-pre-ram;
+       bootph-some-ram;
+       status = "okay";
+};
+
+&usdhc3 {
+       bus-width = <4>;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       non-removable;
+       pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-3 = <&pinctrl_usdhc3_sleep>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       wakeup-source;
+       status = "okay";
+};
+
+&wdog3 {
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       bootph-pre-ram;
+       bootph-some-ram;
+
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       MX91_PAD_ENET1_MDC__ENET1_MDC                           0x57e
+                       MX91_PAD_ENET1_MDIO__ENET_QOS_MDIO                      0x57e
+                       MX91_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0                  0x57e
+                       MX91_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1                  0x57e
+                       MX91_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2                  0x57e
+                       MX91_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3                  0x57e
+                       MX91_PAD_ENET1_RXC__ENET_QOS_RGMII_RXC                  0x5fe
+                       MX91_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL            0x57e
+                       MX91_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0                  0x57e
+                       MX91_PAD_ENET1_TD1__ENET1_RGMII_TD1                     0x57e
+                       MX91_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2                  0x57e
+                       MX91_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3                  0x57e
+                       MX91_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK  0x5fe
+                       MX91_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL            0x57e
+               >;
+       };
+
+       pinctrl_eqos_sleep: eqossleepgrp {
+               fsl,pins = <
+                       MX91_PAD_ENET1_MDC__GPIO4_IO0                           0x31e
+                       MX91_PAD_ENET1_MDIO__GPIO4_IO1                          0x31e
+                       MX91_PAD_ENET1_RD0__GPIO4_IO10                          0x31e
+                       MX91_PAD_ENET1_RD1__GPIO4_IO11                          0x31e
+                       MX91_PAD_ENET1_RD2__GPIO4_IO12                          0x31e
+                       MX91_PAD_ENET1_RD3__GPIO4_IO13                          0x31e
+                       MX91_PAD_ENET1_RXC__GPIO4_IO9                           0x31e
+                       MX91_PAD_ENET1_RX_CTL__GPIO4_IO8                        0x31e
+                       MX91_PAD_ENET1_TD0__GPIO4_IO5                           0x31e
+                       MX91_PAD_ENET1_TD1__GPIO4_IO4                           0x31e
+                       MX91_PAD_ENET1_TD2__GPIO4_IO3                           0x31e
+                       MX91_PAD_ENET1_TD3__GPIO4_IO2                           0x31e
+                       MX91_PAD_ENET1_TXC__GPIO4_IO7                           0x31e
+                       MX91_PAD_ENET1_TX_CTL__GPIO4_IO6                        0x31e
+               >;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <
+                       MX91_PAD_ENET2_MDC__ENET2_MDC                           0x57e
+                       MX91_PAD_ENET2_MDIO__ENET2_MDIO                         0x57e
+                       MX91_PAD_ENET2_RD0__ENET2_RGMII_RD0                     0x57e
+                       MX91_PAD_ENET2_RD1__ENET2_RGMII_RD1                     0x57e
+                       MX91_PAD_ENET2_RD2__ENET2_RGMII_RD2                     0x57e
+                       MX91_PAD_ENET2_RD3__ENET2_RGMII_RD3                     0x57e
+                       MX91_PAD_ENET2_RXC__ENET2_RGMII_RXC                     0x5fe
+                       MX91_PAD_ENET2_RX_CTL__ENET2_RGMII_RX_CTL               0x57e
+                       MX91_PAD_ENET2_TD0__ENET2_RGMII_TD0                     0x57e
+                       MX91_PAD_ENET2_TD1__ENET2_RGMII_TD1                     0x57e
+                       MX91_PAD_ENET2_TD2__ENET2_RGMII_TD2                     0x57e
+                       MX91_PAD_ENET2_TD3__ENET2_RGMII_TD3                     0x57e
+                       MX91_PAD_ENET2_TXC__ENET2_RGMII_TXC                     0x5fe
+                       MX91_PAD_ENET2_TX_CTL__ENET2_RGMII_TX_CTL               0x57e
+               >;
+       };
+
+       pinctrl_fec_sleep: fecsleepgrp {
+               fsl,pins = <
+                       MX91_PAD_ENET2_MDC__GPIO4_IO14                          0x51e
+                       MX91_PAD_ENET2_MDIO__GPIO4_IO15                         0x51e
+                       MX91_PAD_ENET2_RD0__GPIO4_IO24                          0x51e
+                       MX91_PAD_ENET2_RD1__GPIO4_IO25                          0x51e
+                       MX91_PAD_ENET2_RD2__GPIO4_IO26                          0x51e
+                       MX91_PAD_ENET2_RD3__GPIO4_IO27                          0x51e
+                       MX91_PAD_ENET2_RXC__GPIO4_IO23                          0x51e
+                       MX91_PAD_ENET2_RX_CTL__GPIO4_IO22                       0x51e
+                       MX91_PAD_ENET2_TD0__GPIO4_IO19                          0x51e
+                       MX91_PAD_ENET2_TD1__GPIO4_IO18                          0x51e
+                       MX91_PAD_ENET2_TD2__GPIO4_IO17                          0x51e
+                       MX91_PAD_ENET2_TD3__GPIO4_IO16                          0x51e
+                       MX91_PAD_ENET2_TXC__GPIO4_IO21                          0x51e
+                       MX91_PAD_ENET2_TX_CTL__GPIO4_IO20                       0x51e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO25__CAN2_TX                             0x139e
+                       MX91_PAD_GPIO_IO27__CAN2_RX                             0x139e
+               >;
+       };
+
+       pinctrl_flexcan2_sleep: flexcan2sleepgrp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO25__GPIO2_IO25                          0x31e
+                       MX91_PAD_GPIO_IO27__GPIO2_IO27                          0x31e
+               >;
+       };
+
+       pinctrl_lpi2c1: lpi2c1grp {
+               fsl,pins = <
+                       MX91_PAD_I2C1_SCL__LPI2C1_SCL                           0x40000b9e
+                       MX91_PAD_I2C1_SDA__LPI2C1_SDA                           0x40000b9e
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       MX91_PAD_I2C2_SCL__LPI2C2_SCL                           0x40000b9e
+                       MX91_PAD_I2C2_SDA__LPI2C2_SDA                           0x40000b9e
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO28__LPI2C3_SDA                          0x40000b9e
+                       MX91_PAD_GPIO_IO29__LPI2C3_SCL                          0x40000b9e
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_lpspi3: lpspi3grp {
+               fsl,pins = <
+                       MX91_PAD_GPIO_IO08__GPIO2_IO8                           0x3fe
+                       MX91_PAD_GPIO_IO09__LPSPI3_SIN                          0x3fe
+                       MX91_PAD_GPIO_IO10__LPSPI3_SOUT                         0x3fe
+                       MX91_PAD_GPIO_IO11__LPSPI3_SCK                          0x3fe
+               >;
+       };
+
+       pinctrl_mqs1: mqs1grp {
+               fsl,pins = <
+                       MX91_PAD_PDM_CLK__MQS1_LEFT                             0x31e
+                       MX91_PAD_PDM_BIT_STREAM0__MQS1_RIGHT                    0x31e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       MX91_PAD_CCM_CLKO2__GPIO3_IO27                          0x31e
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       MX91_PAD_SD2_RESET_B__GPIO3_IO7                         0x31e
+               >;
+               bootph-pre-ram;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX91_PAD_UART1_RXD__LPUART1_RX                          0x31e
+                       MX91_PAD_UART1_TXD__LPUART1_TX                          0x31e
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX91_PAD_DAP_TDO_TRACESWO__LPUART5_TX                   0x31e
+                       MX91_PAD_DAP_TDI__LPUART5_RX                            0x31e
+                       MX91_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B                   0x31e
+                       MX91_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B                  0x31e
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX91_PAD_SD1_CLK__USDHC1_CLK                            0x1582
+                       MX91_PAD_SD1_CMD__USDHC1_CMD                            0x1382
+                       MX91_PAD_SD1_DATA0__USDHC1_DATA0                        0x1382
+                       MX91_PAD_SD1_DATA1__USDHC1_DATA1                        0x1382
+                       MX91_PAD_SD1_DATA2__USDHC1_DATA2                        0x1382
+                       MX91_PAD_SD1_DATA3__USDHC1_DATA3                        0x1382
+                       MX91_PAD_SD1_DATA4__USDHC1_DATA4                        0x1382
+                       MX91_PAD_SD1_DATA5__USDHC1_DATA5                        0x1382
+                       MX91_PAD_SD1_DATA6__USDHC1_DATA6                        0x1382
+                       MX91_PAD_SD1_DATA7__USDHC1_DATA7                        0x1382
+                       MX91_PAD_SD1_STROBE__USDHC1_STROBE                      0x1582
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX91_PAD_SD1_CLK__USDHC1_CLK                            0x158e
+                       MX91_PAD_SD1_CMD__USDHC1_CMD                            0x138e
+                       MX91_PAD_SD1_DATA0__USDHC1_DATA0                        0x138e
+                       MX91_PAD_SD1_DATA1__USDHC1_DATA1                        0x138e
+                       MX91_PAD_SD1_DATA2__USDHC1_DATA2                        0x138e
+                       MX91_PAD_SD1_DATA3__USDHC1_DATA3                        0x138e
+                       MX91_PAD_SD1_DATA4__USDHC1_DATA4                        0x138e
+                       MX91_PAD_SD1_DATA5__USDHC1_DATA5                        0x138e
+                       MX91_PAD_SD1_DATA6__USDHC1_DATA6                        0x138e
+                       MX91_PAD_SD1_DATA7__USDHC1_DATA7                        0x138e
+                       MX91_PAD_SD1_STROBE__USDHC1_STROBE                      0x158e
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       MX91_PAD_SD1_CLK__USDHC1_CLK                            0x15fe
+                       MX91_PAD_SD1_CMD__USDHC1_CMD                            0x13fe
+                       MX91_PAD_SD1_DATA0__USDHC1_DATA0                        0x13fe
+                       MX91_PAD_SD1_DATA1__USDHC1_DATA1                        0x13fe
+                       MX91_PAD_SD1_DATA2__USDHC1_DATA2                        0x13fe
+                       MX91_PAD_SD1_DATA3__USDHC1_DATA3                        0x13fe
+                       MX91_PAD_SD1_DATA4__USDHC1_DATA4                        0x13fe
+                       MX91_PAD_SD1_DATA5__USDHC1_DATA5                        0x13fe
+                       MX91_PAD_SD1_DATA6__USDHC1_DATA6                        0x13fe
+                       MX91_PAD_SD1_DATA7__USDHC1_DATA7                        0x13fe
+                       MX91_PAD_SD1_STROBE__USDHC1_STROBE                      0x15fe
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX91_PAD_SD2_CD_B__GPIO3_IO0                            0x31e
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
+               fsl,pins = <
+                       MX91_PAD_SD2_CD_B__GPIO3_IO0                            0x51e
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX91_PAD_SD2_CLK__USDHC2_CLK                            0x1582
+                       MX91_PAD_SD2_CMD__USDHC2_CMD                            0x1382
+                       MX91_PAD_SD2_DATA0__USDHC2_DATA0                        0x1382
+                       MX91_PAD_SD2_DATA1__USDHC2_DATA1                        0x1382
+                       MX91_PAD_SD2_DATA2__USDHC2_DATA2                        0x1382
+                       MX91_PAD_SD2_DATA3__USDHC2_DATA3                        0x1382
+                       MX91_PAD_SD2_VSELECT__USDHC2_VSELECT                    0x51e
+               >;
+               bootph-pre-ram;
+               bootph-some-ram;
+       };
+
+       pinctrl_usdhc2_sleep: usdhc2sleepgrp {
+               fsl,pins = <
+                       MX91_PAD_SD2_CLK__GPIO3_IO1                             0x51e
+                       MX91_PAD_SD2_CMD__GPIO3_IO2                             0x51e
+                       MX91_PAD_SD2_DATA0__GPIO3_IO3                           0x51e
+                       MX91_PAD_SD2_DATA1__GPIO3_IO4                           0x51e
+                       MX91_PAD_SD2_DATA2__GPIO3_IO5                           0x51e
+                       MX91_PAD_SD2_DATA3__GPIO3_IO6                           0x51e
+                       MX91_PAD_SD2_VSELECT__GPIO3_IO19                        0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX91_PAD_SD2_CLK__USDHC2_CLK                            0x158e
+                       MX91_PAD_SD2_CMD__USDHC2_CMD                            0x138e
+                       MX91_PAD_SD2_DATA0__USDHC2_DATA0                        0x138e
+                       MX91_PAD_SD2_DATA1__USDHC2_DATA1                        0x138e
+                       MX91_PAD_SD2_DATA2__USDHC2_DATA2                        0x138e
+                       MX91_PAD_SD2_DATA3__USDHC2_DATA3                        0x138e
+                       MX91_PAD_SD2_VSELECT__USDHC2_VSELECT                    0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX91_PAD_SD2_CLK__USDHC2_CLK                            0x15fe
+                       MX91_PAD_SD2_CMD__USDHC2_CMD                            0x13fe
+                       MX91_PAD_SD2_DATA0__USDHC2_DATA0                        0x13fe
+                       MX91_PAD_SD2_DATA1__USDHC2_DATA1                        0x13fe
+                       MX91_PAD_SD2_DATA2__USDHC2_DATA2                        0x13fe
+                       MX91_PAD_SD2_DATA3__USDHC2_DATA3                        0x13fe
+                       MX91_PAD_SD2_VSELECT__USDHC2_VSELECT                    0x51e
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX91_PAD_SD3_CLK__USDHC3_CLK                            0x1582
+                       MX91_PAD_SD3_CMD__USDHC3_CMD                            0x1382
+                       MX91_PAD_SD3_DATA0__USDHC3_DATA0                        0x1382
+                       MX91_PAD_SD3_DATA1__USDHC3_DATA1                        0x1382
+                       MX91_PAD_SD3_DATA2__USDHC3_DATA2                        0x1382
+                       MX91_PAD_SD3_DATA3__USDHC3_DATA3                        0x1382
+               >;
+       };
+
+       pinctrl_usdhc3_sleep: usdhc3sleepgrp {
+               fsl,pins = <
+                       MX91_PAD_SD3_CLK__GPIO3_IO20                            0x31e
+                       MX91_PAD_SD3_CMD__GPIO3_IO21                            0x31e
+                       MX91_PAD_SD3_DATA0__GPIO3_IO22                          0x31e
+                       MX91_PAD_SD3_DATA1__GPIO3_IO23                          0x31e
+                       MX91_PAD_SD3_DATA2__GPIO3_IO24                          0x31e
+                       MX91_PAD_SD3_DATA3__GPIO3_IO25                          0x31e
+               >;
+       };
+
+       pinctrl_usdhc3_wlan: usdhc3wlangrp {
+               fsl,pins = <
+                       MX91_PAD_CCM_CLKO1__GPIO3_IO26                          0x31e
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX91_PAD_SD3_CLK__USDHC3_CLK                            0x158e
+                       MX91_PAD_SD3_CMD__USDHC3_CMD                            0x138e
+                       MX91_PAD_SD3_DATA0__USDHC3_DATA0                        0x138e
+                       MX91_PAD_SD3_DATA1__USDHC3_DATA1                        0x138e
+                       MX91_PAD_SD3_DATA2__USDHC3_DATA2                        0x138e
+                       MX91_PAD_SD3_DATA3__USDHC3_DATA3                        0x138e
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX91_PAD_SD3_CLK__USDHC3_CLK                            0x15fe
+                       MX91_PAD_SD3_CMD__USDHC3_CMD                            0x13fe
+                       MX91_PAD_SD3_DATA0__USDHC3_DATA0                        0x13fe
+                       MX91_PAD_SD3_DATA1__USDHC3_DATA1                        0x13fe
+                       MX91_PAD_SD3_DATA2__USDHC3_DATA2                        0x13fe
+                       MX91_PAD_SD3_DATA3__USDHC3_DATA3                        0x13fe
+               >;
+       };
+};
index 5792952b7a8e14a53fa7a84ec6fa73c7a5bf83f0..c99d7bc168483682ab220709d3d11bef5b61d280 100644 (file)
        /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = /* PD | FSEL 3 | DSE X5 */
-                          <MX91_PAD_SD1_CLK__USDHC1_CLK                0x5be>,
+                          <MX91_PAD_SD1_CLK__USDHC1_CLK                0x59e>,
                           /* HYS | FSEL 0 | no drive */
                           <MX91_PAD_SD1_STROBE__USDHC1_STROBE          0x1000>,
                           /* HYS | FSEL 3 | X5 */
-                          <MX91_PAD_SD1_CMD__USDHC1_CMD                0x400011be>,
+                          <MX91_PAD_SD1_CMD__USDHC1_CMD                0x4000139e>,
                           /* HYS | FSEL 3 | X4 */
-                          <MX91_PAD_SD1_DATA0__USDHC1_DATA0            0x4000119e>,
-                          <MX91_PAD_SD1_DATA1__USDHC1_DATA1            0x4000119e>,
-                          <MX91_PAD_SD1_DATA2__USDHC1_DATA2            0x4000119e>,
-                          <MX91_PAD_SD1_DATA3__USDHC1_DATA3            0x4000119e>,
-                          <MX91_PAD_SD1_DATA4__USDHC1_DATA4            0x4000119e>,
-                          <MX91_PAD_SD1_DATA5__USDHC1_DATA5            0x4000119e>,
-                          <MX91_PAD_SD1_DATA6__USDHC1_DATA6            0x4000119e>,
-                          <MX91_PAD_SD1_DATA7__USDHC1_DATA7            0x4000119e>;
+                          <MX91_PAD_SD1_DATA0__USDHC1_DATA0            0x4000139e>,
+                          <MX91_PAD_SD1_DATA1__USDHC1_DATA1            0x4000139e>,
+                          <MX91_PAD_SD1_DATA2__USDHC1_DATA2            0x4000139e>,
+                          <MX91_PAD_SD1_DATA3__USDHC1_DATA3            0x4000139e>,
+                          <MX91_PAD_SD1_DATA4__USDHC1_DATA4            0x4000139e>,
+                          <MX91_PAD_SD1_DATA5__USDHC1_DATA5            0x4000139e>,
+                          <MX91_PAD_SD1_DATA6__USDHC1_DATA6            0x4000139e>,
+                          <MX91_PAD_SD1_DATA7__USDHC1_DATA7            0x4000139e>;
        };
 
        pinctrl_wdog: wdoggrp {
index 4d8300b2a7bca33bd0613db9e79d2fba6b40c052..f075592bfc01f1eb94d2a2bd8eea907cc2aed090 100644 (file)
@@ -6,6 +6,54 @@
 #include "imx91-pinfunc.h"
 #include "imx91_93_common.dtsi"
 
+/{
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <2000>;
+                       thermal-sensors = <&tmu 0>;
+
+                       trips {
+                               cpu_alert: cpu-alert {
+                                       temperature = <80000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_crit: cpu-crit {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert>;
+                                       cooling-device =
+                                               <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+};
+
+&aips1 {
+       tmu: thermal-sensor@44482000 {
+               compatible = "fsl,imx91-tmu";
+               reg = <0x44482000 0x1000>;
+               #thermal-sensor-cells = <0>;
+               clocks = <&clk IMX93_CLK_TMC_GATE>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "thr1", "thr2", "ready";
+               nvmem-cells = <&tmu_trim1>, <&tmu_trim2>;
+               nvmem-cell-names = "trim1", "trim2";
+       };
+};
+
 &clk {
        compatible = "fsl,imx91-ccm";
 };
        clock-names = "apb", "axi", "nic", "disp", "cam",
                      "lcdif", "isi", "csi";
 };
+
+&ocotp {
+       tmu_trim1: tmu-trim@a0 {
+               reg = <0xa0 0x4>;
+       };
+
+       tmu_trim2: tmu-trim@a4 {
+               reg = <0xa4 0x4>;
+       };
+};
index b94a24193e199b266943c58466f4f620e81480ba..8dd5340e8141f44913be8167e85337f179f5edbf 100644 (file)
 
        };
 
+       flexcan_phy: can-phy {
+               compatible = "nxp,tja1057";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&adp5585 6 GPIO_ACTIVE_HIGH>;
+       };
+
        reg_vdd_12v: regulator-vdd-12v {
                compatible = "regulator-fixed";
                regulator-name = "VDD_12V";
                enable-active-high;
        };
 
-       reg_can2_standby: regulator-can2-standby {
-               compatible = "regulator-fixed";
-               regulator-name = "can2-stby";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&adp5585 6 GPIO_ACTIVE_LOW>;
-       };
-
        reg_m2_pwr: regulator-m2-pwr {
                compatible = "regulator-fixed";
                regulator-name = "M.2-power";
 &flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
-       xceiver-supply = <&reg_can2_standby>;
+       phys = <&flexcan_phy>;
        status = "okay";
 };
 
diff --git a/src/arm64/freescale/imx93-11x11-frdm.dts b/src/arm64/freescale/imx93-11x11-frdm.dts
new file mode 100644 (file)
index 0000000..bd14ba2
--- /dev/null
@@ -0,0 +1,807 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx93.dtsi"
+
+/ {
+       compatible = "fsl,imx93-11x11-frdm", "fsl,imx93";
+       model = "NXP i.MX93 11X11 FRDM board";
+
+       aliases {
+               can0 = &flexcan2;
+               ethernet0 = &fec;
+               ethernet1 = &eqos;
+               i2c0 = &lpi2c1;
+               i2c1 = &lpi2c2;
+               i2c2 = &lpi2c3;
+               mmc0 = &usdhc1; /* EMMC */
+               mmc1 = &usdhc2; /* uSD */
+               rtc0 = &pcf2131;
+               serial0 = &lpuart1;
+               serial4 = &lpuart5;
+       };
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       flexcan2_phy: can-phy {
+               compatible = "nxp,tja1051";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&pcal6524 23 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-k2 {
+                       label = "Button K2";
+                       linux,code = <BTN_1>;
+                       gpios = <&pcal6524 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+                       interrupt-parent = <&pcal6524>;
+                       interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+               };
+
+               button-k3 {
+                       label = "Button K3";
+                       linux,code = <BTN_2>;
+                       gpios = <&pcal6524 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+                       interrupt-parent = <&pcal6524>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+               };
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               off-on-delay-us = <12000>;
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               pinctrl-names = "default";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "VSD_3V3";
+               vin-supply = <&buck4>;
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VPCIe_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <20000>;
+               gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reserved-memory {
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0 0x80000000 0 0x30000000>;
+                       reusable;
+                       size = <0 0x10000000>;
+                       linux,cma-default;
+               };
+
+               rsc_table: rsc-table@2021e000 {
+                       reg = <0 0x2021e000 0 0x1000>;
+                       no-map;
+               };
+
+               vdev0vring0: vdev0vring0@a4000000 {
+                       reg = <0 0xa4000000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev0vring1: vdev0vring1@a4008000 {
+                       reg = <0 0xa4008000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev1vring0: vdev1vring0@a4010000 {
+                       reg = <0 0xa4010000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev1vring1: vdev1vring1@a4018000 {
+                       reg = <0 0xa4018000 0 0x8000>;
+                       no-map;
+               };
+
+               vdevbuffer: vdevbuffer@a4020000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0xa4020000 0 0x100000>;
+                       no-map;
+               };
+       };
+
+       sound-mqs {
+               compatible = "fsl,imx-audio-mqs";
+               model = "mqs-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&mqs1>;
+       };
+
+       usdhc3_pwrseq: mmc-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&adc1 {
+       vref-supply = <&buck5>;
+       status = "okay";
+};
+
+&mu1 {
+       status = "okay";
+};
+
+&cm33 {
+       mboxes = <&mu1 0 1>,
+                <&mu1 1 1>,
+                <&mu1 3 1>;
+       mbox-names = "tx", "rx", "rxdb";
+       memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+                       <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
+       status = "okay";
+};
+
+&eqos {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_eqos>;
+       pinctrl-1 = <&pinctrl_eqos_sleep>;
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy1: ethernet-phy@1 {
+                       reg = <1>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
+                       reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
+                       realtek,clkout-disable;
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_fec>;
+       pinctrl-1 = <&pinctrl_fec_sleep>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy2>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy2: ethernet-phy@2 {
+                       reg = <2>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
+                       reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
+                       realtek,clkout-disable;
+               };
+       };
+};
+
+&flexcan2 {
+       phys = <&flexcan2_phy>;
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       pinctrl-1 = <&pinctrl_flexcan2_sleep>;
+       pinctrl-names = "default", "sleep";
+       status = "okay";
+};
+
+&lpi2c1 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c1>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       pcal6408: gpio@20 {
+               compatible = "nxp,pcal6408";
+               reg = <0x20>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               reset-gpios = <&pcal6524 20 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&lpi2c2 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               pinctrl-names = "default";
+               /* does not boot with supplier set, because it is the bucks interrupt parent */
+               /* vcc-supply = <&buck4>; */
+       };
+
+       pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+
+                       buck1: BUCK1 {
+                               regulator-name = "VDD_SOC_0V8";
+                               regulator-min-microvolt = <610000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "LPD4_x_VDDQ_0V6";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <670000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4 {
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck5: BUCK5 {
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-name = "LPD4_x_VDD2_1V1";
+                               regulator-min-microvolt = <1060000>;
+                               regulator-max-microvolt = <1140000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-name = "NVCC_BBSM_1V8";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <1980000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "VDD_ANA_0V8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <840000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "NVCC_SD";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c256";
+               reg = <0x50>;
+               pagesize = <64>;
+               vcc-supply = <&buck4>;
+       };
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec1_con: connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       op-sink-microwatt = <15000000>;
+                       power-role = "dual";
+                       self-powered;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                       PDO_VAR(5000, 20000, 3000)>;
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "sink";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       pcf2131: rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+       };
+};
+
+&lpuart1 { /* console */
+       pinctrl-0 = <&pinctrl_uart1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&lpuart5 {
+       pinctrl-0 = <&pinctrl_uart5>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       uart-has-rtscts;
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+               device-wakeup-gpios = <&pcal6408 3 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&pcal6524 19 GPIO_ACTIVE_LOW>;
+               vcc-supply = <&reg_usdhc3_vmmc>;
+       };
+};
+
+&mqs1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_mqs1>;
+       clocks = <&clk IMX93_CLK_MQS1_GATE>;
+       clock-names = "mclk";
+       status = "okay";
+};
+
+&sai1 {
+       #sound-dai-cells = <0>;
+       clocks = <&clk IMX93_CLK_SAI1_IPG>, <&clk IMX93_CLK_DUMMY>,
+                <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
+                <&clk IMX93_CLK_DUMMY>, <&clk IMX93_CLK_AUDIO_PLL>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k";
+       assigned-clocks = <&clk IMX93_CLK_SAI1>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <24576000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
+&usbotg1 {
+       adp-disable;
+       disable-over-current;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       usb-role-switch;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usbotg2 {
+       disable-over-current;
+       dr_mode = "host";
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       status = "okay";
+};
+
+&usdhc1 {
+       bus-width = <8>;
+       non-removable;
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       vmmc-supply = <&buck4>;
+       status = "okay";
+};
+
+&usdhc2 {
+       bus-width = <4>;
+       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
+       no-mmc;
+       no-sdio;
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
+
+&usdhc3 {
+       bus-width = <4>;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       non-removable;
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       pinctrl-3 = <&pinctrl_usdhc3_sleep>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       status = "okay";
+};
+
+&wdog3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET1_MDC__ENET_QOS_MDC                        0x57e
+                       MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO                      0x57e
+                       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
+                       MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK  0x58e
+                       MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL            0x57e
+                       MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0                  0x57e
+                       MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1                  0x57e
+                       MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2                  0x57e
+                       MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3                  0x57e
+                       MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK  0x58e
+                       MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL            0x57e
+               >;
+       };
+
+       pinctrl_eqos_sleep: eqossleepgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET1_MDC__GPIO4_IO00                  0x31e
+                       MX93_PAD_ENET1_MDIO__GPIO4_IO01                 0x31e
+                       MX93_PAD_ENET1_RD0__GPIO4_IO10                  0x31e
+                       MX93_PAD_ENET1_RD1__GPIO4_IO11                  0x31e
+                       MX93_PAD_ENET1_RD2__GPIO4_IO12                  0x31e
+                       MX93_PAD_ENET1_RD3__GPIO4_IO13                  0x31e
+                       MX93_PAD_ENET1_RXC__GPIO4_IO09                  0x31e
+                       MX93_PAD_ENET1_RX_CTL__GPIO4_IO08               0x31e
+                       MX93_PAD_ENET1_TD0__GPIO4_IO05                  0x31e
+                       MX93_PAD_ENET1_TD1__GPIO4_IO04                  0x31e
+                       MX93_PAD_ENET1_TD2__GPIO4_IO03                  0x31e
+                       MX93_PAD_ENET1_TD3__GPIO4_IO02                  0x31e
+                       MX93_PAD_ENET1_TXC__GPIO4_IO07                  0x31e
+                       MX93_PAD_ENET1_TX_CTL__GPIO4_IO06               0x31e
+               >;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET2_MDC__ENET1_MDC                   0x57e
+                       MX93_PAD_ENET2_MDIO__ENET1_MDIO                 0x57e
+                       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
+                       MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC             0x58e
+                       MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL       0x57e
+                       MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0             0x57e
+                       MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1             0x57e
+                       MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2             0x57e
+                       MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3             0x57e
+                       MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC             0x58e
+                       MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL       0x57e
+               >;
+       };
+
+       pinctrl_fec_sleep: fecsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET2_MDC__GPIO4_IO14                  0x51e
+                       MX93_PAD_ENET2_MDIO__GPIO4_IO15                 0x51e
+                       MX93_PAD_ENET2_RD0__GPIO4_IO24                  0x51e
+                       MX93_PAD_ENET2_RD1__GPIO4_IO25                  0x51e
+                       MX93_PAD_ENET2_RD2__GPIO4_IO26                  0x51e
+                       MX93_PAD_ENET2_RD3__GPIO4_IO27                  0x51e
+                       MX93_PAD_ENET2_RXC__GPIO4_IO23                  0x51e
+                       MX93_PAD_ENET2_RX_CTL__GPIO4_IO22               0x51e
+                       MX93_PAD_ENET2_TD0__GPIO4_IO19                  0x51e
+                       MX93_PAD_ENET2_TD1__GPIO4_IO18                  0x51e
+                       MX93_PAD_ENET2_TD2__GPIO4_IO17                  0x51e
+                       MX93_PAD_ENET2_TD3__GPIO4_IO16                  0x51e
+                       MX93_PAD_ENET2_TXC__GPIO4_IO21                  0x51e
+                       MX93_PAD_ENET2_TX_CTL__GPIO4_IO20               0x51e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO25__CAN2_TX                     0x139e
+                       MX93_PAD_GPIO_IO27__CAN2_RX                     0x139e
+               >;
+       };
+
+       pinctrl_flexcan2_sleep: flexcan2sleepgrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO25__GPIO2_IO25                  0x31e
+                       MX93_PAD_GPIO_IO27__GPIO2_IO27                  0x31e
+               >;
+       };
+
+       pinctrl_lpi2c1: lpi2c1grp {
+               fsl,pins = <
+                       MX93_PAD_I2C1_SCL__LPI2C1_SCL                   0x40000b9e
+                       MX93_PAD_I2C1_SDA__LPI2C1_SDA                   0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       MX93_PAD_I2C2_SCL__LPI2C2_SCL                   0x40000b9e
+                       MX93_PAD_I2C2_SDA__LPI2C2_SDA                   0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x40000b9e
+               >;
+       };
+
+       pinctrl_mqs1: mqs1grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_CLK__MQS1_LEFT             0x31e
+                       MX93_PAD_PDM_BIT_STREAM0__MQS1_RIGHT    0x31e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x31e
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_RESET_B__GPIO3_IO07                0x31e
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX93_PAD_UART1_RXD__LPUART1_RX                  0x31e
+                       MX93_PAD_UART1_TXD__LPUART1_TX                  0x31e
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX           0x31e
+                       MX93_PAD_DAP_TDI__LPUART5_RX                    0x31e
+                       MX93_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B           0x31e
+                       MX93_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B          0x31e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x1582
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x40001382
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x40001382
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x40001382
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x40001382
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x40001382
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x40001382
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x40001382
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x40001382
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x40001382
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x1582
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x158e
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x4000138e
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000138e
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000138e
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000138e
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000138e
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000138e
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000138e
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000138e
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000138e
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x158e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x15fe
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x400013fe
+                       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
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
+               >;
+       };
+
+       pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x1582
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x40001382
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x40001382
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x40001382
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x40001382
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x40001382
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x158e
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x4000138e
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x4000138e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x4000138e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x4000138e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x4000138e
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x15fe
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x400013fe
+                       MX93_PAD_SD2_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
+               >;
+       };
+
+       pinctrl_usdhc2_sleep: usdhc2-sleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__GPIO3_IO01            0x51e
+                       MX93_PAD_SD2_CMD__GPIO3_IO02            0x51e
+                       MX93_PAD_SD2_DATA0__GPIO3_IO03          0x51e
+                       MX93_PAD_SD2_DATA1__GPIO3_IO04          0x51e
+                       MX93_PAD_SD2_DATA2__GPIO3_IO05          0x51e
+                       MX93_PAD_SD2_DATA3__GPIO3_IO06          0x51e
+                       MX93_PAD_SD2_VSELECT__GPIO3_IO19        0x51e
+               >;
+       };
+
+               /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x1582
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x40001382
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x40001382
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x40001382
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x40001382
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x40001382
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x158e
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x4000138e
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x4000138e
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x4000138e
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x4000138e
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x4000138e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x15fe
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x400013fe
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x400013fe
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x400013fe
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x400013fe
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x400013fe
+               >;
+       };
+
+       pinctrl_usdhc3_sleep: usdhc3grpsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__GPIO3_IO20            0x31e
+                       MX93_PAD_SD3_CMD__GPIO3_IO21            0x31e
+                       MX93_PAD_SD3_DATA0__GPIO3_IO22          0x31e
+                       MX93_PAD_SD3_DATA1__GPIO3_IO23          0x31e
+                       MX93_PAD_SD3_DATA2__GPIO3_IO24          0x31e
+                       MX93_PAD_SD3_DATA3__GPIO3_IO25          0x31e
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY       0x31e
+               >;
+       };
+};
index f9eebd27d640cf467794afea2c079231414d74d8..61843b2c1b1b8f89ebe59c332ccaba41a16ddd9a 100644 (file)
                serial0 = &lpuart1;
        };
 
+       bt_sco_codec: bt-sco-codec {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
                regulator-max-microvolt = <1800000>;
        };
 
+       sound-bt-sco {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "bt-sco-audio";
+               simple-audio-card,format = "dsp_a";
+               simple-audio-card,bitclock-inversion;
+               simple-audio-card,frame-master = <&btcpu>;
+               simple-audio-card,bitclock-master = <&btcpu>;
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+
+               btcpu: simple-audio-card,cpu {
+                       sound-dai = <&sai1>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+       };
+
+       sound-xcvr {
+               compatible = "fsl,imx-audio-card";
+               model = "imx-audio-xcvr";
+
+               pri-dai-link {
+                       link-name = "XCVR PCM";
+
+                       cpu {
+                               sound-dai = <&xcvr>;
+                       };
+               };
+       };
+
        usdhc3_pwrseq: usdhc3_pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
        status = "okay";
 };
 
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&clk IMX93_CLK_SAI1>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &usbotg1 {
        dr_mode = "otg";
        hnp-disable;
        status = "okay";
 };
 
+&xcvr {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spdif>;
+       assigned-clocks = <&clk IMX93_CLK_SPDIF>,
+                         <&clk IMX93_CLK_AUDIO_XCVR>;
+       assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>,
+                                <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+       assigned-clock-rates = <12288000>, <200000000>;
+       status = "okay";
+};
+
 &iomuxc {
        pinctrl_flexcan1: flexcan1grp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       MX93_PAD_SAI1_TXC__SAI1_TX_BCLK         0x31e
+                       MX93_PAD_SAI1_TXFS__SAI1_TX_SYNC        0x31e
+                       MX93_PAD_SAI1_TXD0__SAI1_TX_DATA00      0x31e
+                       MX93_PAD_SAI1_RXD0__SAI1_RX_DATA00      0x31e
+               >;
+       };
+
+       pinctrl_spdif: spdifgrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO22__SPDIF_IN            0x31e
+                       MX93_PAD_GPIO_IO23__SPDIF_OUT           0x31e
+               >;
+       };
+
        pinctrl_usdhc2_gpio: usdhc2gpiogrp {
                fsl,pins = <
                        MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
diff --git a/src/arm64/freescale/imx93-9x9-qsb-can1.dtso b/src/arm64/freescale/imx93-9x9-qsb-can1.dtso
new file mode 100644 (file)
index 0000000..0bf1e9d
--- /dev/null
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2025 NXP
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx93-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       flexcan_phy: can-phy {
+               compatible = "nxp,tja1057";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&pcal6524 23 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&flexcan1 {
+       phys = <&flexcan_phy>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_CLK__CAN1_TX               0x139e
+                       MX93_PAD_PDM_BIT_STREAM0__CAN1_RX       0x139e
+               >;
+       };
+};
+
+/* micfi1 use the A port, conflict with can1 */
+&micfil {
+       status = "disabled";
+};
+
+&pcal6524 {
+       /*
+        * mic-can-sel-hog have property 'output-low', dt overlay don't
+        * support /delete-property/. Both 'output-low' and 'output-high'
+        * will be exist under hog nodes if overlay file set 'output-high'.
+        * Workaround is disable this hog and create new hog with
+        * 'output-high'.
+        */
+       mic-can-sel-hog {
+               status = "disabled";
+       };
+
+       /*
+        * Config the MIC/CAN_SEL to high, chose B
+        * port, connect to CAN.
+        */
+       mic-can-high-sel-hog {
+               gpio-hog;
+               gpios = <0x11 0x00>;
+               output-high;
+       };
+};
index 0852067eab2cb8d2f1bbf0d8c2595a5002f950cc..197c8f8b7f669655e7cd583db21f059392db9893 100644 (file)
        pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
        bus-width = <8>;
        non-removable;
+       fsl,tuning-step = <1>;
        status = "okay";
 };
 
        vmmc-supply = <&reg_usdhc2_vmmc>;
        bus-width = <4>;
        no-mmc;
+       fsl,tuning-step = <1>;
        status = "okay";
 };
 
index 3a23e2eb9febe8d7583b54282919db1b52dedb10..ce34a296495c45bcdad60b1dd27553c713f240e0 100644 (file)
        /* enable SION for data and cmd pad due to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
-                       /* PD | FSEL 3 | DSE X5 */
-                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x5be
+                       /* PD | FSEL 3 | DSE X4 */
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x59e
                        /* HYS | FSEL 0 | no drive */
                        MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x1000
-                       /* HYS | FSEL 3 | X5 */
-                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x400011be
-                       /* HYS | FSEL 3 | X4 */
-                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000119e
-                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000119e
-                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000119e
-                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000119e
-                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000119e
-                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000119e
-                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000119e
-                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000119e
+                       /* HYS | PU | FSEL 3 | DSE X4 */
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x4000139e
+                       /* HYS | PU | FSEL 3 | DSE X4 */
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000139e
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000139e
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000139e
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000139e
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000139e
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000139e
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000139e
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000139e
                >;
        };
 
index c789c1f24bdce929ccf6bb19d92ef260b22a346f..c0842fb3cfa33a2b8c2942cf5f2bd8e74385c239 100644 (file)
@@ -20,6 +20,8 @@
                gpio0 = &gpio1;
                gpio1 = &gpio2;
                gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &pca9534;
                i2c0 = &lpi2c1;
                i2c1 = &lpi2c2;
                i2c2 = &lpi2c3;
        sda-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 
+       /* Capacitive touch controller */
+       ft5x06_ts: touchscreen@38 {
+               compatible = "edt,edt-ft5206";
+               reg = <0x38>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_captouch>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+               touchscreen-size-x = <800>;
+               touchscreen-size-y = <480>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+               wakeup-source;
+       };
+
        /* DS1337 RTC module */
        rtc@68 {
                compatible = "dallas,ds1337";
                #gpio-cells = <2>;
                wakeup-source;
        };
+
+       /* USB Type-C Controller */
+       ptn5150: typec@3d {
+               compatible = "nxp,ptn5150";
+               reg = <0x3d>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ptn5150>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <10 IRQ_TYPE_NONE>;
+
+               port {
+                       typec1_dr_sw: endpoint {
+                               remote-endpoint = <&usb1_drd_sw>;
+                       };
+               };
+       };
 };
 
 /* Console */
        status = "okay";
 };
 
+&lpspi6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi6>;
+       cs-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
 /* J18.7, J18.9 */
 &lpuart6 {
        pinctrl-names = "default";
        status = "okay";
 };
 
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       disable-over-current;
+       status = "okay";
+};
+
 /* SD */
 &usdhc2 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
 };
 
 &iomuxc {
+       pinctrl_captouch: captouchgrp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO25__GPIO2_IO25                  0x31e
+               >;
+       };
+
        pinctrl_fec: fecgrp {
                fsl,pins = <
                        MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0             0x57e
                >;
        };
 
+        pinctrl_lpspi6: lpspi6grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO00__GPIO2_IO00                  0x31e
+                       MX93_PAD_GPIO_IO01__LPSPI6_SIN                  0x31e
+                       MX93_PAD_GPIO_IO02__LPSPI6_SOUT                 0x31e
+                       MX93_PAD_GPIO_IO03__LPSPI6_SCK                  0x31e
+               >;
+       };
+
        pinctrl_pca9534: pca9534grp {
                fsl,pins = <
                        MX93_PAD_CCM_CLKO1__GPIO3_IO26          0x31e
                >;
        };
 
+       pinctrl_ptn5150: ptn5150grp {
+               fsl,pins = <
+                       MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10            0x31e
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX93_PAD_UART1_RXD__LPUART1_RX                  0x31e
index 2dc8b18ae91e5ca1ed188b7bf19b36f40e39cb68..24063bf8183d6196f4e58f2f55b49ab70a3ce8c1 100644 (file)
                                regulator-ramp-delay = <3125>;
                        };
 
-                       buck4: BUCK4{
+                       buck4: BUCK4 {
                                regulator-name = "BUCK4";
                                regulator-min-microvolt = <600000>;
                                regulator-max-microvolt = <3400000>;
                                regulator-always-on;
                        };
 
-                       buck5: BUCK5{
+                       buck5: BUCK5 {
                                regulator-name = "BUCK5";
                                regulator-min-microvolt = <600000>;
                                regulator-max-microvolt = <3400000>;
index 73184f03f8a3e134abc03dbd22ea24eff17be79b..d2f31c8caf6eb781f0cf4d245d8bc67d8e7b7206 100644 (file)
                        compatible = "fsl,aips-bus", "simple-bus";
                        reg = <0 0x42800000 0 0x800000>;
                        ranges = <0x42800000 0x0 0x42800000 0x800000>,
-                                <0x28000000 0x0 0x28000000 0x1000000>;
+                                <0x24000000 0x0 0x24000000 0xc000000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
 
                                #mbox-cells = <2>;
                                status = "disabled";
                        };
+
+                       xspi1: spi@42b90000 {
+                               compatible = "nxp,imx94-xspi";
+                               reg = <0x42b90000 0x50000>, <0x28000000 0x08000000>;
+                               reg-names = "base", "mmap";
+                               interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>,         // EENV0
+                                            <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>,         // EENV1
+                                            <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>,         // EENV2
+                                            <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,         // EENV3
+                                            <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;         // EENV4
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX94_CLK_XSPI1>;
+                               clock-names = "per";
+                               status = "disabled";
+                       };
+
+                       xspi2: spi@42be0000 {
+                               compatible = "nxp,imx94-xspi";
+                               reg = <0x42be0000 0x50000>, <0x24000000 0x04000000>;
+                               reg-names = "base", "mmap";
+                               interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,         // EENV0
+                                            <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,         // EENV1
+                                            <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,         // EENV2
+                                            <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,         // EENV3
+                                            <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;         // EENV4
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX94_CLK_XSPI2>;
+                               clock-names = "per";
+                               status = "disabled";
+                       };
                };
 
                gpio2: gpio@43810000 {
                        };
                };
 
+               netc_blk_ctrl: system-controller@4ceb0000 {
+                       compatible = "nxp,imx94-netc-blk-ctrl";
+                       reg = <0x0 0x4ceb0000 0x0 0x10000>,
+                             <0x0 0x4cec0000 0x0 0x10000>,
+                             <0x0 0x4c810000 0x0 0x7C>;
+                       reg-names = "ierb", "prb", "netcmix";
+                       ranges;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       clocks = <&scmi_clk IMX94_CLK_ENET>;
+                       clock-names = "ipg";
+                       power-domains = <&scmi_devpd IMX94_PD_NETC>;
+                       status = "disabled";
+
+                       netc_bus0: pcie@4ca00000 {
+                               compatible = "pci-host-ecam-generic";
+                               reg = <0x0 0x4ca00000 0x0 0x100000>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               linux,pci-domain = <0>;
+                               bus-range = <0x0 0x0>;
+                               msi-map = <0x00 &its 0x68 0x1>, //ENETC3 PF
+                                         <0x01 &its 0x61 0x1>, //Timer0
+                                         <0x02 &its 0x64 0x1>, //Switch
+                                         <0x40 &its 0x69 0x1>, //ENETC3 VF0
+                                         <0x80 &its 0x6a 0x1>, //ENETC3 VF1
+                                         <0xC0 &its 0x6b 0x1>; //ENETC3 VF2
+                                        /* Switch BAR0 - non-prefetchable memory */
+                               ranges = <0x02000000 0x0 0x4cc00000  0x0 0x4cc00000  0x0 0x80000
+                                        /* ENETC 3 and Timer 0 BAR0 - non-prefetchable memory */
+                                        0x02000000 0x0 0x4cd40000  0x0 0x4cd40000  0x0 0x60000
+                                        /* Switch and Timer 0 BAR2 - prefetchable memory */
+                                        0x42000000 0x0 0x4ce00000  0x0 0x4ce00000  0x0 0x20000
+                                        /* ENETC 3 VF0-2 BAR0 - non-prefetchable memory */
+                                        0x02000000 0x0 0x4ce50000  0x0 0x4ce50000  0x0 0x30000
+                                        /* ENETC 3 VF0-2 BAR2 - prefetchable memory */
+                                        0x42000000 0x0 0x4ce80000  0x0 0x4ce80000  0x0 0x30000>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0 0 0 7>;
+                               interrupt-map = <0000 0 0 1 &gic 0 0
+                                                GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+
+                               enetc3: ethernet@0,0 {
+                                       compatible = "pci1131,e110";
+                                       reg = <0x0 0 0 0 0>;
+                                       phy-mode = "internal";
+                                       status = "disabled";
+
+                                       fixed-link {
+                                               speed = <2500>;
+                                               full-duplex;
+                                               pause;
+                                       };
+                               };
+
+                               netc_timer0: ptp-timer@0,1 {
+                                       compatible = "pci1131,ee02";
+                                       reg = <0x100 0 0 0 0>;
+                                       status = "disabled";
+                               };
+
+                               rcec@1,0 {
+                                       reg = <0x800 0 0 0 0>;
+                                       interrupts = <1>;
+                               };
+                       };
+
+                       netc_bus1: pcie@4cb00000 {
+                               compatible = "pci-host-ecam-generic";
+                               reg = <0x0 0x4cb00000 0x0 0x100000>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               linux,pci-domain = <1>;
+                               bus-range = <0x1 0x1>;
+                               msi-map = <0x100 &its 0x65 0x1>, //ENETC0 PF
+                                         <0x101 &its 0x62 0x1>, //Timer1
+                                         <0x140 &its 0x66 0x1>, //ENETC1 PF
+                                         <0x180 &its 0x67 0x1>, //ENETC2 PF
+                                         <0x181 &its 0x63 0x1>, //Timer2
+                                         <0x1C0 &its 0x60 0x1>; //EMDIO
+                                        /* ENETC 0-2 BAR0 - non-prefetchable memory */
+                               ranges = <0x02000000 0x0 0x4cC80000  0x0 0x4cc80000  0x0 0xc0000
+                                        /* Timer 1-2 and EMDIO BAR0 - non-prefetchable memory */
+                                        0x02000000 0x0 0x4cda0000  0x0 0x4cda0000  0x0 0x60000
+                                        /* Timer 1-2 and EMDIO BAR2 - prefetchable memory */
+                                        0x42000000 0x0 0x4ce20000  0x0 0x4ce20000  0x0 0x30000>;
+                               #interrupt-cells = <1>;
+                               interrupt-map-mask = <0 0 0 7>;
+                               interrupt-map = <0000 0 0 1 &gic 0 0
+                                                GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
+
+                               enetc0: ethernet@0,0 {
+                                       compatible = "pci1131,e101";
+                                       reg = <0x10000 0 0 0 0>;
+                                       status = "disabled";
+                               };
+
+                               netc_timer1: ptp-timer@0,1 {
+                                       compatible = "pci1131,ee02";
+                                       reg = <0x10100 0 0 0 0>;
+                                       status = "disabled";
+                               };
+
+                               rcec@1,0 {
+                                       reg = <0x10800 0 0 0 0>;
+                                       interrupts = <1>;
+                               };
+
+                               enetc1: ethernet@8,0 {
+                                       compatible = "pci1131,e101";
+                                       reg = <0x14000 0 0 0 0>;
+                                       status = "disabled";
+                               };
+
+                               enetc2: ethernet@10,0 {
+                                       compatible = "pci1131,e101";
+                                       reg = <0x18000 0 0 0 0>;
+                                       status = "disabled";
+                               };
+
+                               netc_timer2: ptp-timer@10,1 {
+                                       compatible = "pci1131,ee02";
+                                       reg = <0x18100 0 0 0 0>;
+                                       status = "disabled";
+                               };
+
+                               netc_emdio: mdio@18,0 {
+                                       compatible = "pci1131,ee00";
+                                       reg = <0x1c000 0 0 0 0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+
                ddr-pmu@4e090dc0 {
                        compatible = "fsl,imx94-ddr-pmu", "fsl,imx93-ddr-pmu";
                        reg = <0x0 0x4e090dc0 0x0 0x200>;
index c8c3eff9df1a23c52e74bf2bc5d4ba543bb5a65b..31fa9675cee13709d6774ea3a8464168b7fead44 100644 (file)
@@ -12,6 +12,9 @@
        model = "NXP i.MX943 EVK board";
 
        aliases {
+               ethernet0 = &enetc3;
+               ethernet1 = &enetc1;
+               ethernet2 = &enetc2;
                i2c2 = &lpi2c3;
                i2c3 = &lpi2c4;
                i2c5 = &lpi2c6;
                #sound-dai-cells = <1>;
        };
 
+       flexcan2_phy: can-phy0 {
+               compatible = "nxp,tjr1443";
+               #phy-cells = <0>;
+               enable-gpios = <&pcal6416_i2c6_u50 3 GPIO_ACTIVE_HIGH>;
+               max-bitrate = <8000000>;
+               standby-gpios = <&pcal6416_i2c6_u50 4 GPIO_ACTIVE_LOW>;
+       };
+
+       flexcan4_phy: can-phy1 {
+               compatible = "nxp,tjr1443";
+               #phy-cells = <0>;
+               enable-gpios = <&pcal6416_i2c3_u171 0 GPIO_ACTIVE_HIGH>;
+               max-bitrate = <8000000>;
+               standby-gpios = <&pcal6416_i2c3_u171 1 GPIO_ACTIVE_LOW>;
+       };
+
        chosen {
                stdout-path = &lpuart1;
        };
        };
 };
 
+&enetc1 {
+       clocks = <&scmi_clk IMX94_CLK_MAC4>;
+       clock-names = "ref";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eth3>;
+       phy-handle = <&ethphy3>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+};
+
+&enetc2 {
+       clocks = <&scmi_clk IMX94_CLK_MAC5>;
+       clock-names = "ref";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eth4>;
+       phy-handle = <&ethphy4>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+};
+
+&enetc3 {
+       status = "okay";
+};
+
+&flexcan2 {
+       phys = <&flexcan2_phy>;
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&flexcan4 {
+       phys = <&flexcan4_phy>;
+       pinctrl-0 = <&pinctrl_flexcan4>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &lpi2c3 {
        clock-frequency = <400000>;
        pinctrl-0 = <&pinctrl_lpi2c3>;
        status = "okay";
 };
 
+&netc_blk_ctrl {
+       assigned-clocks = <&scmi_clk IMX94_CLK_MAC4>,
+                         <&scmi_clk IMX94_CLK_MAC5>;
+       assigned-clock-parents = <&scmi_clk IMX94_CLK_SYSPLL1_PFD0>,
+                                <&scmi_clk IMX94_CLK_SYSPLL1_PFD0>;
+       assigned-clock-rates = <250000000>, <250000000>;
+       status = "okay";
+};
+
+&netc_emdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_emdio>;
+       status = "okay";
+
+       ethphy3: ethernet-phy@6 {
+               reg = <0x6>;
+               realtek,clkout-disable;
+       };
+
+       ethphy4: ethernet-phy@7 {
+               reg = <0x7>;
+               realtek,clkout-disable;
+       };
+};
+
+&netc_timer0 {
+       status = "okay";
+};
+
+&netc_timer1 {
+       status = "okay";
+};
+
 &sai1 {
        assigned-clocks = <&scmi_clk IMX94_CLK_AUDIOPLL1_VCO>,
                          <&scmi_clk IMX94_CLK_AUDIOPLL2_VCO>,
 };
 
 &scmi_iomuxc {
+       pinctrl_emdio: emdiogrp {
+               fsl,pins = <
+                       IMX94_PAD_ETH4_MDC_GPIO1__NETC_EMDC             0x57e
+                       IMX94_PAD_ETH4_MDIO_GPIO2__NETC_EMDIO           0x97e
+               >;
+       };
+
+       pinctrl_eth3: eth3grp {
+               fsl,pins = <
+                       IMX94_PAD_ETH3_TXD3__NETC_PINMUX_ETH3_TXD3              0x50e
+                       IMX94_PAD_ETH3_TXD2__NETC_PINMUX_ETH3_TXD2              0x50e
+                       IMX94_PAD_ETH3_TXD1__NETC_PINMUX_ETH3_TXD1              0x50e
+                       IMX94_PAD_ETH3_TXD0__NETC_PINMUX_ETH3_TXD0              0x50e
+                       IMX94_PAD_ETH3_TX_CTL__NETC_PINMUX_ETH3_TX_CTL          0x51e
+                       IMX94_PAD_ETH3_TX_CLK__NETC_PINMUX_ETH3_TX_CLK          0x59e
+                       IMX94_PAD_ETH3_RX_CTL__NETC_PINMUX_ETH3_RX_CTL          0x51e
+                       IMX94_PAD_ETH3_RX_CLK__NETC_PINMUX_ETH3_RX_CLK          0x59e
+                       IMX94_PAD_ETH3_RXD0__NETC_PINMUX_ETH3_RXD0              0x51e
+                       IMX94_PAD_ETH3_RXD1__NETC_PINMUX_ETH3_RXD1              0x51e
+                       IMX94_PAD_ETH3_RXD2__NETC_PINMUX_ETH3_RXD2              0x51e
+                       IMX94_PAD_ETH3_RXD3__NETC_PINMUX_ETH3_RXD3              0x51e
+               >;
+       };
+
+       pinctrl_eth4: eth4grp {
+               fsl,pins = <
+                       IMX94_PAD_ETH4_TXD3__NETC_PINMUX_ETH4_TXD3              0x50e
+                       IMX94_PAD_ETH4_TXD2__NETC_PINMUX_ETH4_TXD2              0x50e
+                       IMX94_PAD_ETH4_TXD1__NETC_PINMUX_ETH4_TXD1              0x50e
+                       IMX94_PAD_ETH4_TXD0__NETC_PINMUX_ETH4_TXD0              0x50e
+                       IMX94_PAD_ETH4_TX_CTL__NETC_PINMUX_ETH4_TX_CTL          0x51e
+                       IMX94_PAD_ETH4_TX_CLK__NETC_PINMUX_ETH4_TX_CLK          0x59e
+                       IMX94_PAD_ETH4_RX_CTL__NETC_PINMUX_ETH4_RX_CTL          0x51e
+                       IMX94_PAD_ETH4_RX_CLK__NETC_PINMUX_ETH4_RX_CLK          0x59e
+                       IMX94_PAD_ETH4_RXD0__NETC_PINMUX_ETH4_RXD0              0x51e
+                       IMX94_PAD_ETH4_RXD1__NETC_PINMUX_ETH4_RXD1              0x51e
+                       IMX94_PAD_ETH4_RXD2__NETC_PINMUX_ETH4_RXD2              0x51e
+                       IMX94_PAD_ETH4_RXD3__NETC_PINMUX_ETH4_RXD3              0x51e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       IMX94_PAD_GPIO_IO34__CAN2_TX            0x39e
+                       IMX94_PAD_GPIO_IO35__CAN2_RX            0x39e
+               >;
+       };
+
+       pinctrl_flexcan4: flexcan4grp {
+               fsl,pins = <
+                       IMX94_PAD_GPIO_IO36__CAN4_TX            0x39e
+                       IMX94_PAD_GPIO_IO37__CAN4_RX            0x39e
+               >;
+       };
 
        pinctrl_ioexpander_int2: ioexpanderint2grp {
                fsl,pins = <
                        IMX94_PAD_SD2_RESET_B__GPIO4_IO27       0x31e
                >;
        };
+
+       pinctrl_xspi1: xspi1grp {
+               fsl,pins = <
+                       IMX94_PAD_XSPI1_SCLK__XSPI1_A_SCLK      0x3fe
+                       IMX94_PAD_XSPI1_SS0_B__XSPI1_A_SS0_B    0x3fe
+                       IMX94_PAD_XSPI1_DATA0__XSPI1_A_DATA0    0x3fe
+                       IMX94_PAD_XSPI1_DATA1__XSPI1_A_DATA1    0x3fe
+                       IMX94_PAD_XSPI1_DATA2__XSPI1_A_DATA2    0x3fe
+                       IMX94_PAD_XSPI1_DATA3__XSPI1_A_DATA3    0x3fe
+                       IMX94_PAD_XSPI1_DATA4__XSPI1_A_DATA4    0x3fe
+                       IMX94_PAD_XSPI1_DATA5__XSPI1_A_DATA5    0x3fe
+                       IMX94_PAD_XSPI1_DATA6__XSPI1_A_DATA6    0x3fe
+                       IMX94_PAD_XSPI1_DATA7__XSPI1_A_DATA7    0x3fe
+                       IMX94_PAD_XSPI1_DQS__XSPI1_A_DQS        0x3fe
+               >;
+       };
 };
 
 &usdhc1 {
        fsl,ext-reset-output;
        status = "okay";
 };
+
+&xspi1 {
+       pinctrl-0 = <&pinctrl_xspi1>;
+       pinctrl-1 = <&pinctrl_xspi1>;
+       pinctrl-names = "default", "sleep";
+       status = "okay";
+
+       mt35xu512aba: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reset-gpios = <&pcal6416_i2c6_u50 15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+               spi-max-frequency = <200000000>;
+               spi-rx-bus-width = <8>;
+               spi-tx-bus-width = <8>;
+       };
+};
index c1e245ecea9c16078cf5b59ac527721e156cf939..d4184fb8b28cd8bf1996f777bd8c08f5dccb742c 100644 (file)
                gpio = <&pcal6524 0 GPIO_ACTIVE_LOW>;
        };
 
-       reg_can2_stby: regulator-can2-stby {
-               compatible = "regulator-fixed";
-               regulator-max-microvolt = <3300000>;
-               regulator-min-microvolt = <3300000>;
-               regulator-name = "can2-stby";
-               gpio = <&pcal6524 14 GPIO_ACTIVE_LOW>;
+       flexcan2_phy: can-phy {
+               compatible = "nxp,tja1051";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
        };
 
        reg_m2_pwr: regulator-m2-pwr {
 
                linux_cma: linux,cma {
                        compatible = "shared-dma-pool";
-                       alloc-ranges = <0 0x80000000 0 0x7F000000>;
+                       alloc-ranges = <0 0x80000000 0 0x7f000000>;
                        reusable;
                        size = <0 0x3c000000>;
                        linux,cma-default;
                        no-map;
                };
 
-               vpu_boot: vpu_boot@a0000000 {
+               vpu_boot: vpu-boot@a0000000 {
                        reg = <0 0xa0000000 0 0x100000>;
                        no-map;
                };
 &flexcan2 {
        pinctrl-0 = <&pinctrl_flexcan2>;
        pinctrl-names = "default";
-       xceiver-supply = <&reg_can2_stby>;
+       phys = <&flexcan2_phy>;
        status = "okay";
 };
 
diff --git a/src/arm64/freescale/imx95-15x15-frdm.dts b/src/arm64/freescale/imx95-15x15-frdm.dts
new file mode 100644 (file)
index 0000000..ca1c496
--- /dev/null
@@ -0,0 +1,964 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2025 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/phy/phy-imx8-pcie.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/usb/pd.h>
+#include "imx95.dtsi"
+
+#define BRD_SM_CTRL_SD3_WAKE           0x8000  /*!< PCAL6408A-0 */
+#define BRD_SM_CTRL_PCIE1_WAKE         0x8001  /*!< PCAL6408A-4 */
+#define BRD_SM_CTRL_BT_WAKE            0x8002  /*!< PCAL6408A-5 */
+#define BRD_SM_CTRL_PCIE2_WAKE         0x8003  /*!< PCAL6408A-6 */
+#define BRD_SM_CTRL_BUTTON             0x8004  /*!< PCAL6408A-7 */
+
+/ {
+       compatible = "fsl,imx95-15x15-frdm", "fsl,imx95";
+       model = "NXP i.MX95 15X15 FRDM board";
+
+       aliases {
+               ethernet0 = &enetc_port0;
+               ethernet1 = &enetc_port1;
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+               i2c0 = &lpi2c1;
+               i2c1 = &lpi2c2;
+               i2c2 = &lpi2c3;
+               i2c3 = &lpi2c4;
+               i2c4 = &lpi2c5;
+               i2c5 = &lpi2c6;
+               i2c6 = &lpi2c7;
+               i2c7 = &lpi2c8;
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               mmc2 = &usdhc3;
+               serial0 = &lpuart1;
+               serial4 = &lpuart5;
+       };
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               stdout-path = &lpuart1;
+       };
+
+       dmic: dmic {
+               compatible = "dmic-codec";
+               #sound-dai-cells = <0>;
+               num-channels = <2>;
+       };
+
+       flexcan2_phy: can-phy {
+               compatible = "nxp,tja1051";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               /*
+                * Shared SILENT GPIO: CAN PHYs enter silent mode
+                * together (hardware design).
+                */
+               silent-gpios = <&pcal6524 7 GPIO_ACTIVE_HIGH>;
+       };
+
+       flexcan5_phy: can-phy {
+               compatible = "nxp,tja1051";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               silent-gpios = <&pcal6524 7 GPIO_ACTIVE_HIGH>;
+       };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "+V1.8_SW";
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_SW";
+       };
+
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "+V5.0_SW";
+       };
+
+       reg_ext_3v3: regulator-ext-3v3 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VCCEXT_3V3";
+       };
+
+       reg_ext_5v: regulator-ext-5v {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "VCCEXT_5V";
+               gpio = <&pcal6524 12 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_m2_ekey_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "M.2-power-ekey";
+               gpio = <&pcal6524 16 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_m2_mkey_pwr: regulator-m2-mkey-pwr {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "M.2-mkey-power";
+               gpio = <&pcal6524 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               off-on-delay-us = <12000>;
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               pinctrl-names = "default";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VDD_SD2_3V3";
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "WLAN_EN";
+               vin-supply = <&reg_m2_ekey_pwr>;
+               gpio = <&pcal6524 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               /*
+                * IW612 wifi chip needs more delay than other wifi chips to complete
+                * the host interface initialization after power up, otherwise the
+                * internal state of IW612 may be unstable, resulting in the failure of
+                * the SDIO3.0 switch voltage.
+                */
+               startup-delay-us = <20000>;
+       };
+
+       reg_usb_vbus: regulator-vbus {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "USB_VBUS";
+               gpio = <&pcal6524 15 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "vref_1v8";
+       };
+
+       reserved-memory {
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               linux_cma: linux,cma {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0 0x80000000 0 0x7F000000>;
+                       reusable;
+                       size = <0 0x3c000000>;
+                       linux,cma-default;
+               };
+
+               vdev0vring0: memory@88000000 {
+                       reg = <0 0x88000000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev0vring1: memory@88008000 {
+                       reg = <0 0x88008000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev1vring0: memory@88010000 {
+                       reg = <0 0x88010000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev1vring1: memory@88018000 {
+                       reg = <0 0x88018000 0 0x8000>;
+                       no-map;
+               };
+
+               vdevbuffer: memory@88020000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x88020000 0 0x100000>;
+                       no-map;
+               };
+
+               rsc_table: memory@88220000 {
+                       reg = <0 0x88220000 0 0x1000>;
+                       no-map;
+               };
+
+               vpu_boot: memory@a0000000 {
+                       reg = <0 0xa0000000 0 0x100000>;
+                       no-map;
+               };
+       };
+
+       sound-micfil {
+               compatible = "fsl,imx-audio-card";
+               model = "micfil-audio";
+
+               pri-dai-link {
+                       link-name = "micfil hifi";
+                       format = "i2s";
+
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+
+                       codec {
+                               sound-dai = <&dmic>;
+                       };
+               };
+       };
+
+       usdhc3_pwrseq: usdhc3-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pcal6524 8 GPIO_ACTIVE_LOW>;
+       };
+
+       memory@80000000 {
+               reg = <0x0 0x80000000 0 0x80000000>;
+               device_type = "memory";
+       };
+};
+
+&adc1 {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+};
+
+&enetc_port0 {
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&pinctrl_enetc0>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&enetc_port1 {
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&pinctrl_enetc1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       pinctrl-names = "default";
+       phys = <&flexcan2_phy>;
+       status = "okay";
+};
+
+&flexcan5 {
+       pinctrl-0 = <&pinctrl_flexcan5>;
+       pinctrl-names = "default";
+       phys = <&flexcan5_phy>;
+       status = "okay";
+};
+
+&lpi2c2 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               #interrupt-cells = <2>;
+               interrupt-controller;
+               interrupt-parent = <&gpio5>;
+               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               pinctrl-names = "default";
+               gpio-line-names = "ENET1 PHY reset",
+                                 "ENET2 PHY reset",
+                                 "SPI3/GPIO select",
+                                 "UART3/GPIO select",
+                                 "CAN2&5/GPIO select",
+                                 "PWM/GPIO select",
+                                 "Watch dog enable",
+                                 "CAN1&2&5 silent",
+                                 "SDIO_nRST",
+                                 "WL_nDISABLE1",
+                                 "WL_nDISABLE2",
+                                 "M.2 Mkey NC06",
+                                 "EXT_5V0_PWR_EN",
+                                 "EXT_3V3_PWR_EN",
+                                 "Mkey power control",
+                                 "USB2 power control",
+                                 "Ekey power control",
+                                 "MIPI-DSICSI reset",
+                                 "MIPI-DSI IO2",
+                                 "MIPI-CSI reset",
+                                 "LVDS TP reset",
+                                 "LVDS BL enable",
+                                 "LVDS BL power enable",
+                                 "IT6263 reset";
+
+               lpspi-gpio-sel-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+
+               lpuart-gpio-sel-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+
+               can-gpio-sel-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+
+               pwm-gpio-sel-hog {
+                       gpio-hog;
+                       gpios = <5 GPIO_ACTIVE_HIGH>;
+                       output-high;
+               };
+       };
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&pinctrl_ptn5110>;
+               pinctrl-names = "default";
+
+               typec_con: connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       op-sink-microwatt = <15000000>;
+                       power-role = "dual";
+                       self-powered;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "sink";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec_con_hs: endpoint {
+                                               remote-endpoint = <&usb3_data_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       typec_con_ss: endpoint {
+                                               remote-endpoint = <&usb3_data_ss>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&lpi2c4 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&pinctrl_lpi2c4>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       pca9632: led-controller@62 {
+               compatible = "nxp,pca9632";
+               reg = <0x62>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               nxp,inverted-out;
+
+               led_backlight0: led@0 {
+                       reg = <0>;
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_BACKLIGHT;
+                       function-enumerator = <0>;
+               };
+
+               led_backlight1: led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_BACKLIGHT;
+                       function-enumerator = <1>;
+               };
+       };
+};
+
+&lpuart1 {
+       pinctrl-0 = <&pinctrl_uart1>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&lpuart5 {
+       pinctrl-0 = <&pinctrl_uart5>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
+&micfil {
+       assigned-clocks = <&scmi_clk IMX95_CLK_AUDIOPLL1_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2_VCO>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL1>,
+                         <&scmi_clk IMX95_CLK_AUDIOPLL2>,
+                         <&scmi_clk IMX95_CLK_PDM>;
+       assigned-clock-parents = <0>, <0>, <0>, <0>,
+                                <&scmi_clk IMX95_CLK_AUDIOPLL1>;
+       assigned-clock-rates = <3932160000>,
+                              <3612672000>, <393216000>,
+                              <361267200>, <49152000>;
+       #sound-dai-cells = <0>;
+       pinctrl-0 = <&pinctrl_pdm>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&mu7 {
+       status = "okay";
+};
+
+&netc_blk_ctrl {
+       status = "okay";
+};
+
+/* Configure MSI and IOMMU mappings specific to the i.MX95 15x15 FRDM board. */
+&netc_bus0 {
+       msi-map = <0x0 &its 0x60 0x1>,  //ENETC0 PF
+                 <0x10 &its 0x61 0x1>, //ENETC0 VF0
+                 <0x20 &its 0x62 0x1>, //ENETC0 VF1
+                 <0x40 &its 0x63 0x1>, //ENETC1 PF
+                 <0x50 &its 0x65 0x1>, //ENETC1 VF0
+                 <0x60 &its 0x66 0x1>, //ENETC1 VF1
+                 <0x80 &its 0x64 0x1>, //ENETC2 PF
+                 <0xc0 &its 0x67 0x1>; //NETC Timer
+       iommu-map = <0x0 &smmu 0x20 0x1>,
+                   <0x10 &smmu 0x21 0x1>,
+                   <0x20 &smmu 0x22 0x1>,
+                   <0x40 &smmu 0x23 0x1>,
+                   <0x50 &smmu 0x25 0x1>,
+                   <0x60 &smmu 0x26 0x1>,
+                   <0x80 &smmu 0x24 0x1>,
+                   <0xc0 &smmu 0x27 0x1>;
+};
+
+&netc_emdio {
+       pinctrl-0 = <&pinctrl_emdio>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ethphy0: ethernet-phy@1 {
+               reg = <1>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <80000>;
+               reset-gpios = <&pcal6524 0 GPIO_ACTIVE_LOW>;
+       };
+
+       ethphy1: ethernet-phy@2 {
+               reg = <2>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <80000>;
+               reset-gpios = <&pcal6524 1 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&netc_timer {
+       status = "okay";
+};
+
+&netcmix_blk_ctrl {
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-0 = <&pinctrl_pcie0>;
+       pinctrl-names = "default";
+       reset-gpio = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       supports-clkreq;
+       vpcie-supply = <&reg_m2_mkey_pwr>;
+       status = "okay";
+};
+
+&scmi_iomuxc {
+       pinctrl_emdio: emdiogrp {
+               fsl,pins = <
+                       IMX95_PAD_ENET2_MDC__NETCMIX_TOP_NETC_MDC               0x50e
+                       IMX95_PAD_ENET2_MDIO__NETCMIX_TOP_NETC_MDIO             0x90e
+               >;
+       };
+
+       pinctrl_enetc0: enetc0grp {
+               fsl,pins = <
+                       IMX95_PAD_ENET1_TD3__NETCMIX_TOP_ETH0_RGMII_TD3         0x50e
+                       IMX95_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RGMII_TD2         0x50e
+                       IMX95_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RGMII_TD1         0x50e
+                       IMX95_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RGMII_TD0         0x50e
+                       IMX95_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RGMII_TX_CTL   0x57e
+                       IMX95_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RGMII_TX_CLK      0x58e
+                       IMX95_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RGMII_RX_CTL   0x57e
+                       IMX95_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RGMII_RX_CLK      0x58e
+                       IMX95_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RGMII_RD0         0x57e
+                       IMX95_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RGMII_RD1         0x57e
+                       IMX95_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RGMII_RD2         0x57e
+                       IMX95_PAD_ENET1_RD3__NETCMIX_TOP_ETH0_RGMII_RD3         0x57e
+               >;
+       };
+
+       pinctrl_enetc1: enetc1grp {
+               fsl,pins = <
+                       IMX95_PAD_ENET2_TD3__NETCMIX_TOP_ETH1_RGMII_TD3         0x50e
+                       IMX95_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RGMII_TD2         0x50e
+                       IMX95_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RGMII_TD1         0x50e
+                       IMX95_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RGMII_TD0         0x50e
+                       IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RGMII_TX_CTL   0x57e
+                       IMX95_PAD_ENET2_TXC__NETCMIX_TOP_ETH1_RGMII_TX_CLK      0x58e
+                       IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RGMII_RX_CTL   0x57e
+                       IMX95_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RGMII_RX_CLK      0x58e
+                       IMX95_PAD_ENET2_RD0__NETCMIX_TOP_ETH1_RGMII_RD0         0x57e
+                       IMX95_PAD_ENET2_RD1__NETCMIX_TOP_ETH1_RGMII_RD1         0x57e
+                       IMX95_PAD_ENET2_RD2__NETCMIX_TOP_ETH1_RGMII_RD2         0x57e
+                       IMX95_PAD_ENET2_RD3__NETCMIX_TOP_ETH1_RGMII_RD3         0x57e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO25__CAN2_TX                            0x39e
+                       IMX95_PAD_GPIO_IO27__CAN2_RX                            0x39e
+               >;
+       };
+
+       pinctrl_flexcan5: flexcan5grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO22__CAN5_TX                            0x39e
+                       IMX95_PAD_GPIO_IO23__CAN5_RX                            0x39e
+               >;
+       };
+
+       pinctrl_lpi2c1: lpi2c1grp {
+               fsl,pins = <
+                       IMX95_PAD_I2C1_SCL__AONMIX_TOP_LPI2C1_SCL               0x40000b9e
+                       IMX95_PAD_I2C1_SDA__AONMIX_TOP_LPI2C1_SDA               0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       IMX95_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL               0x40000b9e
+                       IMX95_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA               0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO28__LPI2C3_SDA                         0x40000b9e
+                       IMX95_PAD_GPIO_IO29__LPI2C3_SCL                         0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c4: lpi2c4grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO30__LPI2C4_SDA                         0x40000b9e
+                       IMX95_PAD_GPIO_IO31__LPI2C4_SCL                         0x40000b9e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO34__GPIO5_IO_BIT14                     0x31e
+               >;
+       };
+
+       pinctrl_pcie0: pcie0grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO32__HSIOMIX_TOP_PCIE1_CLKREQ_B         0x40000b1e
+                       IMX95_PAD_GPIO_IO33__GPIO5_IO_BIT13                     0x31e
+               >;
+       };
+
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       IMX95_PAD_PDM_CLK__AONMIX_TOP_PDM_CLK                           0x31e
+                       IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_PDM_BIT_STREAM_BIT0       0x31e
+               >;
+       };
+
+       pinctrl_ptn5110: ptn5110grp {
+               fsl,pins = <
+                       IMX95_PAD_XSPI1_DATA3__GPIO5_IO_BIT3                    0x31e
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_RESET_B__GPIO3_IO_BIT7                    0x31e
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX              0x31e
+                       IMX95_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX              0x31e
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       IMX95_PAD_DAP_TDO_TRACESWO__LPUART5_TX                  0x31e
+                       IMX95_PAD_DAP_TDI__LPUART5_RX                           0x31e
+                       IMX95_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B                  0x31e
+                       IMX95_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B                 0x31e
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       IMX95_PAD_SD1_CLK__USDHC1_CLK                           0x158e
+                       IMX95_PAD_SD1_CMD__USDHC1_CMD                           0x138e
+                       IMX95_PAD_SD1_DATA0__USDHC1_DATA0                       0x138e
+                       IMX95_PAD_SD1_DATA1__USDHC1_DATA1                       0x138e
+                       IMX95_PAD_SD1_DATA2__USDHC1_DATA2                       0x138e
+                       IMX95_PAD_SD1_DATA3__USDHC1_DATA3                       0x138e
+                       IMX95_PAD_SD1_DATA4__USDHC1_DATA4                       0x138e
+                       IMX95_PAD_SD1_DATA5__USDHC1_DATA5                       0x138e
+                       IMX95_PAD_SD1_DATA6__USDHC1_DATA6                       0x138e
+                       IMX95_PAD_SD1_DATA7__USDHC1_DATA7                       0x138e
+                       IMX95_PAD_SD1_STROBE__USDHC1_STROBE                     0x158e
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD1_CLK__USDHC1_CLK                           0x158e
+                       IMX95_PAD_SD1_CMD__USDHC1_CMD                           0x138e
+                       IMX95_PAD_SD1_DATA0__USDHC1_DATA0                       0x138e
+                       IMX95_PAD_SD1_DATA1__USDHC1_DATA1                       0x138e
+                       IMX95_PAD_SD1_DATA2__USDHC1_DATA2                       0x138e
+                       IMX95_PAD_SD1_DATA3__USDHC1_DATA3                       0x138e
+                       IMX95_PAD_SD1_DATA4__USDHC1_DATA4                       0x138e
+                       IMX95_PAD_SD1_DATA5__USDHC1_DATA5                       0x138e
+                       IMX95_PAD_SD1_DATA6__USDHC1_DATA6                       0x138e
+                       IMX95_PAD_SD1_DATA7__USDHC1_DATA7                       0x138e
+                       IMX95_PAD_SD1_STROBE__USDHC1_STROBE                     0x158e
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD1_CLK__USDHC1_CLK                           0x15fe
+                       IMX95_PAD_SD1_CMD__USDHC1_CMD                           0x13fe
+                       IMX95_PAD_SD1_DATA0__USDHC1_DATA0                       0x13fe
+                       IMX95_PAD_SD1_DATA1__USDHC1_DATA1                       0x13fe
+                       IMX95_PAD_SD1_DATA2__USDHC1_DATA2                       0x13fe
+                       IMX95_PAD_SD1_DATA3__USDHC1_DATA3                       0x13fe
+                       IMX95_PAD_SD1_DATA4__USDHC1_DATA4                       0x13fe
+                       IMX95_PAD_SD1_DATA5__USDHC1_DATA5                       0x13fe
+                       IMX95_PAD_SD1_DATA6__USDHC1_DATA6                       0x13fe
+                       IMX95_PAD_SD1_DATA7__USDHC1_DATA7                       0x13fe
+                       IMX95_PAD_SD1_STROBE__USDHC1_STROBE                     0x15fe
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_CD_B__GPIO3_IO_BIT0                       0x31e
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_CLK__USDHC2_CLK                           0x158e
+                       IMX95_PAD_SD2_CMD__USDHC2_CMD                           0x138e
+                       IMX95_PAD_SD2_DATA0__USDHC2_DATA0                       0x138e
+                       IMX95_PAD_SD2_DATA1__USDHC2_DATA1                       0x138e
+                       IMX95_PAD_SD2_DATA2__USDHC2_DATA2                       0x138e
+                       IMX95_PAD_SD2_DATA3__USDHC2_DATA3                       0x138e
+                       IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT                   0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_CLK__USDHC2_CLK                           0x158e
+                       IMX95_PAD_SD2_CMD__USDHC2_CMD                           0x138e
+                       IMX95_PAD_SD2_DATA0__USDHC2_DATA0                       0x138e
+                       IMX95_PAD_SD2_DATA1__USDHC2_DATA1                       0x138e
+                       IMX95_PAD_SD2_DATA2__USDHC2_DATA2                       0x138e
+                       IMX95_PAD_SD2_DATA3__USDHC2_DATA3                       0x138e
+                       IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT                   0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_CLK__USDHC2_CLK                           0x158e
+                       IMX95_PAD_SD2_CMD__USDHC2_CMD                           0x138e
+                       IMX95_PAD_SD2_DATA0__USDHC2_DATA0                       0x138e
+                       IMX95_PAD_SD2_DATA1__USDHC2_DATA1                       0x138e
+                       IMX95_PAD_SD2_DATA2__USDHC2_DATA2                       0x138e
+                       IMX95_PAD_SD2_DATA3__USDHC2_DATA3                       0x138e
+                       IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT                   0x51e
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       IMX95_PAD_SD3_CLK__USDHC3_CLK                           0x158e
+                       IMX95_PAD_SD3_CMD__USDHC3_CMD                           0x138e
+                       IMX95_PAD_SD3_DATA0__USDHC3_DATA0                       0x138e
+                       IMX95_PAD_SD3_DATA1__USDHC3_DATA1                       0x138e
+                       IMX95_PAD_SD3_DATA2__USDHC3_DATA2                       0x138e
+                       IMX95_PAD_SD3_DATA3__USDHC3_DATA3                       0x138e
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD3_CLK__USDHC3_CLK                           0x158e
+                       IMX95_PAD_SD3_CMD__USDHC3_CMD                           0x138e
+                       IMX95_PAD_SD3_DATA0__USDHC3_DATA0                       0x138e
+                       IMX95_PAD_SD3_DATA1__USDHC3_DATA1                       0x138e
+                       IMX95_PAD_SD3_DATA2__USDHC3_DATA2                       0x138e
+                       IMX95_PAD_SD3_DATA3__USDHC3_DATA3                       0x138e
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD3_CLK__USDHC3_CLK                           0x15fe
+                       IMX95_PAD_SD3_CMD__USDHC3_CMD                           0x13fe
+                       IMX95_PAD_SD3_DATA0__USDHC3_DATA0                       0x13fe
+                       IMX95_PAD_SD3_DATA1__USDHC3_DATA1                       0x13fe
+                       IMX95_PAD_SD3_DATA2__USDHC3_DATA2                       0x13fe
+                       IMX95_PAD_SD3_DATA3__USDHC3_DATA3                       0x13fe
+               >;
+       };
+};
+
+&scmi_misc {
+       nxp,ctrl-ids = <BRD_SM_CTRL_SD3_WAKE            1
+                       BRD_SM_CTRL_PCIE1_WAKE          1
+                       BRD_SM_CTRL_BT_WAKE             1
+                       BRD_SM_CTRL_PCIE2_WAKE          1
+                       BRD_SM_CTRL_BUTTON              1>;
+};
+
+&thermal_zones {
+       pf09-thermal {
+               polling-delay = <2000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&scmi_sensor 2>;
+
+               trips {
+                       pf09_alert: trip0 {
+                               hysteresis = <2000>;
+                               temperature = <140000>;
+                               type = "passive";
+                       };
+
+                       pf09_crit: trip1 {
+                               hysteresis = <2000>;
+                               temperature = <155000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pf53arm-thermal {
+               polling-delay = <2000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&scmi_sensor 4>;
+
+               cooling-maps {
+                       map0 {
+                               cooling-device = <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                       <&A55_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                       <&A55_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                       <&A55_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                       <&A55_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                       <&A55_5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               trip = <&pf5301_alert>;
+                       };
+               };
+
+               trips {
+                       pf5301_alert: trip0 {
+                               hysteresis = <2000>;
+                               temperature = <140000>;
+                               type = "passive";
+                       };
+
+                       pf5301_crit: trip1 {
+                               hysteresis = <2000>;
+                               temperature = <155000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pf53soc-thermal {
+               polling-delay = <2000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&scmi_sensor 3>;
+
+               trips {
+                       pf5302_alert: trip0 {
+                               hysteresis = <2000>;
+                               temperature = <140000>;
+                               type = "passive";
+                       };
+
+                       pf5302_crit: trip1 {
+                               hysteresis = <2000>;
+                               temperature = <155000>;
+                               type = "critical";
+                       };
+               };
+       };
+};
+
+&usb2 {
+       disable-over-current;
+       dr_mode = "host";
+       vbus-supply = <&reg_usb_vbus>;
+       status = "okay";
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&usb3_dwc3 {
+       adp-disable;
+       dr_mode = "otg";
+       hnp-disable;
+       role-switch-default-mode = "peripheral";
+       srp-disable;
+       usb-role-switch;
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+       status = "okay";
+
+       port {
+               usb3_data_hs: endpoint {
+                       remote-endpoint = <&typec_con_hs>;
+               };
+       };
+};
+
+&usb3_phy {
+       orientation-switch;
+       fsl,phy-pcs-tx-deemph-3p5db-attenuation-db = <17>;
+       fsl,phy-pcs-tx-swing-full-percent = <100>;
+       fsl,phy-tx-preemp-amp-tune-microamp = <600>;
+       fsl,phy-tx-vboost-level-microvolt = <1156>;
+       fsl,phy-tx-vref-tune-percent = <100>;
+       status = "okay";
+
+       port {
+               usb3_data_ss: endpoint {
+                       remote-endpoint = <&typec_con_ss>;
+               };
+       };
+};
+
+&usdhc1 {
+       bus-width = <8>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       pinctrl-3 = <&pinctrl_usdhc1>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       fsl,tuning-step = <1>;
+       status = "okay";
+};
+
+&usdhc2 {
+       bus-width = <4>;
+       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-3 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       fsl,tuning-step = <1>;
+       status = "okay";
+};
+
+&usdhc3 {
+       bus-width = <4>;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       non-removable;
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       pinctrl-3 = <&pinctrl_usdhc3>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       wakeup-source;
+       status = "okay";
+};
+
+&wdog3 {
+       status = "okay";
+};
index e1f91203e7947071b8b0973d7141be2c39476d49..22311612e440338b22e8d80ceffaf2387becf105 100644 (file)
 #define IMX95_CLK_SEL_A55P                 (IMX95_CCM_NUM_CLK_SRC + 123 + 7)
 #define IMX95_CLK_SEL_DRAM                 (IMX95_CCM_NUM_CLK_SRC + 123 + 8)
 #define IMX95_CLK_SEL_TEMPSENSE            (IMX95_CCM_NUM_CLK_SRC + 123 + 9)
+#define IMX95_CLK_GPU_CGC                  (IMX95_CCM_NUM_CLK_SRC + 123 + 10)
 
 #endif /* __CLOCK_IMX95_H */
index 115a16e44a999a37497cc1c5129f1ccfef8dc7c7..5932ba238a8ac532a6546476475c9adc4e143fde 100644 (file)
                        compatible = "shared-dma-pool";
                        reusable;
                        size = <0 0x3c000000>;
-                       alloc-ranges = <0 0x80000000 0 0x7F000000>;
+                       alloc-ranges = <0 0x80000000 0 0x7f000000>;
                        linux,cma-default;
                };
        };
index 43418844701b13bdd0a98ada153a425173a9a501..456129f4a6825011dcdae607fe421065ec1c66df 100644 (file)
@@ -40,7 +40,7 @@
                        linux,cma-default;
                };
 
-               vpu_boot: vpu_boot@a0000000 {
+               vpu_boot: vpu-boot@a0000000 {
                        reg = <0 0xa0000000 0 0x100000>;
                        no-map;
                };
index a4d85481755947bbfb426a74b5011d71c12483d7..55e2da094c889fc7c1096d0e36f31ae118d2a982 100644 (file)
                gpu: gpu@4d900000 {
                        compatible = "nxp,imx95-mali", "arm,mali-valhall-csf";
                        reg = <0 0x4d900000 0 0x480000>;
-                       clocks = <&scmi_clk IMX95_CLK_GPU>, <&scmi_clk IMX95_CLK_GPUAPB>;
+                       clocks = <&scmi_clk IMX95_CLK_GPU_CGC>, <&scmi_clk IMX95_CLK_GPUAPB>;
                        clock-names = "core", "coregroup";
                        interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/src/arm64/freescale/imx952-clock.h b/src/arm64/freescale/imx952-clock.h
new file mode 100644 (file)
index 0000000..7d6f663
--- /dev/null
@@ -0,0 +1,215 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
+/*
+ * Copyright 2025 NXP
+ */
+
+#ifndef __CLOCK_IMX952_H__
+#define __CLOCK_IMX952_H__
+
+/* Clock Source */
+#define IMX952_CLK_EXT                 0
+#define IMX952_CLK_OSC32K              1
+#define IMX952_CLK_OSC24M              2
+#define IMX952_CLK_FRO                 3
+#define IMX952_CLK_SYSPLL1_VCO         4
+#define IMX952_CLK_SYSPLL1_PFD0_UNGATED        5
+#define IMX952_CLK_SYSPLL1_PFD0                6
+#define IMX952_CLK_SYSPLL1_PFD0_DIV2   7
+#define IMX952_CLK_SYSPLL1_PFD1_UNGATED        8
+#define IMX952_CLK_SYSPLL1_PFD1                9
+#define IMX952_CLK_SYSPLL1_PFD1_DIV2   10
+#define IMX952_CLK_SYSPLL1_PFD2_UNGATED        11
+#define IMX952_CLK_SYSPLL1_PFD2                12
+#define IMX952_CLK_SYSPLL1_PFD2_DIV2   13
+#define IMX952_CLK_AUDIOPLL1_VCO       14
+#define IMX952_CLK_AUDIOPLL1           15
+#define IMX952_CLK_AUDIOPLL2_VCO       16
+#define IMX952_CLK_AUDIOPLL2           17
+#define IMX952_CLK_VIDEOPLL1_VCO       18
+#define IMX952_CLK_VIDEOPLL1           19
+#define IMX952_CLK_SRC_RESERVED20      20
+#define IMX952_CLK_SYSPLL1_PFD3_UNGATED        21
+#define IMX952_CLK_SYSPLL1_PFD3                22
+#define IMX952_CLK_SYSPLL1_PFD3_DIV2   23
+#define IMX952_CLK_ARMPLL_VCO          24
+#define IMX952_CLK_ARMPLL_PFD0_UNGATED 25
+#define IMX952_CLK_ARMPLL_PFD0         26
+#define IMX952_CLK_ARMPLL_PFD1_UNGATED 27
+#define IMX952_CLK_ARMPLL_PFD1         28
+#define IMX952_CLK_ARMPLL_PFD2_UNGATED 29
+#define IMX952_CLK_ARMPLL_PFD2         30
+#define IMX952_CLK_ARMPLL_PFD3_UNGATED 31
+#define IMX952_CLK_ARMPLL_PFD3         32
+#define IMX952_CLK_DRAMPLL_VCO         33
+#define IMX952_CLK_DRAMPLL             34
+#define IMX952_CLK_HSIOPLL_VCO         35
+#define IMX952_CLK_HSIOPLL             36
+#define IMX952_CLK_LDBPLL_VCO          37
+#define IMX952_CLK_LDBPLL              38
+#define IMX952_CLK_EXT1                        39
+#define IMX952_CLK_EXT2                        40
+
+/* Clock ROOT */
+#define IMX952_CLK_ADC                 41
+#define IMX952_CLK_RESERVED1           42
+#define IMX952_CLK_BUSAON              43
+#define IMX952_CLK_CAN1                        44
+#define IMX952_CLK_RESERVED4           45
+#define IMX952_CLK_I3C1SLOW            46
+#define IMX952_CLK_LPI2C1              47
+#define IMX952_CLK_LPI2C2              48
+#define IMX952_CLK_LPSPI1              49
+#define IMX952_CLK_LPSPI2              50
+#define IMX952_CLK_LPTMR1              51
+#define IMX952_CLK_LPUART1             52
+#define IMX952_CLK_LPUART2             53
+#define IMX952_CLK_M33                 54
+#define IMX952_CLK_M33SYSTICK          55
+#define IMX952_CLK_RESERVED15          56
+#define IMX952_CLK_PDM                 57
+#define IMX952_CLK_SAI1                        58
+#define IMX952_CLK_RESERVED18          59
+#define IMX952_CLK_TPM2                        60
+#define IMX952_CLK_RESERVED20          61
+#define IMX952_CLK_CAMAPB              62
+#define IMX952_CLK_CAMAXI              63
+#define IMX952_CLK_CAMCM0              64
+#define IMX952_CLK_CAMISI              65
+#define IMX952_CLK_CAMPHYCFG           66
+#define IMX952_CLK_MIPIPHYPLLBYPASS    67
+#define IMX952_CLK_RESERVED27          68
+#define IMX952_CLK_MIPITESTBYTE                69
+#define IMX952_CLK_A55                 70
+#define IMX952_CLK_A55MTRBUS           71
+#define IMX952_CLK_A55PERIPH           72
+#define IMX952_CLK_DRAMALT             73
+#define IMX952_CLK_DRAMAPB             74
+#define IMX952_CLK_DISPAPB             75
+#define IMX952_CLK_DISPAXI             76
+#define IMX952_CLK_DISPLPSPI           77
+#define IMX952_CLK_DISPOCRAM           78
+#define IMX952_CLK_DISPPHYCFG          79
+#define IMX952_CLK_DISP1PIX            80
+#define IMX952_CLK_DISPCDPHYAPB                81
+#define IMX952_CLK_RESERVED41          82
+#define IMX952_CLK_GPUAPB              83
+#define IMX952_CLK_GPU                 84
+#define IMX952_CLK_HSIOACSCAN480M      85
+#define IMX952_CLK_HSIOACSCAN80M       86
+#define IMX952_CLK_HSIO                        87
+#define IMX952_CLK_HSIOPCIEAUX         88
+#define IMX952_CLK_HSIOPCIETEST160M    89
+#define IMX952_CLK_HSIOPCIETEST400M    90
+#define IMX952_CLK_HSIOPCIETEST500M    91
+#define IMX952_CLK_HSIOUSBTEST50M      92
+#define IMX952_CLK_HSIOUSBTEST60M      93
+#define IMX952_CLK_BUSM7               94
+#define IMX952_CLK_M7                  95
+#define IMX952_CLK_M7SYSTICK           96
+#define IMX952_CLK_BUSNETCMIX          97
+#define IMX952_CLK_ENET                        98
+#define IMX952_CLK_ENETPHYTEST200M     99
+#define IMX952_CLK_ENETPHYTEST500M     100
+#define IMX952_CLK_ENETPHYTEST667M     101
+#define IMX952_CLK_ENETREF             102
+#define IMX952_CLK_ENETTIMER1          103
+#define IMX952_CLK_RESERVED63          104
+#define IMX952_CLK_SAI2                        105
+#define IMX952_CLK_NOCAPB              106
+#define IMX952_CLK_NOC                 107
+#define IMX952_CLK_NPUAPB              108
+#define IMX952_CLK_NPU                 109
+#define IMX952_CLK_CCMCKO1             110
+#define IMX952_CLK_CCMCKO2             111
+#define IMX952_CLK_CCMCKO3             112
+#define IMX952_CLK_CCMCKO4             113
+#define IMX952_CLK_VPUAPB              114
+#define IMX952_CLK_VPU                 115
+#define IMX952_CLK_RESERVED75          116
+#define IMX952_CLK_RESERVED76          117
+#define IMX952_CLK_AUDIOXCVR           118
+#define IMX952_CLK_BUSWAKEUP           119
+#define IMX952_CLK_CAN2                        120
+#define IMX952_CLK_CAN3                        121
+#define IMX952_CLK_CAN4                        122
+#define IMX952_CLK_CAN5                        123
+#define IMX952_CLK_FLEXIO1             124
+#define IMX952_CLK_FLEXIO2             125
+#define IMX952_CLK_XSPI1               126
+#define IMX952_CLK_RESERVED86          127
+#define IMX952_CLK_I3C2SLOW            128
+#define IMX952_CLK_LPI2C3              129
+#define IMX952_CLK_LPI2C4              130
+#define IMX952_CLK_LPI2C5              131
+#define IMX952_CLK_LPI2C6              132
+#define IMX952_CLK_LPI2C7              133
+#define IMX952_CLK_LPI2C8              134
+#define IMX952_CLK_LPSPI3              135
+#define IMX952_CLK_LPSPI4              136
+#define IMX952_CLK_LPSPI5              137
+#define IMX952_CLK_LPSPI6              138
+#define IMX952_CLK_LPSPI7              139
+#define IMX952_CLK_LPSPI8              140
+#define IMX952_CLK_LPTMR2              141
+#define IMX952_CLK_LPUART3             142
+#define IMX952_CLK_LPUART4             143
+#define IMX952_CLK_LPUART5             144
+#define IMX952_CLK_LPUART6             145
+#define IMX952_CLK_LPUART7             146
+#define IMX952_CLK_LPUART8             147
+#define IMX952_CLK_SAI3                        148
+#define IMX952_CLK_SAI4                        149
+#define IMX952_CLK_SAI5                        150
+#define IMX952_CLK_SPDIF               151
+#define IMX952_CLK_SWOTRACE            152
+#define IMX952_CLK_TPM4                        153
+#define IMX952_CLK_TPM5                        154
+#define IMX952_CLK_TPM6                        155
+#define IMX952_CLK_MIPIPHYDFT400       156
+#define IMX952_CLK_MIPIPHYDFT540       157
+#define IMX952_CLK_USDHC1              158
+#define IMX952_CLK_USDHC2              159
+#define IMX952_CLK_USDHC3              160
+#define IMX952_CLK_V2XPK               161
+#define IMX952_CLK_WAKEUPAXI           162
+#define IMX952_CLK_XSPISLVROOT         163
+#define IMX952_CLK_AUDMIX1             164
+#define IMX952_CLK_ASRC1               165
+#define IMX952_CLK_ASRC2               166
+#define IMX952_CLK_GPT1                        167
+#define IMX952_CLK_GPT2                        168
+#define IMX952_CLK_GPT3                        169
+#define IMX952_CLK_GPT4                        170
+
+/* Clock GPR SEL */
+#define IMX952_CLK_GPR_SEL_EXT         171
+#define IMX952_CLK_GPR_SEL_A55C0       172
+#define IMX952_CLK_GPR_SEL_A55C1       173
+#define IMX952_CLK_GPR_SEL_A55C2       174
+#define IMX952_CLK_GPR_SEL_A55C3       175
+#define IMX952_CLK_GPR_SEL_A55P                176
+#define IMX952_CLK_GPR_SEL_DRAM                177
+#define IMX952_CLK_GPR_SEL_TEMPSENSE   178
+
+/* Clock CGC */
+#define IMX952_CLK_CGC_NPU             179
+#define IMX952_CLK_CGC_GPU             180
+#define IMX952_CLK_CGC_CAMISI          181
+#define IMX952_CLK_CGC_CAMISP          182
+#define IMX952_CLK_CGC_CAMCSI0         183
+#define IMX952_CLK_CGC_CAMCSI1         184
+#define IMX952_CLK_CGC_CAMOCRAM                185
+#define IMX952_CLK_CGC_HSIOUSB         186
+#define IMX952_CLK_CGC_HSIOPCIE                187
+#define IMX952_CLK_CGC_DISPOCRAM       188
+#define IMX952_CLK_CGC_DISPSEERIS      189
+#define IMX952_CLK_CGC_DISPDSI         190
+#define IMX952_CLK_CGC_NOCGIC          191
+#define IMX952_CLK_CGC_NOCOCRAM                192
+#define IMX952_CLK_CGC_NETC            193
+#define IMX952_CLK_CGC_VPUENC          194
+#define IMX952_CLK_CGC_VPUJPEGENC      195
+#define IMX952_CLK_CGC_VPUJPEGDEC      196
+#define IMX952_CLK_CGC_VPUDEC          197
+
+#endif
diff --git a/src/arm64/freescale/imx952-evk.dts b/src/arm64/freescale/imx952-evk.dts
new file mode 100644 (file)
index 0000000..b838323
--- /dev/null
@@ -0,0 +1,596 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2025-2026 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/usb/pd.h>
+#include "imx952.dtsi"
+
+#define FALLING_EDGE           BIT(0)
+#define RISING_EDGE            BIT(1)
+
+#define BRD_SM_CTRL_SD3_WAKE           0x8000U /*!< PCAL6408A-0 */
+#define BRD_SM_CTRL_M2E_WAKE           0x8001U /*!< PCAL6408A-4 */
+#define BRD_SM_CTRL_BT_WAKE            0x8002U /*!< PCAL6408A-5 */
+#define BRD_SM_CTRL_M2M_WAKE           0x8003U /*!< PCAL6408A-6 */
+#define BRD_SM_CTRL_BUTTON             0x8004U /*!< PCAL6408A-7 */
+
+/ {
+       model = "NXP i.MX952 EVK board";
+       compatible = "fsl,imx952-evk", "fsl,imx952";
+
+       aliases {
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+               i2c0 = &lpi2c1;
+               i2c1 = &lpi2c2;
+               i2c2 = &lpi2c3;
+               i2c3 = &lpi2c4;
+               i2c4 = &lpi2c5;
+               i2c5 = &lpi2c6;
+               i2c6 = &lpi2c7;
+               i2c7 = &lpi2c8;
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               serial0 = &lpuart1;
+               serial4 = &lpuart5;
+               spi6 = &lpspi7;
+       };
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0 0x80000000>;
+       };
+
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               pwms = <&tpm6 2 4000000 PWM_POLARITY_INVERTED>;
+               cooling-levels = <64 128 192 255>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux_cma: linux,cma {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0 0x80000000 0 0x7f000000>;
+                       size = <0 0x3c000000>;
+                       linux,cma-default;
+                       reusable;
+               };
+       };
+
+       flexcan1_phy: can-phy0 {
+               compatible = "nxp,tjr1443";
+               #phy-cells = <0>;
+               max-bitrate = <8000000>;
+               enable-gpios = <&pcal6416 6 GPIO_ACTIVE_HIGH>;
+               standby-gpios = <&pcal6416 5 GPIO_ACTIVE_LOW>;
+       };
+
+       flexcan2_phy: can-phy1 {
+               compatible = "nxp,tjr1443";
+               #phy-cells = <0>;
+               max-bitrate = <8000000>;
+               enable-gpios = <&i2c4_pcal6408 4 GPIO_ACTIVE_HIGH>;
+               standby-gpios = <&i2c4_pcal6408 3 GPIO_ACTIVE_LOW>;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_SW";
+       };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "+V1.8_SW";
+       };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-name = "vref_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VDD_SD2_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               off-on-delay-us = <12000>;
+       };
+
+       reg_usb_vbus: regulator-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB_VBUS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pcal6524 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+};
+
+/* pin conflict with PDM */
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       phys = <&flexcan1_phy>;
+       status = "disabled";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       phys = <&flexcan2_phy>;
+       status = "okay";
+};
+
+&lpi2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       status = "okay";
+
+       adp5585: io-expander@34 {
+               compatible = "adi,adp5585-00", "adi,adp5585";
+               reg = <0x34>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-reserved-ranges = <5 1>;
+               #pwm-cells = <3>;
+       };
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       status = "okay";
+
+       i2c3_pcal6408: gpio@20 {
+               compatible = "nxp,pcal6408";
+               reg = <0x20>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               vcc-supply = <&reg_3p3v>;
+       };
+};
+
+&lpi2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c4>;
+       status = "okay";
+
+       i2c4_pcal6408: gpio@21 {
+               compatible = "nxp,pcal6408";
+               reg = <0x21>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c4_pcal6408>;
+               vcc-supply = <&reg_3p3v>;
+       };
+};
+
+&lpi2c6 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c6>;
+       status = "okay";
+
+       pcal6416: gpio@21 {
+               compatible = "nxp,pcal6416";
+               #gpio-cells = <2>;
+               gpio-controller;
+               reg = <0x21>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6416>;
+               vcc-supply = <&reg_3p3v>;
+
+               pdm-can-sel-hog {
+                       gpio-hog;
+                       gpios = <10 GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+
+               mqs-en-hog {
+                       gpio-hog;
+                       gpios = <15 GPIO_ACTIVE_HIGH>;
+                       output-low;
+               };
+       };
+};
+
+&lpi2c7 {
+       clock-frequency = <1000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c7>;
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ptn5110>;
+
+               typec_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
+                       op-sink-microwatt = <0>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&lpuart1 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&lpuart5 {
+       /* BT */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
+&lpspi7 {
+       cs-gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi7>;
+       status = "okay";
+};
+
+&scmi_misc {
+       nxp,ctrl-ids = <BRD_SM_CTRL_SD3_WAKE            1
+                       BRD_SM_CTRL_M2E_WAKE            1
+                       BRD_SM_CTRL_BT_WAKE             1
+                       BRD_SM_CTRL_M2M_WAKE            1
+                       BRD_SM_CTRL_BUTTON              1>;
+};
+
+&tpm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm3>;
+       status = "okay";
+};
+
+&tpm6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tpm6>;
+       status = "okay";
+};
+
+&usb1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usb2 {
+       dr_mode = "host";
+       disable-over-current;
+       vbus-supply = <&reg_usb_vbus>;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       pinctrl-3 = <&pinctrl_usdhc1>;
+       bus-width = <8>;
+       non-removable;
+       no-sdio;
+       no-sd;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-3 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&wdog3 {
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&scmi_iomuxc {
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       IMX952_PAD_PDM_CLK__AONMIX_TOP_CAN1_TX                  0x39e
+                       IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_CAN1_RX          0x39e
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_CAN2_TX             0x39e
+                       IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_CAN2_RX             0x39e
+               >;
+       };
+
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       IMX952_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL              0x40000b9e
+                       IMX952_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA              0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_LPI2C3_SDA          0x40000b9e
+                       IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_LPI2C3_SCL          0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c4: lpi2c4grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO30__WAKEUPMIX_TOP_LPI2C4_SDA          0x40000b9e
+                       IMX952_PAD_GPIO_IO31__WAKEUPMIX_TOP_LPI2C4_SCL          0x40000b9e
+               >;
+       };
+
+       pinctrl_i2c4_pcal6408: i2c4pcal6408grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_GPIO2_IO_18         0x31e
+               >;
+       };
+
+       pinctrl_lpi2c6: lpi2c6grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_LPI2C6_SDA          0x40000b9e
+                       IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_LPI2C6_SCL          0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c7: lpi2c7grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_LPI2C7_SDA          0x40000b9e
+                       IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_LPI2C7_SCL          0x40000b9e
+               >;
+       };
+
+       pinctrl_lpspi7: lpspi7grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_GPIO2_IO_4          0x39e
+                       IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_LPSPI7_SIN          0x39e
+                       IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_LPSPI7_SOUT         0x39e
+                       IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_LPSPI7_SCK          0x39e
+               >;
+       };
+
+       pinctrl_pcal6416: pcal6416grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_GPIO2_IO_10         0x31e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO36__WAKEUPMIX_TOP_GPIO5_IO_16         0x31e
+               >;
+       };
+
+       pinctrl_ptn5110: ptn5110grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO34__WAKEUPMIX_TOP_GPIO5_IO_14              0x31e
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       IMX952_PAD_SD2_RESET_B__WAKEUPMIX_TOP_GPIO3_IO_7        0x31e
+               >;
+       };
+
+       pinctrl_tpm3: tpm3grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_TPM3_CH2            0x51e
+               >;
+       };
+
+       pinctrl_tpm6: tpm6grp {
+               fsl,pins = <
+                       IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_TPM6_CH2            0x51e
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       IMX952_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX             0x31e
+                       IMX952_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX             0x31e
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       IMX952_PAD_DAP_TDO_TRACESWO__WAKEUPMIX_TOP_LPUART5_TX   0x31e
+                       IMX952_PAD_DAP_TDI__WAKEUPMIX_TOP_LPUART5_RX            0x31e
+                       IMX952_PAD_DAP_TMS_SWDIO__WAKEUPMIX_TOP_LPUART5_RTS_B   0x31e
+                       IMX952_PAD_DAP_TCLK_SWCLK__WAKEUPMIX_TOP_LPUART5_CTS_B  0x31e
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       IMX952_PAD_SD1_CLK__WAKEUPMIX_TOP_USDHC1_CLK            0x158e
+                       IMX952_PAD_SD1_CMD__WAKEUPMIX_TOP_USDHC1_CMD            0x138e
+                       IMX952_PAD_SD1_DATA0__WAKEUPMIX_TOP_USDHC1_DATA0        0x138e
+                       IMX952_PAD_SD1_DATA1__WAKEUPMIX_TOP_USDHC1_DATA1        0x138e
+                       IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_USDHC1_DATA2        0x138e
+                       IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_USDHC1_DATA3        0x138e
+                       IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_USDHC1_DATA4        0x138e
+                       IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_USDHC1_DATA5        0x138e
+                       IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_USDHC1_DATA6        0x138e
+                       IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_USDHC1_DATA7        0x138e
+                       IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_USDHC1_STROBE      0x158e
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       IMX952_PAD_SD1_CLK__WAKEUPMIX_TOP_USDHC1_CLK            0x158e
+                       IMX952_PAD_SD1_CMD__WAKEUPMIX_TOP_USDHC1_CMD            0x138e
+                       IMX952_PAD_SD1_DATA0__WAKEUPMIX_TOP_USDHC1_DATA0        0x138e
+                       IMX952_PAD_SD1_DATA1__WAKEUPMIX_TOP_USDHC1_DATA1        0x138e
+                       IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_USDHC1_DATA2        0x138e
+                       IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_USDHC1_DATA3        0x138e
+                       IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_USDHC1_DATA4        0x138e
+                       IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_USDHC1_DATA5        0x138e
+                       IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_USDHC1_DATA6        0x138e
+                       IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_USDHC1_DATA7        0x138e
+                       IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_USDHC1_STROBE      0x158e
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       IMX952_PAD_SD1_CLK__WAKEUPMIX_TOP_USDHC1_CLK            0x159e
+                       IMX952_PAD_SD1_CMD__WAKEUPMIX_TOP_USDHC1_CMD            0x139e
+                       IMX952_PAD_SD1_DATA0__WAKEUPMIX_TOP_USDHC1_DATA0        0x139e
+                       IMX952_PAD_SD1_DATA1__WAKEUPMIX_TOP_USDHC1_DATA1        0x139e
+                       IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_USDHC1_DATA2        0x139e
+                       IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_USDHC1_DATA3        0x139e
+                       IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_USDHC1_DATA4        0x139e
+                       IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_USDHC1_DATA5        0x139e
+                       IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_USDHC1_DATA6        0x139e
+                       IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_USDHC1_DATA7        0x139e
+                       IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_USDHC1_STROBE      0x159e
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_USDHC2_CLK            0x158e
+                       IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_USDHC2_CMD            0x138e
+                       IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_USDHC2_DATA0        0x138e
+                       IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_USDHC2_DATA1        0x138e
+                       IMX952_PAD_SD2_DATA2__WAKEUPMIX_TOP_USDHC2_DATA2        0x138e
+                       IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_USDHC2_DATA3        0x138e
+                       IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_USDHC2_CLK            0x158e
+                       IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_USDHC2_CMD            0x138e
+                       IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_USDHC2_DATA0        0x138e
+                       IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_USDHC2_DATA1        0x138e
+                       IMX952_PAD_SD2_DATA2__WAKEUPMIX_TOP_USDHC2_DATA2        0x138e
+                       IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_USDHC2_DATA3        0x138e
+                       IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_USDHC2_CLK            0x158e
+                       IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_USDHC2_CMD            0x138e
+                       IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_USDHC2_DATA0        0x138e
+                       IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_USDHC2_DATA1        0x138e
+                       IMX952_PAD_SD2_DATA2__WAKEUPMIX_TOP_USDHC2_DATA2        0x138e
+                       IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_USDHC2_DATA3        0x138e
+                       IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       IMX952_PAD_SD2_CD_B__WAKEUPMIX_TOP_GPIO3_IO_0           0x31e
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx952-pinfunc.h b/src/arm64/freescale/imx952-pinfunc.h
new file mode 100644 (file)
index 0000000..debe6ed
--- /dev/null
@@ -0,0 +1,867 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright 2025 NXP
+ */
+
+#ifndef __DTS_IMX952_PINFUNC_H__
+#define __DTS_IMX952_PINFUNC_H__
+
+/*
+ * The pin function ID is a tuple of
+ * <mux_reg conf_reg input_reg mux_mode input_val>
+ */
+#define IMX952_PAD_DAP_TDI__WAKEUPMIX_TOP_TDI                         0x0000 0x0230 0x05FC 0x00 0x00
+#define IMX952_PAD_DAP_TDI__NETCMIX_TOP_MQS2_LEFT                     0x0000 0x0230 0x0000 0x01 0x00
+#define IMX952_PAD_DAP_TDI__NETCMIX_TOP_NETC_TMR_1588_ALARM1          0x0000 0x0230 0x0000 0x02 0x00
+#define IMX952_PAD_DAP_TDI__WAKEUPMIX_TOP_CAN2_TX                     0x0000 0x0230 0x0000 0x03 0x00
+#define IMX952_PAD_DAP_TDI__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_30           0x0000 0x0230 0x0000 0x04 0x00
+#define IMX952_PAD_DAP_TDI__WAKEUPMIX_TOP_GPIO3_IO_28                 0x0000 0x0230 0x0000 0x05 0x00
+#define IMX952_PAD_DAP_TDI__WAKEUPMIX_TOP_LPUART5_RX                  0x0000 0x0230 0x059C 0x06 0x00
+
+#define IMX952_PAD_DAP_TMS_SWDIO__WAKEUPMIX_TOP_TMS                   0x0004 0x0234 0x0600 0x00 0x00
+#define IMX952_PAD_DAP_TMS_SWDIO__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_31     0x0004 0x0234 0x0000 0x04 0x00
+#define IMX952_PAD_DAP_TMS_SWDIO__WAKEUPMIX_TOP_GPIO3_IO_29           0x0004 0x0234 0x0000 0x05 0x00
+#define IMX952_PAD_DAP_TMS_SWDIO__WAKEUPMIX_TOP_LPUART5_RTS_B         0x0004 0x0234 0x0000 0x06 0x00
+
+#define IMX952_PAD_DAP_TCLK_SWCLK__WAKEUPMIX_TOP_TCK                  0x0008 0x0238 0x05F8 0x00 0x00
+#define IMX952_PAD_DAP_TCLK_SWCLK__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_30    0x0008 0x0238 0x04B4 0x04 0x00
+#define IMX952_PAD_DAP_TCLK_SWCLK__WAKEUPMIX_TOP_GPIO3_IO_30          0x0008 0x0238 0x0000 0x05 0x00
+#define IMX952_PAD_DAP_TCLK_SWCLK__WAKEUPMIX_TOP_LPUART5_CTS_B        0x0008 0x0238 0x0598 0x06 0x00
+
+#define IMX952_PAD_DAP_TDO_TRACESWO__WAKEUPMIX_TOP_TDO                0x000C 0x023C 0x0000 0x00 0x00
+#define IMX952_PAD_DAP_TDO_TRACESWO__NETCMIX_TOP_MQS2_RIGHT           0x000C 0x023C 0x0000 0x01 0x00
+#define IMX952_PAD_DAP_TDO_TRACESWO__NETCMIX_TOP_NETC_TMR_1588_ALARM2 0x000C 0x023C 0x0000 0x02 0x00
+#define IMX952_PAD_DAP_TDO_TRACESWO__WAKEUPMIX_TOP_CAN2_RX            0x000C 0x023C 0x04A4 0x03 0x00
+#define IMX952_PAD_DAP_TDO_TRACESWO__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_31  0x000C 0x023C 0x04B8 0x04 0x00
+#define IMX952_PAD_DAP_TDO_TRACESWO__WAKEUPMIX_TOP_GPIO3_IO_31        0x000C 0x023C 0x0000 0x05 0x00
+#define IMX952_PAD_DAP_TDO_TRACESWO__WAKEUPMIX_TOP_LPUART5_TX         0x000C 0x023C 0x05A0 0x06 0x00
+
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_GPIO2_IO_0                0x0010 0x0240 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_LPI2C3_SDA                0x0010 0x0240 0x0530 0x01 0x00
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_GPTMUX_INOUT0             0x0010 0x0240 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_LPSPI6_PCS0               0x0010 0x0240 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_LPUART5_TX                0x0010 0x0240 0x05A0 0x05 0x01
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_LPI2C5_SDA                0x0010 0x0240 0x0540 0x06 0x00
+#define IMX952_PAD_GPIO_IO00__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_0          0x0010 0x0240 0x04BC 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_GPIO2_IO_1                0x0014 0x0244 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_LPI2C3_SCL                0x0014 0x0244 0x052C 0x01 0x00
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_GPTMUX_INOUT1             0x0014 0x0244 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_LPSPI6_SIN                0x0014 0x0244 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_LPUART5_RX                0x0014 0x0244 0x059C 0x05 0x01
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_LPI2C5_SCL                0x0014 0x0244 0x053C 0x06 0x00
+#define IMX952_PAD_GPIO_IO01__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_1          0x0014 0x0244 0x04C0 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_GPIO2_IO_2                0x0018 0x0248 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_LPI2C4_SDA                0x0018 0x0248 0x0538 0x01 0x00
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_GPTMUX_INOUT2             0x0018 0x0248 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_LPSPI6_SOUT               0x0018 0x0248 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_LPUART5_CTS_B             0x0018 0x0248 0x0598 0x05 0x01
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_LPI2C6_SDA                0x0018 0x0248 0x0548 0x06 0x00
+#define IMX952_PAD_GPIO_IO02__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_2          0x0018 0x0248 0x04C4 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_GPIO2_IO_3                0x001C 0x024C 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_LPI2C4_SCL                0x001C 0x024C 0x0534 0x01 0x00
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_GPTMUX_INOUT3             0x001C 0x024C 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_LPSPI6_SCK                0x001C 0x024C 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_LPUART5_RTS_B             0x001C 0x024C 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_LPI2C6_SCL                0x001C 0x024C 0x0544 0x06 0x00
+#define IMX952_PAD_GPIO_IO03__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_3          0x001C 0x024C 0x04C8 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_GPIO2_IO_4                0x0020 0x0250 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_TPM3_CH0                  0x0020 0x0250 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO04__AONMIX_TOP_PDM_CLK                      0x0020 0x0250 0x0000 0x02 0x00
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_GPTMUX_INOUT4             0x0020 0x0250 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_LPSPI7_PCS0               0x0020 0x0250 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_LPUART6_TX                0x0020 0x0250 0x05AC 0x05 0x00
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_LPI2C6_SDA                0x0020 0x0250 0x0548 0x06 0x01
+#define IMX952_PAD_GPIO_IO04__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_4          0x0020 0x0250 0x04CC 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_GPIO2_IO_5                0x0024 0x0254 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_TPM4_CH0                  0x0024 0x0254 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO05__AONMIX_TOP_PDM_BIT_STREAM_0             0x0024 0x0254 0x0464 0x02 0x01
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_GPTMUX_INOUT5             0x0024 0x0254 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_LPSPI7_SIN                0x0024 0x0254 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_LPUART6_RX                0x0024 0x0254 0x05A8 0x05 0x00
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_LPI2C6_SCL                0x0024 0x0254 0x0544 0x06 0x01
+#define IMX952_PAD_GPIO_IO05__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_5          0x0024 0x0254 0x04D0 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_GPIO2_IO_6                0x0028 0x0258 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_TPM5_CH0                  0x0028 0x0258 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO06__AONMIX_TOP_PDM_BIT_STREAM_1             0x0028 0x0258 0x0468 0x02 0x01
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_GPTMUX_INOUT6             0x0028 0x0258 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_LPSPI7_SOUT               0x0028 0x0258 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_LPUART6_CTS_B             0x0028 0x0258 0x05A4 0x05 0x00
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_LPI2C7_SDA                0x0028 0x0258 0x0550 0x06 0x00
+#define IMX952_PAD_GPIO_IO06__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_6          0x0028 0x0258 0x04D4 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_GPIO2_IO_7                0x002C 0x025C 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_LPSPI3_PCS1               0x002C 0x025C 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_GPTMUX_INOUT7             0x002C 0x025C 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_LPSPI7_SCK                0x002C 0x025C 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_LPUART6_RTS_B             0x002C 0x025C 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_LPI2C7_SCL                0x002C 0x025C 0x054C 0x06 0x00
+#define IMX952_PAD_GPIO_IO07__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_7          0x002C 0x025C 0x04D8 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_GPIO2_IO_8                0x0030 0x0260 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_LPSPI3_PCS0               0x0030 0x0260 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_GPTMUX_INOUT8             0x0030 0x0260 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_TPM6_CH0                  0x0030 0x0260 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_LPUART7_TX                0x0030 0x0260 0x05B4 0x05 0x00
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_LPI2C7_SDA                0x0030 0x0260 0x0550 0x06 0x01
+#define IMX952_PAD_GPIO_IO08__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_8          0x0030 0x0260 0x04DC 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_GPIO2_IO_9                0x0034 0x0264 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_LPSPI3_SIN                0x0034 0x0264 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_GPTMUX_INOUT9             0x0034 0x0264 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_TPM3_EXTCLK               0x0034 0x0264 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_LPUART7_RX                0x0034 0x0264 0x05B0 0x05 0x00
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_LPI2C7_SCL                0x0034 0x0264 0x054C 0x06 0x01
+#define IMX952_PAD_GPIO_IO09__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_9          0x0034 0x0264 0x04E0 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_GPIO2_IO_10               0x0038 0x0268 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_LPSPI3_SOUT               0x0038 0x0268 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_GPTMUX_INOUT10            0x0038 0x0268 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_TPM4_EXTCLK               0x0038 0x0268 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_LPUART7_CTS_B             0x0038 0x0268 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_LPI2C8_SDA                0x0038 0x0268 0x0558 0x06 0x00
+#define IMX952_PAD_GPIO_IO10__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_10         0x0038 0x0268 0x04E4 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_GPIO2_IO_11               0x003C 0x026C 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_LPSPI3_SCK                0x003C 0x026C 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_GPTMUX_INOUT11            0x003C 0x026C 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_TPM5_EXTCLK               0x003C 0x026C 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_LPUART7_RTS_B             0x003C 0x026C 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_LPI2C8_SCL                0x003C 0x026C 0x0554 0x06 0x00
+#define IMX952_PAD_GPIO_IO11__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_11         0x003C 0x026C 0x04E8 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_GPIO2_IO_12               0x0040 0x0270 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_TPM3_CH2                  0x0040 0x0270 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO12__AONMIX_TOP_PDM_BIT_STREAM_2             0x0040 0x0270 0x046C 0x02 0x00
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_12         0x0040 0x0270 0x04EC 0x03 0x00
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_LPSPI8_PCS0               0x0040 0x0270 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_LPUART8_TX                0x0040 0x0270 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_LPI2C8_SDA                0x0040 0x0270 0x0558 0x06 0x01
+#define IMX952_PAD_GPIO_IO12__WAKEUPMIX_TOP_SAI3_RX_SYNC              0x0040 0x0270 0x05BC 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO13__WAKEUPMIX_TOP_GPIO2_IO_13               0x0044 0x0274 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO13__WAKEUPMIX_TOP_TPM4_CH2                  0x0044 0x0274 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO13__AONMIX_TOP_PDM_BIT_STREAM_3             0x0044 0x0274 0x0470 0x02 0x00
+#define IMX952_PAD_GPIO_IO13__WAKEUPMIX_TOP_LPSPI8_SIN                0x0044 0x0274 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO13__WAKEUPMIX_TOP_LPUART8_RX                0x0044 0x0274 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO13__WAKEUPMIX_TOP_LPI2C8_SCL                0x0044 0x0274 0x0554 0x06 0x01
+#define IMX952_PAD_GPIO_IO13__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_13         0x0044 0x0274 0x04F0 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO14__WAKEUPMIX_TOP_GPIO2_IO_14               0x0048 0x0278 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO14__WAKEUPMIX_TOP_LPUART3_TX                0x0048 0x0278 0x0588 0x01 0x01
+#define IMX952_PAD_GPIO_IO14__WAKEUPMIX_TOP_LPSPI8_SOUT               0x0048 0x0278 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO14__WAKEUPMIX_TOP_LPUART8_CTS_B             0x0048 0x0278 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO14__WAKEUPMIX_TOP_LPUART4_TX                0x0048 0x0278 0x0594 0x06 0x01
+#define IMX952_PAD_GPIO_IO14__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_14         0x0048 0x0278 0x04F4 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_GPIO2_IO_15               0x004C 0x027C 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_LPUART3_RX                0x004C 0x027C 0x0584 0x01 0x01
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_XSPI1_INTFA_B             0x004C 0x027C 0x0624 0x03 0x00
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_LPSPI8_SCK                0x004C 0x027C 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_LPUART8_RTS_B             0x004C 0x027C 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_LPUART4_RX                0x004C 0x027C 0x0590 0x06 0x01
+#define IMX952_PAD_GPIO_IO15__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_15         0x004C 0x027C 0x04F8 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO16__WAKEUPMIX_TOP_GPIO2_IO_16               0x0050 0x0280 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO16__WAKEUPMIX_TOP_AUDMIX_TDM_OUT_TXBCLK     0x0050 0x0280 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO16__AONMIX_TOP_PDM_BIT_STREAM_2             0x0050 0x0280 0x046C 0x02 0x01
+#define IMX952_PAD_GPIO_IO16__WAKEUPMIX_TOP_LPUART3_CTS_B             0x0050 0x0280 0x0580 0x04 0x01
+#define IMX952_PAD_GPIO_IO16__WAKEUPMIX_TOP_LPSPI4_PCS2               0x0050 0x0280 0x0564 0x05 0x00
+#define IMX952_PAD_GPIO_IO16__WAKEUPMIX_TOP_LPUART4_CTS_B             0x0050 0x0280 0x058C 0x06 0x01
+#define IMX952_PAD_GPIO_IO16__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_16         0x0050 0x0280 0x04FC 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_GPIO2_IO_17               0x0054 0x0284 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_SAI3_MCLK                 0x0054 0x0284 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_LPUART3_RTS_B             0x0054 0x0284 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_LPSPI4_PCS1               0x0054 0x0284 0x0560 0x05 0x00
+#define IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_LPUART4_RTS_B             0x0054 0x0284 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO17__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_17         0x0054 0x0284 0x0500 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_GPIO2_IO_18               0x0058 0x0288 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_SAI3_RX_BCLK              0x0058 0x0288 0x05B8 0x01 0x00
+#define IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_LPSPI5_PCS0               0x0058 0x0288 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_LPSPI4_PCS0               0x0058 0x0288 0x055C 0x05 0x00
+#define IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_TPM5_CH2                  0x0058 0x0288 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO18__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_18         0x0058 0x0288 0x0504 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_GPIO2_IO_19               0x005C 0x028C 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_SAI3_RX_SYNC              0x005C 0x028C 0x05BC 0x01 0x01
+#define IMX952_PAD_GPIO_IO19__AONMIX_TOP_PDM_BIT_STREAM_3             0x005C 0x028C 0x0470 0x02 0x01
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_19         0x005C 0x028C 0x0508 0x03 0x00
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_LPSPI5_SIN                0x005C 0x028C 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_LPSPI4_SIN                0x005C 0x028C 0x056C 0x05 0x00
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_TPM6_CH2                  0x005C 0x028C 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO19__WAKEUPMIX_TOP_AUDMIX_TDM_OUT_TXDATA     0x005C 0x028C 0x05F4 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO20__WAKEUPMIX_TOP_GPIO2_IO_20               0x0060 0x0290 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO20__WAKEUPMIX_TOP_SAI3_RX_DATA_0            0x0060 0x0290 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO20__AONMIX_TOP_PDM_BIT_STREAM_0             0x0060 0x0290 0x0464 0x02 0x02
+#define IMX952_PAD_GPIO_IO20__WAKEUPMIX_TOP_LPSPI5_SOUT               0x0060 0x0290 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO20__WAKEUPMIX_TOP_LPSPI4_SOUT               0x0060 0x0290 0x0570 0x05 0x00
+#define IMX952_PAD_GPIO_IO20__WAKEUPMIX_TOP_TPM3_CH1                  0x0060 0x0290 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO20__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_20         0x0060 0x0290 0x050C 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_GPIO2_IO_21               0x0064 0x0294 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_AUDMIX_TDM_OUT_TXDATA     0x0064 0x0294 0x05F4 0x01 0x01
+#define IMX952_PAD_GPIO_IO21__AONMIX_TOP_PDM_CLK                      0x0064 0x0294 0x0000 0x02 0x00
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_21         0x0064 0x0294 0x0510 0x03 0x00
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_LPSPI5_SCK                0x0064 0x0294 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_LPSPI4_SCK                0x0064 0x0294 0x0568 0x05 0x00
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_TPM4_CH1                  0x0064 0x0294 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO21__WAKEUPMIX_TOP_SAI3_RX_BCLK              0x0064 0x0294 0x05B8 0x07 0x01
+
+#define IMX952_PAD_GPIO_IO22__WAKEUPMIX_TOP_GPIO2_IO_22               0x0068 0x0298 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO22__WAKEUPMIX_TOP_USDHC3_CLK                0x0068 0x0298 0x0604 0x01 0x00
+#define IMX952_PAD_GPIO_IO22__HSIOMIX_TOP_USB1_OTG_OC                 0x0068 0x0298 0x047C 0x03 0x01
+#define IMX952_PAD_GPIO_IO22__WAKEUPMIX_TOP_TPM5_CH1                  0x0068 0x0298 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO22__WAKEUPMIX_TOP_TPM6_EXTCLK               0x0068 0x0298 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO22__WAKEUPMIX_TOP_LPI2C5_SDA                0x0068 0x0298 0x0540 0x06 0x01
+#define IMX952_PAD_GPIO_IO22__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_22         0x0068 0x0298 0x0514 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO23__WAKEUPMIX_TOP_GPIO2_IO_23               0x006C 0x029C 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO23__WAKEUPMIX_TOP_USDHC3_CMD                0x006C 0x029C 0x0608 0x01 0x00
+#define IMX952_PAD_GPIO_IO23__HSIOMIX_TOP_USB2_OTG_OC                 0x006C 0x029C 0x0480 0x03 0x01
+#define IMX952_PAD_GPIO_IO23__WAKEUPMIX_TOP_TPM6_CH1                  0x006C 0x029C 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO23__WAKEUPMIX_TOP_LPI2C5_SCL                0x006C 0x029C 0x053C 0x06 0x01
+#define IMX952_PAD_GPIO_IO23__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_23         0x006C 0x029C 0x0518 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO24__WAKEUPMIX_TOP_GPIO2_IO_24               0x0070 0x02A0 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO24__WAKEUPMIX_TOP_USDHC3_DATA0              0x0070 0x02A0 0x060C 0x01 0x00
+#define IMX952_PAD_GPIO_IO24__HSIOMIX_TOP_USB1_OTG_PWR                0x0070 0x02A0 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO24__WAKEUPMIX_TOP_TPM3_CH3                  0x0070 0x02A0 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO24__WAKEUPMIX_TOP_TDO                       0x0070 0x02A0 0x0000 0x05 0x00
+#define IMX952_PAD_GPIO_IO24__WAKEUPMIX_TOP_LPSPI6_PCS1               0x0070 0x02A0 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO24__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_24         0x0070 0x02A0 0x051C 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_GPIO2_IO_25               0x0074 0x02A4 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_USDHC3_DATA1              0x0074 0x02A4 0x0610 0x01 0x00
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_CAN2_TX                   0x0074 0x02A4 0x0000 0x02 0x00
+#define IMX952_PAD_GPIO_IO25__HSIOMIX_TOP_USB2_OTG_PWR                0x0074 0x02A4 0x0000 0x03 0x00
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_TPM4_CH3                  0x0074 0x02A4 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_TCK                       0x0074 0x02A4 0x05F8 0x05 0x01
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_LPSPI7_PCS1               0x0074 0x02A4 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO25__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_25         0x0074 0x02A4 0x0520 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_GPIO2_IO_26               0x0078 0x02A8 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_USDHC3_DATA2              0x0078 0x02A8 0x0614 0x01 0x00
+#define IMX952_PAD_GPIO_IO26__AONMIX_TOP_PDM_BIT_STREAM_1             0x0078 0x02A8 0x0468 0x02 0x02
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_26         0x0078 0x02A8 0x04AC 0x03 0x01
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_TPM5_CH3                  0x0078 0x02A8 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_TDI                       0x0078 0x02A8 0x05FC 0x05 0x01
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_LPSPI8_PCS1               0x0078 0x02A8 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO26__WAKEUPMIX_TOP_AUDMIX_TDM_OUT_TXSYNC     0x0078 0x02A8 0x0000 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_GPIO2_IO_27               0x007C 0x02AC 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_USDHC3_DATA3              0x007C 0x02AC 0x0618 0x01 0x00
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_CAN2_RX                   0x007C 0x02AC 0x04A4 0x02 0x02
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_TPM6_CH3                  0x007C 0x02AC 0x0000 0x04 0x00
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_TMS                       0x007C 0x02AC 0x0600 0x05 0x01
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_LPSPI5_PCS1               0x007C 0x02AC 0x0000 0x06 0x00
+#define IMX952_PAD_GPIO_IO27__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_27         0x007C 0x02AC 0x04B0 0x07 0x01
+
+#define IMX952_PAD_GPIO_IO28__WAKEUPMIX_TOP_GPIO2_IO_28               0x0080 0x02B0 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO28__WAKEUPMIX_TOP_LPI2C3_SDA                0x0080 0x02B0 0x0530 0x01 0x01
+#define IMX952_PAD_GPIO_IO28__WAKEUPMIX_TOP_CAN3_TX                   0x0080 0x02B0 0x0000 0x02 0x00
+#define IMX952_PAD_GPIO_IO28__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_28         0x0080 0x02B0 0x0000 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO29__WAKEUPMIX_TOP_GPIO2_IO_29               0x0084 0x02B4 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO29__WAKEUPMIX_TOP_LPI2C3_SCL                0x0084 0x02B4 0x052C 0x01 0x01
+#define IMX952_PAD_GPIO_IO29__WAKEUPMIX_TOP_CAN3_RX                   0x0084 0x02B4 0x04A8 0x02 0x01
+#define IMX952_PAD_GPIO_IO29__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_29         0x0084 0x02B4 0x0000 0x07 0x00
+
+#define IMX952_PAD_GPIO_IO30__WAKEUPMIX_TOP_GPIO2_IO_30               0x0088 0x02B8 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO30__WAKEUPMIX_TOP_LPI2C4_SDA                0x0088 0x02B8 0x0538 0x01 0x01
+#define IMX952_PAD_GPIO_IO30__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_30         0x0088 0x02B8 0x04B4 0x07 0x01
+
+#define IMX952_PAD_GPIO_IO31__WAKEUPMIX_TOP_GPIO2_IO_31               0x008C 0x02BC 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO31__WAKEUPMIX_TOP_LPI2C4_SCL                0x008C 0x02BC 0x0534 0x01 0x01
+#define IMX952_PAD_GPIO_IO31__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_31         0x008C 0x02BC 0x04B8 0x07 0x01
+
+#define IMX952_PAD_GPIO_IO32__WAKEUPMIX_TOP_GPIO5_IO_12               0x0090 0x02C0 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO32__HSIOMIX_TOP_PCIE1_CLKREQ_B              0x0090 0x02C0 0x0000 0x01 0x00
+#define IMX952_PAD_GPIO_IO32__WAKEUPMIX_TOP_LPUART6_TX                0x0090 0x02C0 0x05AC 0x02 0x01
+#define IMX952_PAD_GPIO_IO32__WAKEUPMIX_TOP_LPSPI4_PCS2               0x0090 0x02C0 0x0564 0x04 0x01
+
+#define IMX952_PAD_GPIO_IO33__WAKEUPMIX_TOP_GPIO5_IO_13               0x0094 0x02C4 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO33__WAKEUPMIX_TOP_LPUART6_RX                0x0094 0x02C4 0x05A8 0x02 0x01
+#define IMX952_PAD_GPIO_IO33__WAKEUPMIX_TOP_LPSPI4_PCS1               0x0094 0x02C4 0x0560 0x04 0x01
+
+#define IMX952_PAD_GPIO_IO34__WAKEUPMIX_TOP_GPIO5_IO_14               0x0098 0x02C8 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO34__WAKEUPMIX_TOP_LPUART6_CTS_B             0x0098 0x02C8 0x05A4 0x02 0x01
+#define IMX952_PAD_GPIO_IO34__WAKEUPMIX_TOP_LPSPI4_PCS0               0x0098 0x02C8 0x055C 0x04 0x01
+
+#define IMX952_PAD_GPIO_IO35__WAKEUPMIX_TOP_GPIO5_IO_15               0x009C 0x02CC 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO35__WAKEUPMIX_TOP_LPUART6_RTS_B             0x009C 0x02CC 0x0000 0x02 0x00
+#define IMX952_PAD_GPIO_IO35__WAKEUPMIX_TOP_LPSPI4_SIN                0x009C 0x02CC 0x056C 0x04 0x01
+
+#define IMX952_PAD_GPIO_IO36__WAKEUPMIX_TOP_LPSPI4_SOUT               0x00A0 0x02D0 0x0570 0x04 0x01
+#define IMX952_PAD_GPIO_IO36__WAKEUPMIX_TOP_GPIO5_IO_16               0x00A0 0x02D0 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO36__WAKEUPMIX_TOP_LPUART7_TX                0x00A0 0x02D0 0x05B4 0x02 0x01
+
+#define IMX952_PAD_GPIO_IO37__WAKEUPMIX_TOP_GPIO5_IO_17               0x00A4 0x02D4 0x0000 0x00 0x00
+#define IMX952_PAD_GPIO_IO37__WAKEUPMIX_TOP_LPUART7_RX                0x00A4 0x02D4 0x05B0 0x02 0x01
+#define IMX952_PAD_GPIO_IO37__WAKEUPMIX_TOP_LPSPI4_SCK                0x00A4 0x02D4 0x0568 0x04 0x01
+
+#define IMX952_PAD_CCM_CLKO1__CCMSRCGPCMIX_TOP_CLKO_1                 0x00D4 0x0304 0x0000 0x00 0x00
+#define IMX952_PAD_CCM_CLKO1__NETCMIX_TOP_NETC_TMR_1588_TRIG1         0x00D4 0x0304 0x0494 0x01 0x00
+#define IMX952_PAD_CCM_CLKO1__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_26         0x00D4 0x0304 0x04AC 0x04 0x00
+#define IMX952_PAD_CCM_CLKO1__WAKEUPMIX_TOP_GPIO3_IO_26               0x00D4 0x0304 0x0000 0x05 0x00
+
+#define IMX952_PAD_CCM_CLKO2__WAKEUPMIX_TOP_GPIO3_IO_27               0x00D8 0x0308 0x0000 0x05 0x00
+#define IMX952_PAD_CCM_CLKO2__CCMSRCGPCMIX_TOP_CLKO_2                 0x00D8 0x0308 0x0000 0x00 0x00
+#define IMX952_PAD_CCM_CLKO2__NETCMIX_TOP_NETC_TMR_1588_PP1           0x00D8 0x0308 0x0000 0x01 0x00
+#define IMX952_PAD_CCM_CLKO2__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_27         0x00D8 0x0308 0x04B0 0x04 0x00
+
+#define IMX952_PAD_CCM_CLKO3__CCMSRCGPCMIX_TOP_CLKO_3                 0x00DC 0x030C 0x0000 0x00 0x00
+#define IMX952_PAD_CCM_CLKO3__NETCMIX_TOP_NETC_TMR_1588_TRIG2         0x00DC 0x030C 0x0498 0x01 0x00
+#define IMX952_PAD_CCM_CLKO3__WAKEUPMIX_TOP_CAN3_TX                   0x00DC 0x030C 0x0000 0x02 0x00
+#define IMX952_PAD_CCM_CLKO3__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_28         0x00DC 0x030C 0x0000 0x04 0x00
+#define IMX952_PAD_CCM_CLKO3__WAKEUPMIX_TOP_GPIO4_IO_28               0x00DC 0x030C 0x0000 0x05 0x00
+
+#define IMX952_PAD_CCM_CLKO4__CCMSRCGPCMIX_TOP_CLKO_4                 0x00E0 0x0310 0x0000 0x00 0x00
+#define IMX952_PAD_CCM_CLKO4__NETCMIX_TOP_NETC_TMR_1588_PP2           0x00E0 0x0310 0x0000 0x01 0x00
+#define IMX952_PAD_CCM_CLKO4__WAKEUPMIX_TOP_CAN3_RX                   0x00E0 0x0310 0x04A8 0x02 0x00
+#define IMX952_PAD_CCM_CLKO4__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_29         0x00E0 0x0310 0x0000 0x04 0x00
+#define IMX952_PAD_CCM_CLKO4__WAKEUPMIX_TOP_GPIO4_IO_29               0x00E0 0x0310 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_MDC__NETCMIX_TOP_NETC_MDC                    0x00E4 0x0314 0x0484 0x00 0x00
+#define IMX952_PAD_ENET1_MDC__WAKEUPMIX_TOP_LPUART3_DCD_B             0x00E4 0x0314 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_MDC__WAKEUPMIX_TOP_I3C2_SCL                  0x00E4 0x0314 0x0524 0x02 0x00
+#define IMX952_PAD_ENET1_MDC__HSIOMIX_TOP_USB1_OTG_ID                 0x00E4 0x0314 0x0000 0x03 0x00
+#define IMX952_PAD_ENET1_MDC__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_0          0x00E4 0x0314 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_MDC__WAKEUPMIX_TOP_GPIO4_IO_0                0x00E4 0x0314 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_MDIO__NETCMIX_TOP_NETC_MDIO                  0x00E8 0x0318 0x0488 0x00 0x00
+#define IMX952_PAD_ENET1_MDIO__WAKEUPMIX_TOP_LPUART3_RIN_B            0x00E8 0x0318 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_MDIO__WAKEUPMIX_TOP_I3C2_SDA                 0x00E8 0x0318 0x0528 0x02 0x00
+#define IMX952_PAD_ENET1_MDIO__HSIOMIX_TOP_USB1_OTG_PWR               0x00E8 0x0318 0x0000 0x03 0x00
+#define IMX952_PAD_ENET1_MDIO__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_1         0x00E8 0x0318 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_MDIO__WAKEUPMIX_TOP_GPIO4_IO_1               0x00E8 0x0318 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_TD3__NETCMIX_TOP_ETH0_RGMII_TD3              0x00EC 0x031C 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_TD3__WAKEUPMIX_TOP_CAN2_TX                   0x00EC 0x031C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_TD3__HSIOMIX_TOP_USB2_OTG_ID                 0x00EC 0x031C 0x0000 0x03 0x00
+#define IMX952_PAD_ENET1_TD3__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_2          0x00EC 0x031C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_TD3__WAKEUPMIX_TOP_GPIO4_IO_2                0x00EC 0x031C 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RGMII_TD2              0x00F0 0x0320 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RMII_REF50_CLK         0x00F0 0x0320 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_TD2__WAKEUPMIX_TOP_CAN2_RX                   0x00F0 0x0320 0x04A4 0x02 0x01
+#define IMX952_PAD_ENET1_TD2__HSIOMIX_TOP_USB2_OTG_OC                 0x00F0 0x0320 0x0480 0x03 0x00
+#define IMX952_PAD_ENET1_TD2__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_3          0x00F0 0x0320 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_TD2__WAKEUPMIX_TOP_GPIO4_IO_3                0x00F0 0x0320 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RGMII_TD1              0x00F4 0x0324 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_TD1__WAKEUPMIX_TOP_LPUART3_RTS_B             0x00F4 0x0324 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_TD1__WAKEUPMIX_TOP_I3C2_PUR                  0x00F4 0x0324 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_TD1__HSIOMIX_TOP_USB1_OTG_OC                 0x00F4 0x0324 0x047C 0x03 0x00
+#define IMX952_PAD_ENET1_TD1__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_4          0x00F4 0x0324 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_TD1__WAKEUPMIX_TOP_GPIO4_IO_4                0x00F4 0x0324 0x0000 0x05 0x00
+#define IMX952_PAD_ENET1_TD1__WAKEUPMIX_TOP_I3C2_PUR_B                0x00F4 0x0324 0x0000 0x06 0x00
+#define IMX952_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RMII_TXD1              0x00F4 0x0324 0x0000 0x07 0x00
+
+#define IMX952_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RGMII_TD0              0x00F8 0x0328 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_TD0__WAKEUPMIX_TOP_LPUART3_TX                0x00F8 0x0328 0x0588 0x01 0x00
+#define IMX952_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RMII_TXD0              0x00F8 0x0328 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_TD0__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_5          0x00F8 0x0328 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_TD0__WAKEUPMIX_TOP_GPIO4_IO_5                0x00F8 0x0328 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RGMII_TX_CTL        0x00FC 0x032C 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_TX_CTL__WAKEUPMIX_TOP_LPUART3_DTR_B          0x00FC 0x032C 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RMII_TX_EN          0x00FC 0x032C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_TX_CTL__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_6       0x00FC 0x032C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_TX_CTL__WAKEUPMIX_TOP_GPIO4_IO_6             0x00FC 0x032C 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RGMII_TX_CLK           0x0100 0x0330 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RMII_REF50_CLK_OUT     0x0100 0x0330 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_TXC__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_7          0x0100 0x0330 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_TXC__WAKEUPMIX_TOP_GPIO4_IO_7                0x0100 0x0330 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RGMII_RX_CTL        0x0104 0x0334 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_RX_CTL__WAKEUPMIX_TOP_LPUART3_DSR_B          0x0104 0x0334 0x0000 0x01 0x00
+#define IMX952_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RMII_CRS_DV         0x0104 0x0334 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_RX_CTL__HSIOMIX_TOP_USB2_OTG_PWR             0x0104 0x0334 0x0000 0x03 0x00
+#define IMX952_PAD_ENET1_RX_CTL__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_8       0x0104 0x0334 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_RX_CTL__WAKEUPMIX_TOP_GPIO4_IO_8             0x0104 0x0334 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RGMII_RX_CLK           0x0108 0x0338 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RMII_RX_ER             0x0108 0x0338 0x048C 0x01 0x00
+#define IMX952_PAD_ENET1_RXC__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_9          0x0108 0x0338 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_RXC__WAKEUPMIX_TOP_GPIO4_IO_9                0x0108 0x0338 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RGMII_RD0              0x010C 0x033C 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_RD0__WAKEUPMIX_TOP_LPUART3_RX                0x010C 0x033C 0x0584 0x01 0x00
+#define IMX952_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RMII_RXD0              0x010C 0x033C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_RD0__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_10         0x010C 0x033C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_RD0__WAKEUPMIX_TOP_GPIO4_IO_10               0x010C 0x033C 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RGMII_RD1              0x0110 0x0340 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_RD1__WAKEUPMIX_TOP_LPUART3_CTS_B             0x0110 0x0340 0x0580 0x01 0x00
+#define IMX952_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RMII_RXD1              0x0110 0x0340 0x0000 0x02 0x00
+#define IMX952_PAD_ENET1_RD1__WAKEUPMIX_TOP_LPTMR2_ALT0               0x0110 0x0340 0x0574 0x03 0x00
+#define IMX952_PAD_ENET1_RD1__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_11         0x0110 0x0340 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_RD1__WAKEUPMIX_TOP_GPIO4_IO_11               0x0110 0x0340 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RGMII_RD2              0x0114 0x0344 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RMII_RX_ER             0x0114 0x0344 0x048C 0x02 0x01
+#define IMX952_PAD_ENET1_RD2__WAKEUPMIX_TOP_LPTMR2_ALT1               0x0114 0x0344 0x0578 0x03 0x00
+#define IMX952_PAD_ENET1_RD2__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_12         0x0114 0x0344 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_RD2__WAKEUPMIX_TOP_GPIO4_IO_12               0x0114 0x0344 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET1_RD3__NETCMIX_TOP_ETH0_RGMII_RD3              0x0118 0x0348 0x0000 0x00 0x00
+#define IMX952_PAD_ENET1_RD3__WAKEUPMIX_TOP_LPTMR2_ALT2               0x0118 0x0348 0x057C 0x03 0x00
+#define IMX952_PAD_ENET1_RD3__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_13         0x0118 0x0348 0x0000 0x04 0x00
+#define IMX952_PAD_ENET1_RD3__WAKEUPMIX_TOP_GPIO4_IO_13               0x0118 0x0348 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_MDC__NETCMIX_TOP_NETC_MDC                    0x011C 0x034C 0x0484 0x00 0x01
+#define IMX952_PAD_ENET2_MDC__WAKEUPMIX_TOP_LPUART4_DCD_B             0x011C 0x034C 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_MDC__NETCMIX_TOP_SAI2_RX_SYNC                0x011C 0x034C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_MDC__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_14         0x011C 0x034C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_MDC__WAKEUPMIX_TOP_GPIO4_IO_14               0x011C 0x034C 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_MDIO__NETCMIX_TOP_NETC_MDIO                  0x0120 0x0350 0x0488 0x00 0x01
+#define IMX952_PAD_ENET2_MDIO__WAKEUPMIX_TOP_LPUART4_RIN_B            0x0120 0x0350 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_MDIO__NETCMIX_TOP_SAI2_RX_BCLK               0x0120 0x0350 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_MDIO__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_15        0x0120 0x0350 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_MDIO__WAKEUPMIX_TOP_GPIO4_IO_15              0x0120 0x0350 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_TD3__NETCMIX_TOP_SAI2_RX_DATA_0              0x0124 0x0354 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_TD3__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_16         0x0124 0x0354 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_TD3__WAKEUPMIX_TOP_GPIO4_IO_16               0x0124 0x0354 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_TD3__NETCMIX_TOP_ETH1_RGMII_TD3              0x0124 0x0354 0x0000 0x00 0x00
+
+#define IMX952_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RGMII_TD2              0x0128 0x0358 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RMII_REF50_CLK         0x0128 0x0358 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_TD2__NETCMIX_TOP_SAI2_RX_DATA_1              0x0128 0x0358 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_TD2__WAKEUPMIX_TOP_SAI4_TX_SYNC              0x0128 0x0358 0x05D0 0x03 0x00
+#define IMX952_PAD_ENET2_TD2__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_17         0x0128 0x0358 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_TD2__WAKEUPMIX_TOP_GPIO4_IO_17               0x0128 0x0358 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RGMII_TD1              0x012C 0x035C 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_TD1__WAKEUPMIX_TOP_LPUART4_RTS_B             0x012C 0x035C 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_TD1__NETCMIX_TOP_SAI2_RX_DATA_2              0x012C 0x035C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_TD1__WAKEUPMIX_TOP_SAI4_TX_BCLK              0x012C 0x035C 0x05CC 0x03 0x00
+#define IMX952_PAD_ENET2_TD1__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_18         0x012C 0x035C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_TD1__WAKEUPMIX_TOP_GPIO4_IO_18               0x012C 0x035C 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RMII_TXD1              0x012C 0x035C 0x0000 0x06 0x00
+
+#define IMX952_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RGMII_TD0              0x0130 0x0360 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_TD0__WAKEUPMIX_TOP_LPUART4_TX                0x0130 0x0360 0x0594 0x01 0x00
+#define IMX952_PAD_ENET2_TD0__NETCMIX_TOP_SAI2_RX_DATA_3              0x0130 0x0360 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_TD0__WAKEUPMIX_TOP_SAI4_TX_DATA_0            0x0130 0x0360 0x0000 0x03 0x00
+#define IMX952_PAD_ENET2_TD0__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_19         0x0130 0x0360 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_TD0__WAKEUPMIX_TOP_GPIO4_IO_19               0x0130 0x0360 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RMII_TXD0              0x0130 0x0360 0x0000 0x06 0x00
+
+#define IMX952_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RGMII_TX_CTL        0x0134 0x0364 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_TX_CTL__WAKEUPMIX_TOP_LPUART4_DTR_B          0x0134 0x0364 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_TX_CTL__NETCMIX_TOP_SAI2_TX_SYNC             0x0134 0x0364 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RMII_TX_EN          0x0134 0x0364 0x0000 0x03 0x00
+#define IMX952_PAD_ENET2_TX_CTL__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_20      0x0134 0x0364 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_TX_CTL__WAKEUPMIX_TOP_GPIO4_IO_20            0x0134 0x0364 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_TXC__NETCMIX_TOP_ETH1_RGMII_TX_CLK           0x0138 0x0368 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_TXC__NETCMIX_TOP_ETH1_RMII_REF50_CLK_OUT     0x0138 0x0368 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_TXC__NETCMIX_TOP_SAI2_TX_BCLK                0x0138 0x0368 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_TXC__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_21         0x0138 0x0368 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_TXC__WAKEUPMIX_TOP_GPIO4_IO_21               0x0138 0x0368 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RGMII_RX_CTL        0x013C 0x036C 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_RX_CTL__WAKEUPMIX_TOP_LPUART4_DSR_B          0x013C 0x036C 0x0000 0x01 0x00
+#define IMX952_PAD_ENET2_RX_CTL__NETCMIX_TOP_SAI2_TX_DATA_0           0x013C 0x036C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_RX_CTL__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_22      0x013C 0x036C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_RX_CTL__WAKEUPMIX_TOP_GPIO4_IO_22            0x013C 0x036C 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RMII_CRS_DV         0x013C 0x036C 0x0000 0x06 0x00
+
+#define IMX952_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RGMII_RX_CLK           0x0140 0x0370 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RMII_RX_ER             0x0140 0x0370 0x0490 0x01 0x00
+#define IMX952_PAD_ENET2_RXC__NETCMIX_TOP_SAI2_TX_DATA_1              0x0140 0x0370 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_RXC__WAKEUPMIX_TOP_SAI4_RX_SYNC              0x0140 0x0370 0x05C8 0x03 0x00
+#define IMX952_PAD_ENET2_RXC__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_23         0x0140 0x0370 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_RXC__WAKEUPMIX_TOP_GPIO4_IO_23               0x0140 0x0370 0x0000 0x05 0x00
+
+#define IMX952_PAD_ENET2_RD0__NETCMIX_TOP_ETH1_RGMII_RD0              0x0144 0x0374 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_RD0__WAKEUPMIX_TOP_LPUART4_RX                0x0144 0x0374 0x0590 0x01 0x00
+#define IMX952_PAD_ENET2_RD0__NETCMIX_TOP_SAI2_TX_DATA_2              0x0144 0x0374 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_RD0__WAKEUPMIX_TOP_SAI4_RX_BCLK              0x0144 0x0374 0x05C0 0x03 0x00
+#define IMX952_PAD_ENET2_RD0__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_24         0x0144 0x0374 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_RD0__WAKEUPMIX_TOP_GPIO4_IO_24               0x0144 0x0374 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_RD0__NETCMIX_TOP_ETH1_RMII_RXD0              0x0144 0x0374 0x0000 0x06 0x00
+
+#define IMX952_PAD_ENET2_RD1__NETCMIX_TOP_ETH1_RGMII_RD1              0x0148 0x0378 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_RD1__NETCMIX_TOP_SAI2_TX_DATA_3              0x0148 0x0378 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_RD1__WAKEUPMIX_TOP_SAI4_RX_DATA_0            0x0148 0x0378 0x05C4 0x03 0x00
+#define IMX952_PAD_ENET2_RD1__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_25         0x0148 0x0378 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_RD1__WAKEUPMIX_TOP_GPIO4_IO_25               0x0148 0x0378 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_RD1__NETCMIX_TOP_ETH1_RMII_RXD1              0x0148 0x0378 0x0000 0x06 0x00
+
+#define IMX952_PAD_ENET2_RD2__NETCMIX_TOP_ETH1_RGMII_RD2              0x014C 0x037C 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_RD2__WAKEUPMIX_TOP_LPUART4_CTS_B             0x014C 0x037C 0x058C 0x01 0x00
+#define IMX952_PAD_ENET2_RD2__NETCMIX_TOP_SAI2_MCLK                   0x014C 0x037C 0x0000 0x02 0x00
+#define IMX952_PAD_ENET2_RD2__NETCMIX_TOP_MQS2_RIGHT                  0x014C 0x037C 0x0000 0x03 0x00
+#define IMX952_PAD_ENET2_RD2__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_26         0x014C 0x037C 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_RD2__WAKEUPMIX_TOP_GPIO4_IO_26               0x014C 0x037C 0x0000 0x05 0x00
+#define IMX952_PAD_ENET2_RD2__NETCMIX_TOP_ETH1_RMII_RX_ER             0x014C 0x037C 0x0490 0x06 0x01
+
+#define IMX952_PAD_ENET2_RD3__NETCMIX_TOP_ETH1_RGMII_RD3              0x0150 0x0380 0x0000 0x00 0x00
+#define IMX952_PAD_ENET2_RD3__NETCMIX_TOP_MQS2_LEFT                   0x0150 0x0380 0x0000 0x03 0x00
+#define IMX952_PAD_ENET2_RD3__WAKEUPMIX_TOP_FLEXIO2_FLEXIO_27         0x0150 0x0380 0x0000 0x04 0x00
+#define IMX952_PAD_ENET2_RD3__WAKEUPMIX_TOP_GPIO4_IO_27               0x0150 0x0380 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD1_CLK__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_8            0x0154 0x0384 0x04DC 0x04 0x01
+#define IMX952_PAD_SD1_CLK__WAKEUPMIX_TOP_GPIO3_IO_8                  0x0154 0x0384 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_CLK__WAKEUPMIX_TOP_USDHC1_CLK                  0x0154 0x0384 0x0000 0x00 0x00
+
+#define IMX952_PAD_SD1_CMD__WAKEUPMIX_TOP_USDHC1_CMD                  0x0158 0x0388 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_CMD__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_9            0x0158 0x0388 0x04E0 0x04 0x01
+#define IMX952_PAD_SD1_CMD__WAKEUPMIX_TOP_GPIO3_IO_9                  0x0158 0x0388 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD1_DATA0__WAKEUPMIX_TOP_USDHC1_DATA0              0x015C 0x038C 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA0__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_10         0x015C 0x038C 0x04E4 0x04 0x01
+#define IMX952_PAD_SD1_DATA0__WAKEUPMIX_TOP_GPIO3_IO_10               0x015C 0x038C 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD1_DATA1__WAKEUPMIX_TOP_USDHC1_DATA1              0x0160 0x0390 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA1__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_11         0x0160 0x0390 0x04E8 0x04 0x01
+#define IMX952_PAD_SD1_DATA1__WAKEUPMIX_TOP_GPIO3_IO_11               0x0160 0x0390 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_USDHC1_DATA2              0x0164 0x0394 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_XSPI1_INTFA_B             0x0164 0x0394 0x0624 0x01 0x01
+#define IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_12         0x0164 0x0394 0x04EC 0x04 0x01
+#define IMX952_PAD_SD1_DATA2__WAKEUPMIX_TOP_GPIO3_IO_12               0x0164 0x0394 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_DATA2__CCMSRCGPCMIX_TOP_PMIC_READY             0x0164 0x0394 0x0000 0x06 0x00
+
+#define IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_USDHC1_DATA3              0x0168 0x0398 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_XSPI1_A_SS1_B             0x0168 0x0398 0x064C 0x01 0x00
+#define IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_13         0x0168 0x0398 0x04F0 0x04 0x01
+#define IMX952_PAD_SD1_DATA3__WAKEUPMIX_TOP_GPIO3_IO_13               0x0168 0x0398 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_USDHC1_DATA4              0x016C 0x039C 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_XSPI1_A_DATA_4            0x016C 0x039C 0x0638 0x01 0x00
+#define IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_14         0x016C 0x039C 0x04F4 0x04 0x01
+#define IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_GPIO3_IO_14               0x016C 0x039C 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_DATA4__WAKEUPMIX_TOP_XSPI_SLV_DATA_4           0x016C 0x039C 0x066C 0x06 0x00
+
+#define IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_USDHC1_DATA5              0x0170 0x03A0 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_XSPI1_A_DATA_5            0x0170 0x03A0 0x063C 0x01 0x00
+#define IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_USDHC1_RESET_B            0x0170 0x03A0 0x0000 0x02 0x00
+#define IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_15         0x0170 0x03A0 0x04F8 0x04 0x01
+#define IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_GPIO3_IO_15               0x0170 0x03A0 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_DATA5__WAKEUPMIX_TOP_XSPI_SLV_DATA_5           0x0170 0x03A0 0x0670 0x06 0x00
+
+#define IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_USDHC1_DATA6              0x0174 0x03A4 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_XSPI1_A_DATA_6            0x0174 0x03A4 0x0640 0x01 0x00
+#define IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_USDHC1_CD_B               0x0174 0x03A4 0x0000 0x02 0x00
+#define IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_16         0x0174 0x03A4 0x04FC 0x04 0x01
+#define IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_GPIO3_IO_16               0x0174 0x03A4 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_DATA6__WAKEUPMIX_TOP_XSPI_SLV_DATA_6           0x0174 0x03A4 0x0674 0x06 0x00
+
+#define IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_USDHC1_DATA7              0x0178 0x03A8 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_XSPI1_A_DATA_7            0x0178 0x03A8 0x0644 0x01 0x00
+#define IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_USDHC1_WP                 0x0178 0x03A8 0x0000 0x02 0x00
+#define IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_17         0x0178 0x03A8 0x0500 0x04 0x01
+#define IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_GPIO3_IO_17               0x0178 0x03A8 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_DATA7__WAKEUPMIX_TOP_XSPI_SLV_DATA_7           0x0178 0x03A8 0x0678 0x06 0x00
+
+#define IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_USDHC1_STROBE            0x017C 0x03AC 0x0000 0x00 0x00
+#define IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_XSPI1_A_DQS              0x017C 0x03AC 0x0620 0x01 0x00
+#define IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_18        0x017C 0x03AC 0x0504 0x04 0x01
+#define IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_GPIO3_IO_18              0x017C 0x03AC 0x0000 0x05 0x00
+#define IMX952_PAD_SD1_STROBE__WAKEUPMIX_TOP_XSPI_SLV_DQS             0x017C 0x03AC 0x0654 0x06 0x00
+
+#define IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_USDHC2_VSELECT          0x0180 0x03B0 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_USDHC2_WP               0x0180 0x03B0 0x0000 0x01 0x00
+#define IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_LPTMR2_ALT2             0x0180 0x03B0 0x057C 0x02 0x01
+#define IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_19       0x0180 0x03B0 0x0508 0x04 0x01
+#define IMX952_PAD_SD2_VSELECT__WAKEUPMIX_TOP_GPIO3_IO_19             0x0180 0x03B0 0x0000 0x05 0x00
+#define IMX952_PAD_SD2_VSELECT__CCMSRCGPCMIX_TOP_EXT_CLK1             0x0180 0x03B0 0x0478 0x06 0x01
+
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_USDHC3_CLK                  0x0184 0x03B4 0x0604 0x00 0x01
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_XSPI1_A_SCLK                0x0184 0x03B4 0x061C 0x01 0x00
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_SAI5_TX_DATA_1              0x0184 0x03B4 0x0000 0x02 0x00
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_SAI5_RX_DATA_0              0x0184 0x03B4 0x05D8 0x03 0x00
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_20           0x0184 0x03B4 0x050C 0x04 0x01
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_GPIO3_IO_20                 0x0184 0x03B4 0x0000 0x05 0x00
+#define IMX952_PAD_SD3_CLK__WAKEUPMIX_TOP_XSPI_SLV_CLK                0x0184 0x03B4 0x0658 0x06 0x00
+
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_USDHC3_CMD                  0x0188 0x03B8 0x0608 0x00 0x01
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_XSPI1_A_SS0_B               0x0188 0x03B8 0x0648 0x01 0x00
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_SAI5_TX_DATA_2              0x0188 0x03B8 0x0000 0x02 0x00
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_SAI5_RX_SYNC                0x0188 0x03B8 0x05E8 0x03 0x00
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_21           0x0188 0x03B8 0x0510 0x04 0x01
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_GPIO3_IO_21                 0x0188 0x03B8 0x0000 0x05 0x00
+#define IMX952_PAD_SD3_CMD__WAKEUPMIX_TOP_XSPI_SLV_CS                 0x0188 0x03B8 0x0650 0x06 0x00
+
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_USDHC3_DATA0              0x018C 0x03BC 0x060C 0x00 0x01
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_XSPI1_A_DATA_0            0x018C 0x03BC 0x0628 0x01 0x00
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_SAI5_TX_DATA_3            0x018C 0x03BC 0x0000 0x02 0x00
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_SAI5_RX_BCLK              0x018C 0x03BC 0x05D4 0x03 0x00
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_22         0x018C 0x03BC 0x0514 0x04 0x01
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_GPIO3_IO_22               0x018C 0x03BC 0x0000 0x05 0x00
+#define IMX952_PAD_SD3_DATA0__WAKEUPMIX_TOP_XSPI_SLV_DATA_0           0x018C 0x03BC 0x065C 0x06 0x00
+
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_USDHC3_DATA1              0x0190 0x03C0 0x0610 0x00 0x01
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_XSPI1_A_DATA_1            0x0190 0x03C0 0x062C 0x01 0x00
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_SAI5_RX_DATA_1            0x0190 0x03C0 0x05DC 0x02 0x00
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_SAI5_TX_DATA_0            0x0190 0x03C0 0x0000 0x03 0x00
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_23         0x0190 0x03C0 0x0518 0x04 0x01
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_GPIO3_IO_23               0x0190 0x03C0 0x0000 0x05 0x00
+#define IMX952_PAD_SD3_DATA1__WAKEUPMIX_TOP_XSPI_SLV_DATA_1           0x0190 0x03C0 0x0660 0x06 0x00
+
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_USDHC3_DATA2              0x0194 0x03C4 0x0614 0x00 0x01
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_XSPI1_A_DATA_2            0x0194 0x03C4 0x0630 0x01 0x00
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_SAI5_RX_DATA_2            0x0194 0x03C4 0x05E0 0x02 0x00
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_SAI5_TX_SYNC              0x0194 0x03C4 0x05F0 0x03 0x00
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_24         0x0194 0x03C4 0x051C 0x04 0x01
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_GPIO3_IO_24               0x0194 0x03C4 0x0000 0x05 0x00
+#define IMX952_PAD_SD3_DATA2__WAKEUPMIX_TOP_XSPI_SLV_DATA_2           0x0194 0x03C4 0x0664 0x06 0x00
+
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_USDHC3_DATA3              0x0198 0x03C8 0x0618 0x00 0x01
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_XSPI1_A_DATA_3            0x0198 0x03C8 0x0634 0x01 0x00
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_SAI5_RX_DATA_3            0x0198 0x03C8 0x05E4 0x02 0x00
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_SAI5_TX_BCLK              0x0198 0x03C8 0x05EC 0x03 0x00
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_25         0x0198 0x03C8 0x0520 0x04 0x01
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_GPIO3_IO_25               0x0198 0x03C8 0x0000 0x05 0x00
+#define IMX952_PAD_SD3_DATA3__WAKEUPMIX_TOP_XSPI_SLV_DATA_3           0x0198 0x03C8 0x0668 0x06 0x00
+
+#define IMX952_PAD_XSPI1_DATA0__WAKEUPMIX_TOP_XSPI1_A_DATA_0          0x019C 0x03CC 0x0628 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA0__NETCMIX_TOP_SAI2_TX_DATA_4            0x019C 0x03CC 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_DATA0__WAKEUPMIX_TOP_SAI4_TX_BCLK            0x019C 0x03CC 0x05CC 0x02 0x01
+#define IMX952_PAD_XSPI1_DATA0__WAKEUPMIX_TOP_SAI4_RX_DATA_1          0x019C 0x03CC 0x0000 0x03 0x00
+#define IMX952_PAD_XSPI1_DATA0__WAKEUPMIX_TOP_XSPI_SLV_DATA_0         0x019C 0x03CC 0x065C 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA0__WAKEUPMIX_TOP_GPIO5_IO_0              0x019C 0x03CC 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA1__WAKEUPMIX_TOP_XSPI1_A_DATA_1          0x01A0 0x03D0 0x062C 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA1__NETCMIX_TOP_SAI2_TX_DATA_5            0x01A0 0x03D0 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_DATA1__WAKEUPMIX_TOP_SAI4_TX_SYNC            0x01A0 0x03D0 0x05D0 0x02 0x01
+#define IMX952_PAD_XSPI1_DATA1__WAKEUPMIX_TOP_SAI4_TX_DATA_1          0x01A0 0x03D0 0x0000 0x03 0x00
+#define IMX952_PAD_XSPI1_DATA1__WAKEUPMIX_TOP_XSPI_SLV_DATA_1         0x01A0 0x03D0 0x0660 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA1__WAKEUPMIX_TOP_GPIO5_IO_1              0x01A0 0x03D0 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA2__WAKEUPMIX_TOP_XSPI1_A_DATA_2          0x01A4 0x03D4 0x0630 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA2__NETCMIX_TOP_SAI2_TX_DATA_6            0x01A4 0x03D4 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_DATA2__WAKEUPMIX_TOP_SAI4_TX_DATA_0          0x01A4 0x03D4 0x0000 0x02 0x00
+#define IMX952_PAD_XSPI1_DATA2__WAKEUPMIX_TOP_XSPI_SLV_DATA_2         0x01A4 0x03D4 0x0664 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA2__WAKEUPMIX_TOP_GPIO5_IO_2              0x01A4 0x03D4 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA3__WAKEUPMIX_TOP_XSPI1_A_DATA_3          0x01A8 0x03D8 0x0634 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA3__NETCMIX_TOP_SAI2_TX_DATA_7            0x01A8 0x03D8 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_DATA3__WAKEUPMIX_TOP_SAI4_RX_DATA_0          0x01A8 0x03D8 0x05C4 0x02 0x01
+#define IMX952_PAD_XSPI1_DATA3__WAKEUPMIX_TOP_XSPI_SLV_DATA_3         0x01A8 0x03D8 0x0668 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA3__WAKEUPMIX_TOP_GPIO5_IO_3              0x01A8 0x03D8 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA4__WAKEUPMIX_TOP_XSPI1_A_DATA_4          0x01AC 0x03DC 0x0638 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA4__WAKEUPMIX_TOP_SAI5_TX_DATA_0          0x01AC 0x03DC 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_DATA4__WAKEUPMIX_TOP_SAI5_RX_DATA_1          0x01AC 0x03DC 0x05DC 0x02 0x01
+#define IMX952_PAD_XSPI1_DATA4__WAKEUPMIX_TOP_XSPI_SLV_DATA_4         0x01AC 0x03DC 0x066C 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA4__WAKEUPMIX_TOP_GPIO5_IO_4              0x01AC 0x03DC 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA5__WAKEUPMIX_TOP_XSPI1_A_DATA_5          0x01B0 0x03E0 0x063C 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA5__WAKEUPMIX_TOP_SAI5_TX_SYNC            0x01B0 0x03E0 0x05F0 0x01 0x01
+#define IMX952_PAD_XSPI1_DATA5__WAKEUPMIX_TOP_SAI5_RX_DATA_2          0x01B0 0x03E0 0x05E0 0x02 0x01
+#define IMX952_PAD_XSPI1_DATA5__NETCMIX_TOP_SAI2_RX_DATA_6            0x01B0 0x03E0 0x049C 0x03 0x00
+#define IMX952_PAD_XSPI1_DATA5__WAKEUPMIX_TOP_XSPI_SLV_DATA_5         0x01B0 0x03E0 0x0670 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA5__WAKEUPMIX_TOP_GPIO5_IO_5              0x01B0 0x03E0 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA6__WAKEUPMIX_TOP_XSPI1_A_DATA_6          0x01B4 0x03E4 0x0640 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA6__WAKEUPMIX_TOP_SAI5_TX_BCLK            0x01B4 0x03E4 0x05EC 0x01 0x01
+#define IMX952_PAD_XSPI1_DATA6__WAKEUPMIX_TOP_SAI5_RX_DATA_3          0x01B4 0x03E4 0x05E4 0x02 0x01
+#define IMX952_PAD_XSPI1_DATA6__NETCMIX_TOP_SAI2_RX_DATA_7            0x01B4 0x03E4 0x04A0 0x03 0x00
+#define IMX952_PAD_XSPI1_DATA6__WAKEUPMIX_TOP_XSPI_SLV_DATA_6         0x01B4 0x03E4 0x0674 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA6__WAKEUPMIX_TOP_GPIO5_IO_6              0x01B4 0x03E4 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DATA7__WAKEUPMIX_TOP_XSPI1_A_DATA_7          0x01B8 0x03E8 0x0644 0x00 0x01
+#define IMX952_PAD_XSPI1_DATA7__WAKEUPMIX_TOP_SAI5_RX_DATA_0          0x01B8 0x03E8 0x05D8 0x01 0x01
+#define IMX952_PAD_XSPI1_DATA7__WAKEUPMIX_TOP_SAI5_TX_DATA_1          0x01B8 0x03E8 0x0000 0x02 0x00
+#define IMX952_PAD_XSPI1_DATA7__WAKEUPMIX_TOP_XSPI_SLV_DATA_7         0x01B8 0x03E8 0x0678 0x04 0x01
+#define IMX952_PAD_XSPI1_DATA7__WAKEUPMIX_TOP_GPIO5_IO_7              0x01B8 0x03E8 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_DQS__WAKEUPMIX_TOP_XSPI1_A_DQS               0x01BC 0x03EC 0x0620 0x00 0x01
+#define IMX952_PAD_XSPI1_DQS__WAKEUPMIX_TOP_SAI5_RX_SYNC              0x01BC 0x03EC 0x05E8 0x01 0x01
+#define IMX952_PAD_XSPI1_DQS__WAKEUPMIX_TOP_SAI5_TX_DATA_2            0x01BC 0x03EC 0x0000 0x02 0x00
+#define IMX952_PAD_XSPI1_DQS__NETCMIX_TOP_SAI2_RX_DATA_6              0x01BC 0x03EC 0x049C 0x03 0x01
+#define IMX952_PAD_XSPI1_DQS__WAKEUPMIX_TOP_XSPI_SLV_DQS              0x01BC 0x03EC 0x0654 0x04 0x01
+#define IMX952_PAD_XSPI1_DQS__WAKEUPMIX_TOP_GPIO5_IO_8                0x01BC 0x03EC 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_SCLK__WAKEUPMIX_TOP_XSPI1_A_SCLK             0x01C0 0x03F0 0x061C 0x00 0x01
+#define IMX952_PAD_XSPI1_SCLK__NETCMIX_TOP_SAI2_RX_DATA_4             0x01C0 0x03F0 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_SCLK__WAKEUPMIX_TOP_SAI4_RX_SYNC             0x01C0 0x03F0 0x05C8 0x02 0x01
+#define IMX952_PAD_XSPI1_SCLK__WAKEUPMIX_TOP_XSPI_SLV_CLK             0x01C0 0x03F0 0x0658 0x04 0x01
+#define IMX952_PAD_XSPI1_SCLK__WAKEUPMIX_TOP_GPIO5_IO_9               0x01C0 0x03F0 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_SS0_B__WAKEUPMIX_TOP_XSPI1_A_SS0_B           0x01C4 0x03F4 0x0648 0x00 0x01
+#define IMX952_PAD_XSPI1_SS0_B__NETCMIX_TOP_SAI2_RX_DATA_5            0x01C4 0x03F4 0x0000 0x01 0x00
+#define IMX952_PAD_XSPI1_SS0_B__WAKEUPMIX_TOP_SAI4_RX_BCLK            0x01C4 0x03F4 0x05C0 0x02 0x01
+#define IMX952_PAD_XSPI1_SS0_B__WAKEUPMIX_TOP_XSPI_SLV_CS             0x01C4 0x03F4 0x0650 0x04 0x01
+#define IMX952_PAD_XSPI1_SS0_B__WAKEUPMIX_TOP_GPIO5_IO_10             0x01C4 0x03F4 0x0000 0x05 0x00
+
+#define IMX952_PAD_XSPI1_SS1_B__WAKEUPMIX_TOP_XSPI1_A_SS1_B           0x01C8 0x03F8 0x064C 0x00 0x01
+#define IMX952_PAD_XSPI1_SS1_B__WAKEUPMIX_TOP_SAI5_RX_BCLK            0x01C8 0x03F8 0x05D4 0x01 0x01
+#define IMX952_PAD_XSPI1_SS1_B__WAKEUPMIX_TOP_SAI5_TX_DATA_3          0x01C8 0x03F8 0x0000 0x02 0x00
+#define IMX952_PAD_XSPI1_SS1_B__NETCMIX_TOP_SAI2_RX_DATA_7            0x01C8 0x03F8 0x04A0 0x03 0x01
+#define IMX952_PAD_XSPI1_SS1_B__WAKEUPMIX_TOP_GPIO5_IO_11             0x01C8 0x03F8 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD2_CD_B__WAKEUPMIX_TOP_USDHC2_CD_B                0x01CC 0x03FC 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_CD_B__NETCMIX_TOP_NETC_TMR_1588_TRIG1          0x01CC 0x03FC 0x0494 0x01 0x01
+#define IMX952_PAD_SD2_CD_B__WAKEUPMIX_TOP_I3C2_SCL                   0x01CC 0x03FC 0x0524 0x02 0x01
+#define IMX952_PAD_SD2_CD_B__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_0           0x01CC 0x03FC 0x04BC 0x04 0x01
+#define IMX952_PAD_SD2_CD_B__WAKEUPMIX_TOP_GPIO3_IO_0                 0x01CC 0x03FC 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_USDHC2_CLK                  0x01D0 0x0400 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_CLK__NETCMIX_TOP_NETC_TMR_1588_PP1             0x01D0 0x0400 0x0000 0x01 0x00
+#define IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_I3C2_SDA                    0x01D0 0x0400 0x0528 0x02 0x01
+#define IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_1            0x01D0 0x0400 0x04C0 0x04 0x01
+#define IMX952_PAD_SD2_CLK__WAKEUPMIX_TOP_GPIO3_IO_1                  0x01D0 0x0400 0x0000 0x05 0x00
+#define IMX952_PAD_SD2_CLK__CCMSRCGPCMIX_TOP_OBSERVE_0                0x01D0 0x0400 0x0000 0x06 0x00
+
+#define IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_USDHC2_CMD                  0x01D4 0x0404 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_CMD__NETCMIX_TOP_NETC_TMR_1588_TRIG2           0x01D4 0x0404 0x0498 0x01 0x01
+#define IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_I3C2_PUR                    0x01D4 0x0404 0x0000 0x02 0x00
+#define IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_I3C2_PUR_B                  0x01D4 0x0404 0x0000 0x03 0x00
+#define IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_2            0x01D4 0x0404 0x04C4 0x04 0x01
+#define IMX952_PAD_SD2_CMD__WAKEUPMIX_TOP_GPIO3_IO_2                  0x01D4 0x0404 0x0000 0x05 0x00
+#define IMX952_PAD_SD2_CMD__CCMSRCGPCMIX_TOP_OBSERVE_1                0x01D4 0x0404 0x0000 0x06 0x00
+
+#define IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_USDHC2_DATA0              0x01D8 0x0408 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_DATA0__NETCMIX_TOP_NETC_TMR_1588_PP2           0x01D8 0x0408 0x0000 0x01 0x00
+#define IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_CAN2_TX                   0x01D8 0x0408 0x0000 0x02 0x00
+#define IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_3          0x01D8 0x0408 0x04C8 0x04 0x01
+#define IMX952_PAD_SD2_DATA0__WAKEUPMIX_TOP_GPIO3_IO_3                0x01D8 0x0408 0x0000 0x05 0x00
+#define IMX952_PAD_SD2_DATA0__CCMSRCGPCMIX_TOP_OBSERVE_2              0x01D8 0x0408 0x0000 0x06 0x00
+
+#define IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_USDHC2_DATA1              0x01DC 0x040C 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_DATA1__NETCMIX_TOP_NETC_TMR_1588_CLK           0x01DC 0x040C 0x0000 0x01 0x00
+#define IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_CAN2_RX                   0x01DC 0x040C 0x04A4 0x02 0x03
+#define IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_4          0x01DC 0x040C 0x04CC 0x04 0x01
+#define IMX952_PAD_SD2_DATA1__WAKEUPMIX_TOP_GPIO3_IO_4                0x01DC 0x040C 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD2_DATA2__WAKEUPMIX_TOP_USDHC2_DATA2              0x01E0 0x0410 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_DATA2__NETCMIX_TOP_NETC_TMR_1588_PP3           0x01E0 0x0410 0x0000 0x01 0x00
+#define IMX952_PAD_SD2_DATA2__NETCMIX_TOP_MQS2_RIGHT                  0x01E0 0x0410 0x0000 0x02 0x00
+#define IMX952_PAD_SD2_DATA2__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_5          0x01E0 0x0410 0x04D0 0x04 0x01
+#define IMX952_PAD_SD2_DATA2__WAKEUPMIX_TOP_GPIO3_IO_5                0x01E0 0x0410 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_USDHC2_DATA3              0x01E4 0x0414 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_LPTMR2_ALT0               0x01E4 0x0414 0x0574 0x01 0x01
+#define IMX952_PAD_SD2_DATA3__NETCMIX_TOP_MQS2_LEFT                   0x01E4 0x0414 0x0000 0x02 0x00
+#define IMX952_PAD_SD2_DATA3__NETCMIX_TOP_NETC_TMR_1588_ALARM1        0x01E4 0x0414 0x0000 0x03 0x00
+#define IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_6          0x01E4 0x0414 0x04D4 0x04 0x01
+#define IMX952_PAD_SD2_DATA3__WAKEUPMIX_TOP_GPIO3_IO_6                0x01E4 0x0414 0x0000 0x05 0x00
+
+#define IMX952_PAD_SD2_RESET_B__WAKEUPMIX_TOP_USDHC2_RESET_B          0x01E8 0x0418 0x0000 0x00 0x00
+#define IMX952_PAD_SD2_RESET_B__WAKEUPMIX_TOP_LPTMR2_ALT1             0x01E8 0x0418 0x0578 0x01 0x01
+#define IMX952_PAD_SD2_RESET_B__NETCMIX_TOP_NETC_TMR_1588_GCLK        0x01E8 0x0418 0x0000 0x03 0x00
+#define IMX952_PAD_SD2_RESET_B__WAKEUPMIX_TOP_FLEXIO1_FLEXIO_7        0x01E8 0x0418 0x04D8 0x04 0x01
+#define IMX952_PAD_SD2_RESET_B__WAKEUPMIX_TOP_GPIO3_IO_7              0x01E8 0x0418 0x0000 0x05 0x00
+
+#define IMX952_PAD_I2C1_SCL__AONMIX_TOP_LPI2C1_SCL                    0x01EC 0x041C 0x0000 0x00 0x00
+#define IMX952_PAD_I2C1_SCL__AONMIX_TOP_I3C1_SCL                      0x01EC 0x041C 0x0000 0x01 0x00
+#define IMX952_PAD_I2C1_SCL__AONMIX_TOP_LPUART1_DCD_B                 0x01EC 0x041C 0x0000 0x02 0x00
+#define IMX952_PAD_I2C1_SCL__AONMIX_TOP_TPM2_CH0                      0x01EC 0x041C 0x0000 0x03 0x00
+#define IMX952_PAD_I2C1_SCL__VPUMIX_TOP_UART_RX                       0x01EC 0x041C 0x0000 0x04 0x00
+#define IMX952_PAD_I2C1_SCL__AONMIX_TOP_GPIO1_IO_0                    0x01EC 0x041C 0x0000 0x05 0x00
+
+#define IMX952_PAD_I2C1_SDA__AONMIX_TOP_LPI2C1_SDA                    0x01F0 0x0420 0x0000 0x00 0x00
+#define IMX952_PAD_I2C1_SDA__AONMIX_TOP_I3C1_SDA                      0x01F0 0x0420 0x0000 0x01 0x00
+#define IMX952_PAD_I2C1_SDA__AONMIX_TOP_LPUART1_RIN_B                 0x01F0 0x0420 0x0000 0x02 0x00
+#define IMX952_PAD_I2C1_SDA__AONMIX_TOP_TPM2_CH1                      0x01F0 0x0420 0x0000 0x03 0x00
+#define IMX952_PAD_I2C1_SDA__VPUMIX_TOP_UART_TX                       0x01F0 0x0420 0x0000 0x04 0x00
+#define IMX952_PAD_I2C1_SDA__AONMIX_TOP_GPIO1_IO_1                    0x01F0 0x0420 0x0000 0x05 0x00
+
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL                    0x01F4 0x0424 0x0000 0x00 0x00
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_I3C1_PUR                      0x01F4 0x0424 0x0000 0x01 0x00
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_LPUART2_DCD_B                 0x01F4 0x0424 0x0000 0x02 0x00
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_TPM2_CH2                      0x01F4 0x0424 0x0000 0x03 0x00
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_SAI1_RX_SYNC                  0x01F4 0x0424 0x0000 0x04 0x00
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_GPIO1_IO_2                    0x01F4 0x0424 0x0000 0x05 0x00
+#define IMX952_PAD_I2C2_SCL__AONMIX_TOP_I3C1_PUR_B                    0x01F4 0x0424 0x0000 0x06 0x00
+
+#define IMX952_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA                    0x01F8 0x0428 0x0000 0x00 0x00
+#define IMX952_PAD_I2C2_SDA__AONMIX_TOP_LPUART2_RIN_B                 0x01F8 0x0428 0x0000 0x02 0x00
+#define IMX952_PAD_I2C2_SDA__AONMIX_TOP_TPM2_CH3                      0x01F8 0x0428 0x0000 0x03 0x00
+#define IMX952_PAD_I2C2_SDA__AONMIX_TOP_SAI1_RX_BCLK                  0x01F8 0x0428 0x0000 0x04 0x00
+#define IMX952_PAD_I2C2_SDA__AONMIX_TOP_GPIO1_IO_3                    0x01F8 0x0428 0x0000 0x05 0x00
+
+#define IMX952_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX                   0x01FC 0x042C 0x0000 0x00 0x00
+#define IMX952_PAD_UART1_RXD__AONMIX_TOP_UART_CSSI_RX                 0x01FC 0x042C 0x0000 0x01 0x00
+#define IMX952_PAD_UART1_RXD__AONMIX_TOP_LPSPI2_SIN                   0x01FC 0x042C 0x0000 0x02 0x00
+#define IMX952_PAD_UART1_RXD__AONMIX_TOP_TPM1_CH0                     0x01FC 0x042C 0x0000 0x03 0x00
+#define IMX952_PAD_UART1_RXD__AONMIX_TOP_GPIO1_IO_4                   0x01FC 0x042C 0x0000 0x05 0x00
+
+#define IMX952_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX                   0x0200 0x0430 0x0000 0x00 0x00
+#define IMX952_PAD_UART1_TXD__AONMIX_TOP_UART_CSSI_TX                 0x0200 0x0430 0x0000 0x01 0x00
+#define IMX952_PAD_UART1_TXD__AONMIX_TOP_LPSPI2_PCS0                  0x0200 0x0430 0x0000 0x02 0x00
+#define IMX952_PAD_UART1_TXD__AONMIX_TOP_TPM1_CH1                     0x0200 0x0430 0x0000 0x03 0x00
+#define IMX952_PAD_UART1_TXD__AONMIX_TOP_GPIO1_IO_5                   0x0200 0x0430 0x0000 0x05 0x00
+
+#define IMX952_PAD_UART2_RXD__AONMIX_TOP_LPUART2_RX                   0x0204 0x0434 0x0000 0x00 0x00
+#define IMX952_PAD_UART2_RXD__AONMIX_TOP_LPUART1_CTS_B                0x0204 0x0434 0x0000 0x01 0x00
+#define IMX952_PAD_UART2_RXD__AONMIX_TOP_LPSPI2_SOUT                  0x0204 0x0434 0x0000 0x02 0x00
+#define IMX952_PAD_UART2_RXD__AONMIX_TOP_TPM1_CH2                     0x0204 0x0434 0x0000 0x03 0x00
+#define IMX952_PAD_UART2_RXD__AONMIX_TOP_SAI1_MCLK                    0x0204 0x0434 0x0474 0x04 0x00
+#define IMX952_PAD_UART2_RXD__AONMIX_TOP_GPIO1_IO_6                   0x0204 0x0434 0x0000 0x05 0x00
+
+#define IMX952_PAD_UART2_TXD__AONMIX_TOP_LPUART2_TX                   0x0208 0x0438 0x0000 0x00 0x00
+#define IMX952_PAD_UART2_TXD__AONMIX_TOP_LPUART1_RTS_B                0x0208 0x0438 0x0000 0x01 0x00
+#define IMX952_PAD_UART2_TXD__AONMIX_TOP_LPSPI2_SCK                   0x0208 0x0438 0x0000 0x02 0x00
+#define IMX952_PAD_UART2_TXD__AONMIX_TOP_TPM1_CH3                     0x0208 0x0438 0x0000 0x03 0x00
+#define IMX952_PAD_UART2_TXD__AONMIX_TOP_GPIO1_IO_7                   0x0208 0x0438 0x0000 0x05 0x00
+
+#define IMX952_PAD_PDM_CLK__AONMIX_TOP_PDM_CLK                        0x020C 0x043C 0x0000 0x00 0x00
+#define IMX952_PAD_PDM_CLK__AONMIX_TOP_MQS1_LEFT                      0x020C 0x043C 0x0000 0x01 0x00
+#define IMX952_PAD_PDM_CLK__AONMIX_TOP_LPTMR1_ALT0                    0x020C 0x043C 0x0000 0x04 0x00
+#define IMX952_PAD_PDM_CLK__AONMIX_TOP_GPIO1_IO_8                     0x020C 0x043C 0x0000 0x05 0x00
+#define IMX952_PAD_PDM_CLK__AONMIX_TOP_CAN1_TX                        0x020C 0x043C 0x0000 0x06 0x00
+
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_PDM_BIT_STREAM_0       0x0210 0x0440 0x0464 0x00 0x00
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_MQS1_RIGHT             0x0210 0x0440 0x0000 0x01 0x00
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_LPSPI1_PCS1            0x0210 0x0440 0x0000 0x02 0x00
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_TPM1_EXTCLK            0x0210 0x0440 0x0000 0x03 0x00
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_LPTMR1_ALT1            0x0210 0x0440 0x0000 0x04 0x00
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_GPIO1_IO_9             0x0210 0x0440 0x0000 0x05 0x00
+#define IMX952_PAD_PDM_BIT_STREAM0__AONMIX_TOP_CAN1_RX                0x0210 0x0440 0x0460 0x06 0x00
+
+#define IMX952_PAD_PDM_BIT_STREAM1__AONMIX_TOP_PDM_BIT_STREAM_1       0x0214 0x0444 0x0468 0x00 0x00
+#define IMX952_PAD_PDM_BIT_STREAM1__AONMIX_TOP_NMI                    0x0214 0x0444 0x0000 0x01 0x00
+#define IMX952_PAD_PDM_BIT_STREAM1__AONMIX_TOP_LPSPI2_PCS1            0x0214 0x0444 0x0000 0x02 0x00
+#define IMX952_PAD_PDM_BIT_STREAM1__AONMIX_TOP_TPM2_EXTCLK            0x0214 0x0444 0x0000 0x03 0x00
+#define IMX952_PAD_PDM_BIT_STREAM1__AONMIX_TOP_LPTMR1_ALT2            0x0214 0x0444 0x0000 0x04 0x00
+#define IMX952_PAD_PDM_BIT_STREAM1__AONMIX_TOP_GPIO1_IO_10            0x0214 0x0444 0x0000 0x05 0x00
+#define IMX952_PAD_PDM_BIT_STREAM1__CCMSRCGPCMIX_TOP_EXT_CLK1         0x0214 0x0444 0x0478 0x06 0x00
+
+#define IMX952_PAD_SAI1_TXFS__AONMIX_TOP_SAI1_TX_SYNC                 0x0218 0x0448 0x0000 0x00 0x00
+#define IMX952_PAD_SAI1_TXFS__AONMIX_TOP_SAI1_TX_DATA_1               0x0218 0x0448 0x0000 0x01 0x00
+#define IMX952_PAD_SAI1_TXFS__AONMIX_TOP_LPSPI1_PCS0                  0x0218 0x0448 0x0000 0x02 0x00
+#define IMX952_PAD_SAI1_TXFS__AONMIX_TOP_LPUART2_DTR_B                0x0218 0x0448 0x0000 0x03 0x00
+#define IMX952_PAD_SAI1_TXFS__AONMIX_TOP_MQS1_LEFT                    0x0218 0x0448 0x0000 0x04 0x00
+#define IMX952_PAD_SAI1_TXFS__AONMIX_TOP_GPIO1_IO_11                  0x0218 0x0448 0x0000 0x05 0x00
+
+#define IMX952_PAD_SAI1_TXC__AONMIX_TOP_SAI1_TX_BCLK                  0x021C 0x044C 0x0000 0x00 0x00
+#define IMX952_PAD_SAI1_TXC__AONMIX_TOP_LPUART2_CTS_B                 0x021C 0x044C 0x0000 0x01 0x00
+#define IMX952_PAD_SAI1_TXC__AONMIX_TOP_LPSPI1_SIN                    0x021C 0x044C 0x0000 0x02 0x00
+#define IMX952_PAD_SAI1_TXC__AONMIX_TOP_LPUART1_DSR_B                 0x021C 0x044C 0x0000 0x03 0x00
+#define IMX952_PAD_SAI1_TXC__AONMIX_TOP_CAN1_RX                       0x021C 0x044C 0x0460 0x04 0x01
+#define IMX952_PAD_SAI1_TXC__AONMIX_TOP_GPIO1_IO_12                   0x021C 0x044C 0x0000 0x05 0x00
+
+#define IMX952_PAD_SAI1_TXD0__AONMIX_TOP_SAI1_TX_DATA_0               0x0220 0x0450 0x0000 0x00 0x00
+#define IMX952_PAD_SAI1_TXD0__AONMIX_TOP_LPUART2_RTS_B                0x0220 0x0450 0x0000 0x01 0x00
+#define IMX952_PAD_SAI1_TXD0__AONMIX_TOP_LPSPI1_SCK                   0x0220 0x0450 0x0000 0x02 0x00
+#define IMX952_PAD_SAI1_TXD0__AONMIX_TOP_LPUART1_DTR_B                0x0220 0x0450 0x0000 0x03 0x00
+#define IMX952_PAD_SAI1_TXD0__AONMIX_TOP_CAN1_TX                      0x0220 0x0450 0x0000 0x04 0x00
+#define IMX952_PAD_SAI1_TXD0__AONMIX_TOP_GPIO1_IO_13                  0x0220 0x0450 0x0000 0x05 0x00
+
+#define IMX952_PAD_SAI1_RXD0__AONMIX_TOP_SAI1_RX_DATA_0               0x0224 0x0454 0x0000 0x00 0x00
+#define IMX952_PAD_SAI1_RXD0__AONMIX_TOP_SAI1_MCLK                    0x0224 0x0454 0x0474 0x01 0x01
+#define IMX952_PAD_SAI1_RXD0__AONMIX_TOP_LPSPI1_SOUT                  0x0224 0x0454 0x0000 0x02 0x00
+#define IMX952_PAD_SAI1_RXD0__AONMIX_TOP_LPUART2_DSR_B                0x0224 0x0454 0x0000 0x03 0x00
+#define IMX952_PAD_SAI1_RXD0__AONMIX_TOP_MQS1_RIGHT                   0x0224 0x0454 0x0000 0x04 0x00
+#define IMX952_PAD_SAI1_RXD0__AONMIX_TOP_GPIO1_IO_14                  0x0224 0x0454 0x0000 0x05 0x00
+
+#define IMX952_PAD_WDOG_ANY__AONMIX_TOP_WDOG_ANY                      0x0228 0x0458 0x0000 0x00 0x00
+#define IMX952_PAD_WDOG_ANY__AONMIX_TOP_FCCU_EOUT1                    0x0228 0x0458 0x0000 0x01 0x00
+#define IMX952_PAD_WDOG_ANY__AONMIX_TOP_GPIO1_IO_15                   0x0228 0x0458 0x0000 0x05 0x00
+#endif /* __DTS_IMX952_PINFUNC_H__ */
diff --git a/src/arm64/freescale/imx952-power.h b/src/arm64/freescale/imx952-power.h
new file mode 100644 (file)
index 0000000..1d0fb8c
--- /dev/null
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ *  Copyright 2025 NXP
+ */
+
+#ifndef __IMX952_POWER_H__
+#define __IMX952_POWER_H__
+
+#define IMX952_PD_ANA          0
+#define IMX952_PD_AON          1
+#define IMX952_PD_BBSM         2
+#define IMX952_PD_CAMERA       3
+#define IMX952_PD_CCMSRCGPC    4
+#define IMX952_PD_A55C0                5
+#define IMX952_PD_A55C1                6
+#define IMX952_PD_A55C2                7
+#define IMX952_PD_A55C3                8
+#define IMX952_PD_A55P         9
+#define IMX952_PD_DDR          10
+#define IMX952_PD_DISPLAY      11
+#define IMX952_PD_GPU          12
+#define IMX952_PD_HSIO_TOP     13
+#define IMX952_PD_HSIO_WAON    14
+#define IMX952_PD_M7           15
+#define IMX952_PD_NETC         16
+#define IMX952_PD_NOC          17
+#define IMX952_PD_NPU          18
+#define IMX952_PD_VPU          19
+#define IMX952_PD_WAKEUP       20
+
+#define IMX952_PERF_M33                0
+#define IMX952_PERF_WAKEUP     1
+#define IMX952_PERF_M7         2
+#define IMX952_PERF_DRAM       3
+#define IMX952_PERF_HSIO       4
+#define IMX952_PERF_NPU                5
+#define IMX952_PERF_NOC                6
+#define IMX952_PERF_A55                7
+#define IMX952_PERF_GPU                8
+#define IMX952_PERF_VPU                9
+#define IMX952_PERF_CAM                10
+#define IMX952_PERF_DISP       11
+
+#endif
diff --git a/src/arm64/freescale/imx952.dtsi b/src/arm64/freescale/imx952.dtsi
new file mode 100644 (file)
index 0000000..91fe491
--- /dev/null
@@ -0,0 +1,1266 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
+/*
+ * Copyright 2025-2026 NXP
+ */
+
+#include <dt-bindings/dma/fsl-edma.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+#include "imx952-clock.h"
+#include "imx952-pinfunc.h"
+#include "imx952-power.h"
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       clk_ext1: clock-ext1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <133000000>;
+               clock-output-names = "clk_ext1";
+       };
+
+       clk_dummy: clock-dummy {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "dummy";
+       };
+
+       clk_ldb_pll_pixel: clock-ldb-pll-div7 {
+               compatible = "fixed-factor-clock";
+               clocks = <&scmi_clk IMX952_CLK_LDBPLL>;
+               #clock-cells = <0>;
+               clock-div = <7>;
+               clock-mult = <1>;
+               clock-output-names = "ldb_pll_div7";
+       };
+
+       clk_osc_24m: clock-osc-24m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+               clock-output-names = "osc_24m";
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               idle-states {
+                       entry-method = "psci";
+
+                       cpu_pd_wait: cpu-pd-wait {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0010033>;
+                               local-timer-stop;
+                               entry-latency-us = <1000>;
+                               exit-latency-us = <700>;
+                               min-residency-us = <2700>;
+                               wakeup-latency-us = <1500>;
+                       };
+               };
+
+               A55_0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       cpu-idle-states = <&cpu_pd_wait>;
+                       power-domains = <&scmi_perf IMX952_PERF_A55>;
+                       power-domain-names = "perf";
+                       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_cache_l0>;
+               };
+
+               A55_1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       cpu-idle-states = <&cpu_pd_wait>;
+                       power-domains = <&scmi_perf IMX952_PERF_A55>;
+                       power-domain-names = "perf";
+                       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_cache_l1>;
+               };
+
+               A55_2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x200>;
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       cpu-idle-states = <&cpu_pd_wait>;
+                       power-domains = <&scmi_perf IMX952_PERF_A55>;
+                       power-domain-names = "perf";
+                       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_cache_l2>;
+               };
+
+               A55_3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x300>;
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       cpu-idle-states = <&cpu_pd_wait>;
+                       power-domains = <&scmi_perf IMX952_PERF_A55>;
+                       power-domain-names = "perf";
+                       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_cache_l3>;
+               };
+
+               l2_cache_l0: l2-cache-l0 {
+                       compatible = "cache";
+                       cache-size = <65536>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l1: l2-cache-l1 {
+                       compatible = "cache";
+                       cache-size = <65536>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l2: l2-cache-l2 {
+                       compatible = "cache";
+                       cache-size = <65536>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l3: l2-cache-l3 {
+                       compatible = "cache";
+                       cache-size = <65536>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l3_cache: l3-cache {
+                       compatible = "cache";
+                       cache-size = <524288>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-level = <3>;
+                       cache-unified;
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&A55_0>;
+                               };
+
+                               core1 {
+                                       cpu = <&A55_1>;
+                               };
+
+                               core2 {
+                                       cpu = <&A55_2>;
+                               };
+
+                               core3 {
+                                       cpu = <&A55_3>;
+                               };
+                       };
+               };
+       };
+
+       firmware {
+               scmi {
+                       compatible = "arm,scmi";
+                       mboxes = <&mu2 5 0>, <&mu2 3 0>, <&mu2 3 1>, <&mu2 5 1>;
+                       shmem = <&scmi_buf0>, <&scmi_buf1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       arm,max-rx-timeout-ms = <5000>;
+
+                       scmi_devpd: protocol@11 {
+                               reg = <0x11>;
+                               #power-domain-cells = <1>;
+                       };
+
+                       scmi_sys_power: protocol@12 {
+                               reg = <0x12>;
+                       };
+
+                       scmi_perf: protocol@13 {
+                               reg = <0x13>;
+                               #power-domain-cells = <1>;
+                       };
+
+                       scmi_clk: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+
+                       scmi_sensor: protocol@15 {
+                               reg = <0x15>;
+                               #thermal-sensor-cells = <1>;
+                       };
+
+                       scmi_iomuxc: protocol@19 {
+                               reg = <0x19>;
+                       };
+
+                       scmi_lmm: protocol@80 {
+                               reg = <0x80>;
+                       };
+
+                       scmi_bbm: protocol@81 {
+                               reg = <0x81>;
+                       };
+
+                       scmi_cpu: protocol@82 {
+                               reg = <0x82>;
+                       };
+
+                       scmi_misc: protocol@84 {
+                               reg = <0x84>;
+                       };
+               };
+       };
+
+       gic: interrupt-controller@48000000 {
+               compatible = "arm,gic-v3";
+               reg = <0 0x48000000 0 0x10000>,
+                     <0 0x48060000 0 0xc0000>;
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-parent = <&gic>;
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               dma-noncoherent;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               its: msi-controller@48040000 {
+                       compatible = "arm,gic-v3-its";
+                       reg = <0 0x48040000 0 0x20000>;
+                       msi-controller;
+                       #msi-cells = <1>;
+                       dma-noncoherent;
+               };
+       };
+
+       pmu {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
+               clock-frequency = <24000000>;
+               arm,no-tick-in-suspend;
+               interrupt-parent = <&gic>;
+       };
+
+       usbphynop1: usbphynop1 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+               clocks = <&clk_dummy>;
+               clock-names = "main_clk";
+       };
+
+       usbphynop2: usbphynop2 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+               clocks = <&clk_dummy>;
+               clock-names = "main_clk";
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0x0 0x0 0x0 0x0 0x0 0x80000000>,
+                        <0x0 0x28000000 0x0 0x28000000 0x0 0x10000000>;
+
+               aips2: bus@42000000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       reg = <0x0 0x42000000 0x0 0x800000>;
+                       ranges = <0x42000000 0x0 0x42000000 0x8000000>,
+                                <0x28000000 0x0 0x28000000 0x10000000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       mu7: mailbox@42050000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x42050000 0x10000>;
+                               interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       wdog3: watchdog@420b0000 {
+                               compatible = "fsl,imx93-wdt";
+                               reg = <0x420b0000 0x10000>;
+                               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               timeout-sec = <40>;
+                               status = "disabled";
+                       };
+
+                       tpm3: pwm@42100000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x42100000 0x1000>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm4: pwm@42110000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x42110000 0x1000>;
+                               clocks = <&scmi_clk IMX952_CLK_TPM4>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm5: pwm@42120000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x42120000 0x1000>;
+                               clocks = <&scmi_clk IMX952_CLK_TPM5>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm6: pwm@42130000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x42130000 0x1000>;
+                               clocks = <&scmi_clk IMX952_CLK_TPM6>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       i3c2: i3c@42140000 {
+                               compatible = "silvaco,i3c-master-v1";
+                               reg = <0x42140000 0x10000>;
+                               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <3>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX952_CLK_I3C2SLOW>,
+                                        <&clk_dummy>;
+                               clock-names = "pclk", "fast_clk", "slow_clk";
+                               status = "disabled";
+                       };
+
+                       lpi2c3: i2c@42150000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x42150000 0x10000>;
+                               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C3>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma2 8 0 0>, <&edma2 9 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpi2c4: i2c@42160000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x42160000 0x10000>;
+                               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C4>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma2 10 0 0>, <&edma2 11 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi3: spi@42170000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42170000 0x10000>;
+                               interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI3>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               dmas = <&edma2 12 0 0>, <&edma2 13 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi4: spi@42180000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42180000 0x10000>;
+                               interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI4>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               dmas = <&edma2 14 0 0>, <&edma2 15 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpuart3: serial@42190000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x42190000 0x1000>;
+                               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART3>;
+                               clock-names = "ipg";
+                               dmas = <&edma2 18 0 FSL_EDMA_RX>, <&edma2 17 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       lpuart4: serial@421a0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x421a0000 0x1000>;
+                               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART4>;
+                               clock-names = "ipg";
+                               dmas = <&edma2 20 0 FSL_EDMA_RX>, <&edma2 19 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       lpuart5: serial@421b0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x421b0000 0x1000>;
+                               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART5>;
+                               clock-names = "ipg";
+                               dmas = <&edma2 22 0 FSL_EDMA_RX>, <&edma2 21 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       lpuart6: serial@421c0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x421c0000 0x1000>;
+                               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART6>;
+                               clock-names = "ipg";
+                               dmas = <&edma2 24 0 FSL_EDMA_RX>, <&edma2 23 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       flexcan2: can@421d0000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x421d0000 0x10000>;
+                               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX952_CLK_CAN2>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX952_CLK_CAN2>;
+                               assigned-clock-parents = <&scmi_clk IMX952_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       flexcan3: can@42220000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x42220000 0x10000>;
+                               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX952_CLK_CAN3>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX952_CLK_CAN3>;
+                               assigned-clock-parents = <&scmi_clk IMX952_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       lpuart7: serial@422b0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x422b0000 0x1000>;
+                               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART7>;
+                               clock-names = "ipg";
+                               dmas = <&edma2 88 0 FSL_EDMA_RX>, <&edma2 87 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       lpuart8: serial@422c0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x422c0000 0x1000>;
+                               interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART8>;
+                               clock-names = "ipg";
+                               dmas = <&edma2 90 0 FSL_EDMA_RX>, <&edma2 89 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       lpi2c5: i2c@422d0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x422d0000 0x10000>;
+                               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C5>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma2 71 0 0>, <&edma2 72 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpi2c6: i2c@422e0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x422e0000 0x10000>;
+                               interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C6>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma2 73 0 0>, <&edma2 74 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpi2c7: i2c@422f0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x422f0000 0x10000>;
+                               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C7>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma2 75 0 0>, <&edma2 76 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpi2c8: i2c@42300000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x42300000 0x10000>;
+                               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C8>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma2 77 0 0>, <&edma2 78 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi5: spi@42310000 {
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42310000 0x10000>;
+                               interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI5>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               dmas = <&edma2 79 0 0>, <&edma2 80 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi6: spi@42320000 {
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42320000 0x10000>;
+                               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI6>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               dmas = <&edma2 81 0 0>, <&edma2 82 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi7: spi@42330000 {
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42330000 0x10000>;
+                               interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI7>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               dmas = <&edma2 83 0 0>, <&edma2 84 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi8: spi@42340000 {
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42340000 0x10000>;
+                               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI8>,
+                                        <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               dmas = <&edma2 85 0 0>, <&edma2 86 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       mu8: mailbox@42350000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x42350000 0x10000>;
+                               interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+               };
+
+               aips3: bus@42800000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       reg = <0 0x42800000 0 0x800000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x42800000 0x0 0x42800000 0x800000>;
+
+                       edma2: dma-controller@42800000 {
+                               compatible = "fsl,imx95-edma5";
+                               reg = <0x42800000 0x210000>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                               clock-names = "dma";
+                               #dma-cells = <3>;
+                               dma-channels = <64>;
+                               interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; //error irq
+                       };
+
+                       usdhc1: mmc@42c20000 {
+                               compatible = "fsl,imx95-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x42c20000 0x10000>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX952_CLK_WAKEUPAXI>,
+                                        <&scmi_clk IMX952_CLK_USDHC1>;
+                               clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&scmi_clk IMX952_CLK_USDHC1>;
+                               assigned-clock-parents = <&scmi_clk IMX952_CLK_SYSPLL1_PFD1>;
+                               assigned-clock-rates = <400000000>;
+                               bus-width = <8>;
+                               fsl,tuning-start-tap = <1>;
+                               fsl,tuning-step= <2>;
+                               status = "disabled";
+                       };
+
+                       usdhc2: mmc@42c30000 {
+                               compatible = "fsl,imx95-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x42c30000 0x10000>;
+                               interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX952_CLK_WAKEUPAXI>,
+                                        <&scmi_clk IMX952_CLK_USDHC2>;
+                               clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&scmi_clk IMX952_CLK_USDHC2>;
+                               assigned-clock-parents = <&scmi_clk IMX952_CLK_SYSPLL1_PFD1>;
+                               assigned-clock-rates = <200000000>;
+                               bus-width = <4>;
+                               fsl,tuning-start-tap = <1>;
+                               fsl,tuning-step= <2>;
+                               status = "disabled";
+                       };
+
+                       usdhc3: mmc@42c40000 {
+                               compatible = "fsl,imx95-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x42c40000 0x10000>;
+                               interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX952_CLK_WAKEUPAXI>,
+                                        <&scmi_clk IMX952_CLK_USDHC3>;
+                               clock-names = "ipg", "ahb", "per";
+                               bus-width = <4>;
+                               fsl,tuning-start-tap = <1>;
+                               fsl,tuning-step = <2>;
+                               status = "disabled";
+                       };
+               };
+
+               gpio2: gpio@43810000 {
+                       compatible = "fsl,imx95-gpio", "fsl,imx8ulp-gpio";
+                       reg = <0x0 0x43810000 0x0 0x1000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 4 32>;
+                       ngpios = <32>;
+               };
+
+               gpio3: gpio@43820000 {
+                       compatible = "fsl,imx95-gpio", "fsl,imx8ulp-gpio";
+                       reg = <0x0 0x43820000 0x0 0x1000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 115 8>, <&scmi_iomuxc 8 85 18>,
+                                     <&scmi_iomuxc 26 53 2>, <&scmi_iomuxc 28 0 4>;
+                       ngpios = <32>;
+               };
+
+               gpio4: gpio@43840000 {
+                       compatible = "fsl,imx95-gpio", "fsl,imx8ulp-gpio";
+                       reg = <0x0 0x43840000 0x0 0x1000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 57 28>, <&scmi_iomuxc 28 55 2>;
+                       ngpios = <30>;
+               };
+
+               gpio5: gpio@43850000 {
+                       compatible = "fsl,imx95-gpio", "fsl,imx8ulp-gpio";
+                       reg = <0x0 0x43850000 0x0 0x1000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&scmi_clk IMX952_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX952_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 103 12>, <&scmi_iomuxc 12 36 6>;
+                       ngpios = <18>;
+               };
+
+               aips1: bus@44000000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       reg = <0x0 0x44000000 0x0 0x800000>;
+                       ranges = <0x44000000 0x0 0x44000000 0x800000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       edma1: dma-controller@44000000 {
+                               compatible = "fsl,imx93-edma3";
+                               reg = <0x44000000 0x210000>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>;
+                               clock-names = "dma";
+                               #dma-cells = <3>;
+                               dma-channels = <32>;
+                               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 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 119 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; //error irq
+                       };
+
+                       mu1: mailbox@44220000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x44220000 0x10000>;
+                               interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       system_counter: timer@44290000 {
+                               compatible = "nxp,imx95-sysctr-timer";
+                               reg = <0x44290000 0x30000>;
+                               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clk_osc_24m>;
+                               clock-names = "per";
+                               nxp,no-divider;
+                       };
+
+                       i3c1: i3c@44330000 {
+                               compatible = "silvaco,i3c-master-v1";
+                               reg = <0x44330000 0x10000>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <3>;
+                               #size-cells = <0>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>,
+                                        <&scmi_clk IMX952_CLK_I3C1SLOW>,
+                                        <&clk_dummy>;
+                               clock-names = "pclk", "fast_clk", "slow_clk";
+                               status = "disabled";
+                       };
+
+                       lpi2c1: i2c@44340000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x44340000 0x10000>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C1>,
+                                        <&scmi_clk IMX952_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma1 12 0 0>, <&edma1 13 0 FSL_EDMA_RX> ;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpi2c2: i2c@44350000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x44350000 0x10000>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPI2C2>,
+                                        <&scmi_clk IMX952_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma1 14 0 0>, <&edma1 15 0 FSL_EDMA_RX> ;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi1: spi@44360000 {
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x44360000 0x10000>;
+                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI1>,
+                                        <&scmi_clk IMX952_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma1 16 0 FSL_EDMA_RX>, <&edma1 17 0 0> ;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpspi2: spi@44370000 {
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x44370000 0x10000>;
+                               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPSPI2>,
+                                        <&scmi_clk IMX952_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&edma1 18 0 FSL_EDMA_RX>, <&edma1 19 0 0> ;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       lpuart1: serial@44380000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x44380000 0x1000>;
+                               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART1>;
+                               clock-names = "ipg";
+                               dmas = <&edma1 21 0 FSL_EDMA_RX>, <&edma1 20 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       lpuart2: serial@44390000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x44390000 0x1000>;
+                               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_LPUART2>;
+                               clock-names = "ipg";
+                               dmas = <&edma1 23 0 FSL_EDMA_RX>, <&edma1 22 0 0>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       flexcan1: can@443a0000 {
+                               compatible = "fsl,imx95-flexcan";
+                               reg = <0x443a0000 0x10000>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>,
+                                        <&scmi_clk IMX952_CLK_CAN1>;
+                               clock-names = "ipg", "per";
+                               assigned-clocks = <&scmi_clk IMX952_CLK_CAN1>;
+                               assigned-clock-parents = <&scmi_clk IMX952_CLK_SYSPLL1_PFD1_DIV2>;
+                               assigned-clock-rates = <40000000>;
+                               fsl,clk-source = /bits/ 8 <0>;
+                               status = "disabled";
+                       };
+
+                       adc1: adc@44530000 {
+                               compatible = "nxp,imx93-adc";
+                               reg = <0x44530000 0x10000>;
+                               interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_ADC>;
+                               clock-names = "ipg";
+                               #io-channel-cells = <1>;
+                               status = "disabled";
+                       };
+
+                       mu2: mailbox@445b0000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x445b0000 0x1000>;
+                               ranges;
+                               interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               #mbox-cells = <2>;
+
+                               sram0: sram@445b1000 {
+                                       compatible = "mmio-sram";
+                                       reg = <0x445b1000 0x400>;
+                                       ranges = <0x0 0x445b1000 0x400>;
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       scmi_buf0: scmi-sram-section@0 {
+                                               compatible = "arm,scmi-shmem";
+                                               reg = <0x0 0x80>;
+                                       };
+
+                                       scmi_buf1: scmi-sram-section@80 {
+                                               compatible = "arm,scmi-shmem";
+                                               reg = <0x80 0x80>;
+                                       };
+                               };
+
+                       };
+
+                       mu3: mailbox@445d0000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x445d0000 0x10000>;
+                               interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       mu4: mailbox@445f0000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x445f0000 0x10000>;
+                               interrupts = <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       mu5: mailbox@44610000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x44610000 0x10000>;
+                               interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       mu6: mailbox@44630000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x44630000 0x10000>;
+                               interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX952_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+               };
+
+               v2x_mu0: mailbox@47300000 {
+                       compatible = "fsl,imx95-mu-v2x";
+                       reg = <0x0 0x47300000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               v2x_mu2: mailbox@47320000 {
+                       compatible = "fsl,imx95-mu-v2x";
+                       reg = <0x0 0x47320000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               v2x_mu3: mailbox@47330000 {
+                       compatible = "fsl,imx95-mu-v2x";
+                       reg = <0x0 0x47330000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               v2x_mu4: mailbox@47340000 {
+                       compatible = "fsl,imx95-mu-v2x";
+                       reg = <0x0 0x47340000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               v2x_mu: mailbox@47350000 {
+                       compatible = "fsl,imx95-mu-v2x";
+                       reg = <0x0 0x47350000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               /* GPIO1 is under exclusive control of System Manager */
+               gpio1: gpio@47400000 {
+                       compatible = "fsl,imx95-gpio", "fsl,imx8ulp-gpio";
+                       reg = <0x0 0x47400000 0x0 0x1000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       clocks = <&scmi_clk IMX952_CLK_M33>,
+                                <&scmi_clk IMX952_CLK_M33>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 123 16>;
+                       ngpios = <16>;
+                       status = "disabled";
+               };
+
+               elemu0: mailbox@47520000 {
+                       compatible = "fsl,imx95-mu-ele";
+                       reg = <0x0 0x47520000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       status = "disabled";
+               };
+
+               elemu1: mailbox@47530000 {
+                       compatible = "fsl,imx95-mu-ele";
+                       reg = <0x0 0x47530000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       status = "disabled";
+               };
+
+               elemu2: mailbox@47540000 {
+                       compatible = "fsl,imx95-mu-ele";
+                       reg = <0x0 0x47540000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       status = "disabled";
+               };
+
+               elemu3: mailbox@47550000 {
+                       compatible = "fsl,imx95-mu-ele";
+                       reg = <0x0 0x47550000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               elemu4: mailbox@47560000 {
+                       compatible = "fsl,imx95-mu-ele";
+                       reg = <0x0 0x47560000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       status = "disabled";
+               };
+
+               elemu5: mailbox@47570000 {
+                       compatible = "fsl,imx95-mu-ele";
+                       reg = <0x0 0x47570000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       status = "disabled";
+               };
+
+               usb1: usb@4c100000 {
+                       compatible = "fsl,imx95-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+                       reg = <0x0 0x4c100000 0x0 0x200>;
+                       interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk IMX952_CLK_CGC_HSIOUSB>,
+                                <&scmi_clk IMX952_CLK_OSC32K>;
+                       clock-names = "usb_ctrl_root", "usb_wakeup";
+                       power-domains = <&scmi_devpd IMX952_PD_HSIO_TOP>;
+                       phys = <&usbphynop1>;
+                       fsl,usbmisc = <&usbmisc1 0>;
+                       status = "disabled";
+               };
+
+               usbmisc1: usbmisc@4c100200 {
+                       compatible = "fsl,imx95-usbmisc", "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
+                       #index-cells = <1>;
+                       reg = <0x0 0x4c100200 0x0 0x200>,
+                             <0x0 0x4c010010 0x0 0x4>;
+               };
+
+               usb2: usb@4c200000 {
+                       compatible = "fsl,imx95-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+                       reg = <0x0 0x4c200000 0x0 0x200>;
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk IMX952_CLK_CGC_HSIOUSB>,
+                                <&scmi_clk IMX952_CLK_OSC32K>;
+                       clock-names = "usb_ctrl_root", "usb_wakeup";
+                       power-domains = <&scmi_devpd IMX952_PD_HSIO_TOP>;
+                       phys = <&usbphynop2>;
+                       fsl,usbmisc = <&usbmisc2 0>;
+                       status = "disabled";
+               };
+
+               usbmisc2: usbmisc@4c200200 {
+                       compatible = "fsl,imx95-usbmisc", "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
+                       #index-cells = <1>;
+                       reg = <0x0 0x4c200200 0x0 0x200>,
+                             <0x0 0x4c010014 0x0 0x4>;
+               };
+       };
+};
index f534dab44e8ed10f152bcfa511f954bbfe6ca57c..e32519b156d93d93a62d1737e93a03a5ab4592bc 100644 (file)
        tlv320aic3x04: audio-codec@18 {
                compatible = "ti,tlv320aic32x4";
                reg = <0x18>;
-               clocks = <&mclkout0_lpcg 0>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
                clock-names = "mclk";
                iov-supply = <&reg_1v8>;
                ldoin-supply = <&reg_3v3>;
        assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
                          <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
                          <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
-                         <&sai1_lpcg 0>;
+                         <&sai1_lpcg IMX_LPCG_CLK_0>;
        assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai1>;
index eff7673e7f3412ddabf5acec6ae7c98756140242..e314f3c7d61d00d48dbea70bd36291882f2f0ef1 100644 (file)
                        status = "disabled";
                };
 
-               swt7: watchdog@4020C000 {
+               swt7: watchdog@4020c000 {
                        compatible = "nxp,s32g3-swt", "nxp,s32g2-swt";
-                       reg = <0x4020C000 0x1000>;
+                       reg = <0x4020c000 0x1000>;
                        clocks = <&clks 0x3a>, <&clks 0x3b>, <&clks 0x3b>;
                        clock-names = "counter", "module", "register";
                        status = "disabled";
index f1969cdcef19e33da3bf7a38bbc32892b5517eb1..803ff45310771326aeac15188ccf63bb4ea702ba 100644 (file)
                };
 
                dspi1-grp3 {
-                       pinmux = <0x5F0>;
+                       pinmux = <0x5f0>;
                        input-enable;
                        slew-rate = <150>;
                        bias-pull-up;
                };
 
                dspi1-grp4 {
-                       pinmux = <0x3D92>,
-                                <0x3DA2>,
-                                <0x3DB2>;
+                       pinmux = <0x3d92>,
+                                <0x3da2>,
+                                <0x3db2>;
                };
        };
 
                };
 
                dspi5-grp1 {
-                       pinmux = <0xA0>;
+                       pinmux = <0xa0>;
                        input-enable;
                        slew-rate = <150>;
                        bias-pull-up;
                };
 
                dspi5-grp2 {
-                       pinmux = <0x3ED2>,
-                                <0x3EE2>,
-                                <0x3EF2>;
+                       pinmux = <0x3ed2>,
+                                <0x3ee2>,
+                                <0x3ef2>;
                };
 
                dspi5-grp3 {
-                       pinmux = <0xB3>;
+                       pinmux = <0xb3>;
                        output-enable;
                        slew-rate = <150>;
                };
 
                dspi5-grp4 {
-                       pinmux = <0xC3>;
+                       pinmux = <0xc3>;
                        output-enable;
                        input-enable;
                        slew-rate = <150>;
index 3bc3335c92482adc111efca90ace0a95f48bd7be..979868f6d2c5cbf10f16088e180eae567c8aea54 100644 (file)
                };
 
                dspi1-grp3 {
-                       pinmux = <0x5F0>;
+                       pinmux = <0x5f0>;
                        input-enable;
                        slew-rate = <150>;
                        bias-pull-up;
                };
 
                dspi1-grp4 {
-                       pinmux = <0x3D92>,
-                                <0x3DA2>,
-                                <0x3DB2>;
+                       pinmux = <0x3d92>,
+                                <0x3da2>,
+                                <0x3db2>;
                };
        };
 
                };
 
                dspi5-grp1 {
-                       pinmux = <0xA0>;
+                       pinmux = <0xa0>;
                        input-enable;
                        slew-rate = <150>;
                        bias-pull-up;
                };
 
                dspi5-grp2 {
-                       pinmux = <0x3ED2>,
-                                <0x3EE2>,
-                                <0x3EF2>;
+                       pinmux = <0x3ed2>,
+                                <0x3ee2>,
+                                <0x3ef2>;
                };
 
                dspi5-grp3 {
-                       pinmux = <0xB3>;
+                       pinmux = <0xb3>;
                        output-enable;
                        slew-rate = <150>;
                };
 
                dspi5-grp4 {
-                       pinmux = <0xC3>;
+                       pinmux = <0xc3>;
                        output-enable;
                        input-enable;
                        slew-rate = <150>;
index 3d20e3bf32ce7c963467c6ecc436ce5dc3e51b7d..050ae23c4dc1e4528eacb320ff8853f3daa55904 100644 (file)
        status = "okay";
 };
 
+&hsio_phy {
+       fsl,hsio-cfg = "pciea-x2-pcieb";
+       fsl,refclk-pad-mode = "input";
+       status = "okay";
+};
+
 &i2c0 {
        tlv320aic3x04: audio-codec@18 {
                compatible = "ti,tlv320aic32x4";
                reg = <0x18>;
-               clocks = <&mclkout0_lpcg 0>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
                clock-names = "mclk";
                iov-supply = <&reg_1v8>;
                ldoin-supply = <&reg_3v3>;
        status = "okay";
 };
 
+&pcieb {
+       status = "okay";
+};
+
 &reg_sdvmmc {
        off-on-delay-us = <200000>;
        status = "okay";
index 2d0a329c2fa504357d425d452cb4a54b2412fc07..bfc918f18d0114a339739ffc492f617756f0be2d 100644 (file)
        status = "okay";
 };
 
+&pcieb {
+       phys = <&hsio_phy 0 PHY_TYPE_PCIE 0>;
+       phy-names = "pcie-phy";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcieb>;
+       reset-gpio = <&lsio_gpio4 0 GPIO_ACTIVE_LOW>;
+};
+
 &sai1 {
        assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
                          <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
                          <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
-                         <&sai1_lpcg 0>;
+                         <&sai1_lpcg IMX_LPCG_CLK_0>;
        assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai1>;
        };
 
        pinctrl_pcieb: pcieagrp {
-               fsl,pins = <IMX8QXP_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO00  0x06000041>,
-                          <IMX8QXP_PCIE_CTRL0_CLKREQ_B_LSIO_GPIO4_IO01 0x06000041>,
-                          <IMX8QXP_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO02   0x04000041>;
+               fsl,pins = <IMX8QXP_PCIE_CTRL0_PERST_B_LSIO_GPIO4_IO00          0x06000041>,
+                          <IMX8QXP_PCIE_CTRL0_CLKREQ_B_HSIO_PCIE0_CLKREQ_B     0x06000041>,
+                          <IMX8QXP_PCIE_CTRL0_WAKE_B_LSIO_GPIO4_IO02           0x04000041>;
        };
 
        pinctrl_pwm_mipi_lvds0: mipi-lvds0-pwmgrp {
index 7d370dac4c85710b43d7b8dc9d4bfe151b092afd..579d55daa7d04e69a6575c3c7830176ee9722783 100644 (file)
 };
 
 &pcie {
-       reset-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
+       reset-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
        vpcie-supply = <&reg_pcie>;
        status = "okay";
 };
index f6bc001c3832632bf2262286daedd84238ba59af..2f4ad5da5e33c739a8c8fc4a85f7766237f5c26f 100644 (file)
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x0 0x0 0xf0000000 0x10000000>;
+               dma-ranges = <0x0 0x0 0x0 0x40000000>;
 
                crg: clock-reset-controller@8a22000 {
                        compatible = "hisilicon,hi3798cv200-crg", "syscon", "simple-mfd";
index a5c2025a616e896e25335b8403143f4edcac7d02..352c96d144a84102c957b52173a4c1167caa8c0d 100644 (file)
                        clock-names = "nf_clk";
                        cdns,board-delay-ps = <4830>;
                        iommus = <&smmu 4>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        #size-cells = <1>;
                };
 
-               dmac0: dma-controller@10db0000 {
-                       compatible = "snps,axi-dma-1.01a";
-                       reg = <0x10db0000 0x500>;
-                       clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
-                                <&clkmgr AGILEX5_L4_MP_CLK>;
-                       clock-names = "core-clk", "cfgr-clk";
-                       interrupt-parent = <&intc>;
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <1>;
-                       dma-channels = <4>;
-                       snps,dma-masters = <1>;
-                       snps,data-width = <2>;
-                       snps,block-size = <32767 32767 32767 32767>;
-                       snps,priority = <0 1 2 3>;
-                       snps,axi-max-burst-len = <8>;
-                       iommus = <&smmu 8>;
-               };
-
-               dmac1: dma-controller@10dc0000 {
-                       compatible = "snps,axi-dma-1.01a";
-                       reg = <0x10dc0000 0x500>;
-                       clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
-                                <&clkmgr AGILEX5_L4_MP_CLK>;
-                       clock-names = "core-clk", "cfgr-clk";
-                       interrupt-parent = <&intc>;
-                       interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <1>;
-                       dma-channels = <4>;
-                       snps,dma-masters = <1>;
-                       snps,data-width = <2>;
-                       snps,block-size = <32767 32767 32767 32767>;
-                       snps,priority = <0 1 2 3>;
-                       snps,axi-max-burst-len = <8>;
-                       iommus = <&smmu 9>;
+               dma: dma-bus@10db0000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <2>;
+                       ranges = <0x00 0x10db0000 0x00 0x20000>;
+                       dma-ranges = <0x00 0x00 0x100 0x00>;
+
+                       dmac0: dma-controller@0 {
+                               compatible = "altr,agilex5-axi-dma",
+                                            "snps,axi-dma-1.01a";
+                               reg = <0x0 0x0 0x500>;
+                               clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
+                                        <&clkmgr AGILEX5_L4_MP_CLK>;
+                               clock-names = "core-clk", "cfgr-clk";
+                               interrupt-parent = <&intc>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               #dma-cells = <1>;
+                               dma-channels = <4>;
+                               snps,dma-masters = <1>;
+                               snps,data-width = <2>;
+                               snps,block-size = <32767 32767 32767 32767>;
+                               snps,priority = <0 1 2 3>;
+                               snps,axi-max-burst-len = <8>;
+                               iommus = <&smmu 8>;
+                       };
+
+                       dmac1: dma-controller@10000 {
+                               compatible = "altr,agilex5-axi-dma",
+                                            "snps,axi-dma-1.01a";
+                               reg = <0x10000 0x0 0x500>;
+                               clocks = <&clkmgr AGILEX5_L4_MAIN_CLK>,
+                                        <&clkmgr AGILEX5_L4_MP_CLK>;
+                               clock-names = "core-clk", "cfgr-clk";
+                               interrupt-parent = <&intc>;
+                               interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+                               #dma-cells = <1>;
+                               dma-channels = <4>;
+                               snps,dma-masters = <1>;
+                               snps,data-width = <2>;
+                               snps,block-size = <32767 32767 32767 32767>;
+                               snps,priority = <0 1 2 3>;
+                               snps,axi-max-burst-len = <8>;
+                               iommus = <&smmu 9>;
+                       };
                };
 
                rst: rstmgr@10d11000 {
                        snps,tso;
                        altr,sysmgr-syscon = <&sysmgr 0x44 0>;
                        snps,clk-csr = <0>;
+                       iommus = <&smmu 1>;
                        status = "disabled";
 
                        stmmac_axi_emac0_setup: stmmac-axi-config {
                                        snps,dcb-algorithm;
                                };
                                queue1 {
-                                       snps,weight = <0x0A>;
+                                       snps,weight = <0x0a>;
                                        snps,dcb-algorithm;
                                };
                                queue2 {
-                                       snps,weight = <0x0B>;
+                                       snps,weight = <0x0b>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue3 {
-                                       snps,weight = <0x0C>;
+                                       snps,weight = <0x0c>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue4 {
-                                       snps,weight = <0x0D>;
+                                       snps,weight = <0x0d>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue5 {
-                                       snps,weight = <0x0E>;
+                                       snps,weight = <0x0e>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue6 {
-                                       snps,weight = <0x0F>;
+                                       snps,weight = <0x0f>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                        snps,tso;
                        altr,sysmgr-syscon = <&sysmgr 0x48 0>;
                        snps,clk-csr = <0>;
+                       iommus = <&smmu 2>;
                        status = "disabled";
 
                        stmmac_axi_emac1_setup: stmmac-axi-config {
                                        snps,dcb-algorithm;
                                };
                                queue1 {
-                                       snps,weight = <0x0A>;
+                                       snps,weight = <0x0a>;
                                        snps,dcb-algorithm;
                                };
                                queue2 {
-                                       snps,weight = <0x0B>;
+                                       snps,weight = <0x0b>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue3 {
-                                       snps,weight = <0x0C>;
+                                       snps,weight = <0x0c>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue4 {
-                                       snps,weight = <0x0D>;
+                                       snps,weight = <0x0d>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue5 {
-                                       snps,weight = <0x0E>;
+                                       snps,weight = <0x0e>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue6 {
-                                       snps,weight = <0x0F>;
+                                       snps,weight = <0x0f>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                        snps,tso;
                        altr,sysmgr-syscon = <&sysmgr 0x4c 0>;
                        snps,clk-csr = <0>;
+                       iommus = <&smmu 3>;
                        status = "disabled";
 
                        stmmac_axi_emac2_setup: stmmac-axi-config {
                                        snps,dcb-algorithm;
                                };
                                queue1 {
-                                       snps,weight = <0x0A>;
+                                       snps,weight = <0x0a>;
                                        snps,dcb-algorithm;
                                };
                                queue2 {
-                                       snps,weight = <0x0B>;
+                                       snps,weight = <0x0b>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue3 {
-                                       snps,weight = <0x0C>;
+                                       snps,weight = <0x0c>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue4 {
-                                       snps,weight = <0x0D>;
+                                       snps,weight = <0x0d>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue5 {
-                                       snps,weight = <0x0E>;
+                                       snps,weight = <0x0e>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
                                queue6 {
-                                       snps,weight = <0x0F>;
+                                       snps,weight = <0x0f>;
                                        snps,coe-unsupported;
                                        snps,dcb-algorithm;
                                };
 
                pmu0_tbu3: pmu@160a2000 {
                        compatible = "arm,smmu-v3-pmcg";
-                       reg = <0x160A2000 0x1000>,
-                               <0x160B2000 0x1000>;
+                       reg = <0x160a2000 0x1000>,
+                               <0x160b2000 0x1000>;
                        interrupt-parent = <&intc>;
                        interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
                };
 
                pmu0_tbu4: pmu@160c2000 {
                        compatible = "arm,smmu-v3-pmcg";
-                       reg = <0x160C2000 0x1000>,
-                               <0x160D2000 0x1000>;
+                       reg = <0x160c2000 0x1000>,
+                               <0x160d2000 0x1000>;
                        interrupt-parent = <&intc>;
                        interrupts = <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>;
                };
 
                pmu0_tbu5: pmu@160e2000 {
                        compatible = "arm,smmu-v3-pmcg";
-                       reg = <0x160E2000 0x1000>,
-                               <0x160F2000 0x1000>;
+                       reg = <0x160e2000 0x1000>,
+                               <0x160f2000 0x1000>;
                        interrupt-parent = <&intc>;
                        interrupts = <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>;
                };
diff --git a/src/arm64/intel/socfpga_agilex5_socdk_modular.dts b/src/arm64/intel/socfpga_agilex5_socdk_modular.dts
new file mode 100644 (file)
index 0000000..1831402
--- /dev/null
@@ -0,0 +1,109 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2025, Altera Corporation
+ */
+#include "socfpga_agilex5.dtsi"
+
+/ {
+       model = "SoCFPGA Agilex5 SoCDK - Modular development kit";
+       compatible = "intel,socfpga-agilex5-socdk-modular", "intel,socfpga-agilex5";
+
+       aliases {
+               serial0 = &uart0;
+               ethernet2 = &gmac2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led0 {
+                       label = "hps_led0";
+                       gpios = <&porta 0x0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the reg */
+               reg = <0x0 0x80000000 0x0 0x0>;
+       };
+};
+
+&gpio0 {
+       status = "okay";
+};
+
+&gpio1 {
+       status = "okay";
+};
+
+&gmac2 {
+       status = "okay";
+       phy-mode = "rgmii-id";
+       phy-handle = <&emac2_phy0>;
+       max-frame-size = <9000>;
+
+       mdio0 {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               emac2_phy0: ethernet-phy@0 {
+                       reg = <0>;
+               };
+       };
+};
+
+&osc1 {
+       clock-frequency = <25000000>;
+};
+
+&qspi {
+       status = "okay";
+       flash@0 {
+               compatible = "micron,mt25qu02g", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <100000000>;
+               m25p,fast-read;
+               cdns,read-delay = <2>;
+               cdns,tshsl-ns = <50>;
+               cdns,tsd2d-ns = <50>;
+               cdns,tchsh-ns = <4>;
+               cdns,tslch-ns = <4>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       qspi_boot: partition@0 {
+                               label = "u-boot";
+                               reg = <0x0 0x04200000>;
+                       };
+
+                       root: partition@4200000 {
+                               label = "root";
+                               reg = <0x04200000 0x0be00000>;
+                       };
+               };
+       };
+};
+
+&smmu {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&watchdog0 {
+       status = "okay";
+};
index 9ee312bae8d27d2b6532dd4a43cfa398952947aa..8f8a5423ba027f618b919d8c72cdf9690d04bcd4 100644 (file)
 
                        root: partition@4200000 {
                                label = "Root Filesystem - UBIFS";
-                               reg = <0x04200000 0x0BE00000>;
+                               reg = <0x04200000 0x0be00000>;
                        };
                };
        };
diff --git a/src/arm64/intel/socfpga_agilex_socdk_emmc.dts b/src/arm64/intel/socfpga_agilex_socdk_emmc.dts
new file mode 100644 (file)
index 0000000..1d3a2d7
--- /dev/null
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2026, Altera Corporation
+ */
+#include "socfpga_agilex.dtsi"
+
+/ {
+       model = "SoCFPGA Agilex SoCDK eMMC daughter board";
+       compatible = "intel,socfpga-agilex-socdk-emmc", "intel,socfpga-agilex";
+
+       aliases {
+               serial0 = &uart0;
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               ethernet2 = &gmac2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led0 {
+                       label = "hps_led0";
+                       gpios = <&portb 20 GPIO_ACTIVE_HIGH>;
+               };
+
+               led1 {
+                       label = "hps_led1";
+                       gpios = <&portb 19 GPIO_ACTIVE_HIGH>;
+               };
+
+               led2 {
+                       label = "hps_led2";
+                       gpios = <&portb 21 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the reg */
+               reg = <0 0x80000000 0 0>;
+       };
+};
+
+&gpio1 {
+       status = "okay";
+};
+
+&gmac2 {
+       status = "okay";
+       /* PHY delays is configured via skew properties */
+       phy-mode = "rgmii";
+       phy-handle = <&phy0>;
+
+       max-frame-size = <9000>;
+
+       mdio0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+               phy0: ethernet-phy@4 {
+                       reg = <4>;
+
+                       txd0-skew-ps = <0>; /* -420ps */
+                       txd1-skew-ps = <0>; /* -420ps */
+                       txd2-skew-ps = <0>; /* -420ps */
+                       txd3-skew-ps = <0>; /* -420ps */
+                       rxd0-skew-ps = <420>; /* 0ps */
+                       rxd1-skew-ps = <420>; /* 0ps */
+                       rxd2-skew-ps = <420>; /* 0ps */
+                       rxd3-skew-ps = <420>; /* 0ps */
+                       txen-skew-ps = <0>; /* -420ps */
+                       txc-skew-ps = <900>; /* 0ps */
+                       rxdv-skew-ps = <420>; /* 0ps */
+                       rxc-skew-ps = <1680>; /* 780ps */
+               };
+       };
+};
+
+&mmc {
+       status = "okay";
+       cap-mmc-highspeed;
+       broken-cd;
+       bus-width = <4>;
+       clk-phase-sd-hs = <0>, <135>;
+};
+
+&osc1 {
+       clock-frequency = <25000000>;
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+       disable-over-current;
+};
+
+&watchdog0 {
+       status = "okay";
+};
index 0034a489722092032e065233c42e4d332c840668..d7d500f50a07ab8e4c41c7f55d7639e9eeb611a6 100644 (file)
 
                        qspi_boot: partition@0 {
                                label = "Boot and fpga data";
-                               reg = <0x0 0x03FE0000>;
+                               reg = <0x0 0x03fe0000>;
                        };
 
                        qspi_rootfs: partition@3fe0000 {
                                label = "Root Filesystem - JFFS2";
-                               reg = <0x03FE0000 0x0C020000>;
+                               reg = <0x03fe0000 0x0c020000>;
                        };
                };
        };
index 4cb1e451089752a12298d271e97187f0e634f664..90988770cb5cdc236d7451f7f6afde5bf275b26a 100644 (file)
                clock-output-names = "BUSCLK";
        };
 
-       amba {
+       amba-bus {
                #address-cells = <2>;
                #size-cells = <1>;
 
index bd4e61d5448eae3d02da0860e16db684620d2812..06d4a3a93f84ec244e9c696f51f719e3b66dbb57 100644 (file)
@@ -41,6 +41,7 @@
 
        usb3_phy: usb3-phy {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&exp_usb3_vbus>;
        };
 
index 97a180c8dcd918f5cd654f1630e0ee99abd72b19..0ab33aa928e72135af977f6220851312920860f4 100644 (file)
 
        usb3_phy: usb3-phy {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&reg_usb3_vbus>;
        };
 
        gpio-leds {
-               pinctrl-names = "default";
                compatible = "gpio-leds";
                /* No assigned functions to the LEDs by default */
                led1 {
index 9f4bafeddd82f79de5bb88ab2b5b427254fc6221..a881a3326dbab3daaea929128a07c75b0672aa72 100644 (file)
        };
 
        vcc_sd_reg1: regulator {
-               compatible = "regulator-gpio";
+               compatible = "regulator-fixed";
                regulator-name = "vcc_sd1";
-               regulator-min-microvolt = <1800000>;
+               regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                regulator-boot-on;
-
-               gpios-states = <0>;
-               states = <1800000 0x1
-                       3300000 0x0>;
-               enable-active-high;
        };
 
        keys {
index c612317043ea75eb84b1a7eea669b5a5ad73995d..87f9367aec1227c2c6de52f358d51bcff758c147 100644 (file)
                        };
 
                        crypto: crypto@90000 {
-                               compatible = "inside-secure,safexcel-eip97ies";
+                               compatible = "marvell,armada-3700-crypto",
+                                            "inside-secure,safexcel-eip97ies";
                                reg = <0x90000 0x20000>;
                                interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/src/arm64/marvell/armada-7020-comexpress.dtsi b/src/arm64/marvell/armada-7020-comexpress.dtsi
new file mode 100644 (file)
index 0000000..2b5ec4a
--- /dev/null
@@ -0,0 +1,161 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell Technology Group Ltd.
+ *
+ * Device Tree file for Marvell Armada 7020 Com Express CPU module board.
+ */
+
+#include "armada-7020.dtsi"
+
+/ {
+       model = "Marvell Armada-7020 COMEXPRESS board setup";
+       compatible = "marvell,armada7020-cpu-module", "marvell,armada7020",
+                       "marvell,armada-ap806-dual", "marvell,armada-ap806";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x2 0x00000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               ethernet0 = &cp0_eth0;
+               ethernet1 = &cp0_eth1;
+       };
+};
+
+&ap_clk {
+       status = "okay";
+};
+
+&gic {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&spi0 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&cp0_mdio {
+       status = "okay";
+
+       phy0: ethernet-phy@10 {
+               reg = <0x10>;
+       };
+};
+
+&cp0_ethernet {
+       status = "okay";
+};
+
+&cp0_eth0 {
+       status = "okay";
+       phy-mode = "10gbase-r";
+       managed = "in-band-status";
+       /* Generic PHY, providing serdes lanes */
+       phys = <&cp0_comphy4 0>;
+};
+
+&cp0_eth1 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "rgmii-id";
+};
+
+&cp0_usb3_0 {
+       status = "okay";
+};
+
+&cp0_usb3_1 {
+       status = "okay";
+};
+
+&cp0_clk {
+       status = "okay";
+};
+
+&cp0_i2c0 {
+       status = "okay";
+       clock-frequency = <100000>;
+};
+
+&cp0_nand_controller {
+       status = "okay";
+
+       nand@0 {
+               reg = <0>;
+               label = "main-storage";
+               nand-rb = <0>;
+               nand-ecc-mode = "hw";
+               nand-on-flash-bbt;
+               nand-ecc-strength = <8>;
+               nand-ecc-step-size = <512>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "U-Boot";
+                               reg = <0 0x400000>;
+                       };
+                       partition@200000 {
+                               label = "Linux";
+                               reg = <0x400000 0x100000>;
+                       };
+                       partition@1000000 {
+                               label = "Filesystem";
+                               reg = <0x500000 0x1e00000>;
+                       };
+               };
+       };
+};
+
+&cp0_pcie0 {
+       status = "okay";
+       num-lanes = <4>;
+       num-viewport = <8>;
+
+       ranges = <0x81000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x00010000
+                 0x82000000 0x0 0x00000000 0x0 0xc0000000 0x0 0x30000000>;
+
+       /* Generic PHY, providing serdes lanes */
+       phys = <&cp0_comphy0 0
+               &cp0_comphy1 0
+               &cp0_comphy2 0
+               &cp0_comphy3 0>;
+};
+
+&cp0_sata0 {
+       /* CPM Lane 0 - U29 */
+       status = "okay";
+
+       sata-port@1 {
+               status = "okay";
+               /* Generic PHY, providing serdes lanes */
+               phys = <&cp0_comphy5 1>;
+       };
+};
+
+&cp0_sdhci0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhci_pins>;
+       status = "okay";
+       bus-width = <4>;
+       no-1-8-v;
+       broken-cd;
+};
+
index df939426d258370f3b295fb8e8eed0a15b22b3f5..36e0a8a0ade3f85455be141ca090320bd6c74d8c 100644 (file)
        cp0_pinctrl: pinctrl {
                compatible = "marvell,armada-7k-pinctrl";
 
+
+               sdhci_pins: sdhci-pins {
+                       marvell,pins = "mpp56", "mpp57", "mpp58",
+                                      "mpp59", "mpp60", "mpp61", "mpp62";
+                       marvell,function = "sdio";
+               };
+
                nand_pins: nand-pins {
                        marvell,pins =
                        "mpp15", "mpp16", "mpp17", "mpp18",
index 21ecb9c12505a9d5608cc0cc346181603d196895..c7102f74d4d549a71a49c36459f7058a356f7757 100644 (file)
@@ -51,6 +51,7 @@
 
        cp0_usb3_0_phy: cp0-usb3-0-phy {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp0_reg_usb3_0_vbus>;
        };
 
@@ -65,6 +66,7 @@
 
        cp1_usb3_0_phy: cp1-usb3-0-phy {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp1_reg_usb3_0_vbus>;
        };
 };
index 82f4dedfc25e546970646b8f9c476ef8c5985501..0868d59d561b997ecb30df03aede81628b80b5ba 100644 (file)
@@ -54,7 +54,7 @@
        };
 
        thermal-zones {
-               /delete-node/ ap-thermal-cpu2;
-               /delete-node/ ap-thermal-cpu3;
+               /delete-node/ ap-cpu2-thermal;
+               /delete-node/ ap-cpu3-thermal;
        };
 };
index d9d409eac259a7a376cfa2f6616486e9b7c5f925..39599171d51bfb156156709d5a8423c4c50721ab 100644 (file)
                };
 
                CP11X_LABEL(crypto): crypto@800000 {
-                       compatible = "inside-secure,safexcel-eip197b";
+                       compatible = "marvell,armada-cp110-crypto",
+                                    "inside-secure,safexcel-eip197b";
                        reg = <0x800000 0x200000>;
                        interrupts = <88 IRQ_TYPE_LEVEL_HIGH>,
                                <89 IRQ_TYPE_LEVEL_HIGH>,
index 788a5c302b17f97396a68e62a371a4121d2f0a8b..212865f6cf6a96068c24af72feef2d6d7537de47 100644 (file)
 
 &cp0_pinctrl {
        pinctrl-0 = <&sim_select_pins>;
-       pintrl-names = "default";
+       pinctrl-names = "default";
 
        rear_button_pins: cp0-rear-button-pins {
                marvell,pins = "mpp31";
index 5e7d6de3cdded6b23315a2fdd351813b98a2bb08..c9050e707a600dd07dc89a2d49dec034329f7b29 100644 (file)
 
        cp0_usb3_0_phy0: usb-phy-1 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
        };
 
        cp0_usb3_0_phy1: usb-phy-2 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp0_reg_usb3_vbus1>;
        };
 
@@ -91,7 +93,6 @@
 
 /* on-board eMMC U6 */
 &ap_sdhci0 {
-       pinctrl-names = "default";
        bus-width = <8>;
        status = "okay";
        mmc-ddr-1_8v;
index 3cc320f569add5bcfbd6058dc316a053ceedcaa7..8e413286e0190149940dfa8f79ae6959a8b7dc43 100644 (file)
@@ -50,6 +50,7 @@
 
        cp0_usb3_0_phy0: usb-phy-1 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp0_reg_usb3_vbus0>;
        };
 
@@ -64,6 +65,7 @@
 
        cp0_usb3_0_phy1: usb-phy-2 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp0_reg_usb3_vbus1>;
        };
 
 
 /* on-board eMMC - U9 */
 &ap_sdhci0 {
-       pinctrl-names = "default";
        bus-width = <8>;
        vqmmc-supply = <&ap0_reg_sd_vccq>;
        status = "okay";
        /* U36 */
        expander0: pca953x@21 {
                compatible = "nxp,pca9555";
-               pinctrl-names = "default";
                gpio-controller;
                #gpio-cells = <2>;
                reg = <0x21>;
index 338853d3b179bb5cb742e975bb830fdb9d62d4cc..b6aeba7d0a61dd2328ea12ef6237265654001ad9 100644 (file)
        expander0: gpio@41 {
                compatible = "nxp,pca9536";
                reg = <0x41>;
+               gpio-controller;
+               #gpio-cells = <2>;
 
                usb-a-vbus0-ilimit-hog {
                        gpio-hog;
index 6f3914bcfd01e39ae90c4713f970506de096671d..71c2252216171a98f8ab374a803255ca2e64adb5 100644 (file)
@@ -15,8 +15,9 @@
 };
 
 &ap0_reg_sd_vccq {
+       compatible = "regulator-fixed";
        regulator-max-microvolt = <1800000>;
-       states = <1800000 0x1 1800000 0x0>;
+       /delete-property/ states;
        /delete-property/ gpios;
 };
 
index 626042fce7e2468d6504e17532b369bb7ea06bc5..26dc91c886772a170ab8b743e79221259d51c50d 100644 (file)
@@ -31,6 +31,7 @@
 
        cp1_usb3_0_phy0: usb-phy-3 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp1_reg_usb3_vbus0>;
        };
 
index f91fc69905b881ae216562f5c64a43d7e50e523e..98eee9e4e10ba686df58a59a10a2ce7e5a379122 100644 (file)
@@ -28,6 +28,7 @@
 
        cp2_usb3_0_phy0: usb-phy-4 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp2_reg_usb3_vbus0>;
        };
 
@@ -42,6 +43,7 @@
 
        cp2_usb3_0_phy1: usb-phy-5 {
                compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
                vcc-supply = <&cp2_reg_usb3_vbus1>;
        };
 
                        /* U12 */
                        cp2_module_expander1: pca9555@21 {
                                compatible = "nxp,pca9555";
-                               pinctrl-names = "default";
                                gpio-controller;
                                #gpio-cells = <2>;
                                reg = <0x21>;
diff --git a/src/arm64/marvell/db-falcon-carrier-a7k.dts b/src/arm64/marvell/db-falcon-carrier-a7k.dts
new file mode 100644 (file)
index 0000000..5d1ae7b
--- /dev/null
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the Falcon DB Type 7 Com Express carrier board,
+ * Utilizing the Armada 7020 COM Express CPU module board.
+ * This specific carrier board (DB-98CX8540/80)
+ * only maintains a PCIe link with the CPU module,
+ * which does not require any special DTS definitions.
+ *
+ * There is no Linux CPU booting in this mode on the carrier, only on the
+ * Armada 7020 COM Express CPU module.
+ * What runs the Linux is the Armada 7020 on the COM Express CPU module,
+ * And it accesses the switch end-point on the Falcon DB portion of the carrier
+ * via PCIe.
+ */
+
+#include "armada-7020-comexpress.dtsi"
+#include "db-falcon-carrier.dtsi"
+
+/ {
+       model = "Marvell Falcon DB COM EXPRESS type 7 carrier board with Armada 7020 CPU module";
+       compatible = "marvell,armada7020-falcon-carrier", "marvell,db-falcon-carrier",
+                       "marvell,armada7020-cpu-module", "marvell,armada7020",
+                       "marvell,armada-ap806-dual", "marvell,armada-ap806";
+
+};
diff --git a/src/arm64/marvell/db-falcon-carrier.dtsi b/src/arm64/marvell/db-falcon-carrier.dtsi
new file mode 100644 (file)
index 0000000..c85ad15
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the Falcon DB Type 7 Com Express carrier board,
+ * This (DB-98CX8540/80) specific carrier board only maintains
+ * a PCIe link with the COM Express CPU module, which does not
+ * require any special DTS definitions.
+ *
+ * The board contains the 98CX8540/80 Switch, which connects by
+ * PCIe to the COM Express CPU module.
+ * This CPU module can be any standard COM Express CPU module with
+ * PCIe support.
+ *
+ * There is no Linux CPU booting in this mode on the carrier,
+ * only on the COM Express CPU module.
+ */
+
+/ {
+       model = "Marvell Armada Falcon DB COM EXPRESS type 7 carrier board";
+       compatible = "marvell,db-falcon-carrier";
+};
index 243afbffa21fd724f53d37d139c4ad28859caeea..7e7b96e8ca6f3774fc479811762e85aa9dbe7294 100644 (file)
                        };
 
                        mt6331_vcamio_reg: ldo-vcamio {
-                               regulator-name = "vcam_io";
+                               regulator-name = "vcamio";
                                regulator-min-microvolt = <1200000>;
                                regulator-max-microvolt = <1800000>;
                                regulator-ramp-delay = <0>;
index fccb948cfa456b687c27e533e83287457125a14a..0e086dd487d98845e4ebe455cf1aa5f36588d44f 100644 (file)
 
 &mmc1 {
        /* MicroSD card slot */
-       pinctrl-names = "default";
+       pinctrl-names = "default", "state_uhs";
        pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_uhs>;
        vmmc-supply = <&mt6331_vmc_reg>;
        vqmmc-supply = <&mt6331_vmch_reg>;
        status = "okay";
 
 &mmc2 {
        /* SDIO WiFi on MMC2 */
-       pinctrl-names = "default";
+       pinctrl-names = "default", "state_uhs";
        pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_uhs>;
        vmmc-supply = <&mt6331_vmc_reg>;
        vqmmc-supply = <&mt6331_vmch_reg>;
        status = "okay";
                                 <PINMUX_GPIO170__FUNC_MSDC1_CMD>;
                        input-enable;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       drive-strength = <4>;
                };
 
                pins-clk {
                        pinmux = <PINMUX_GPIO175__FUNC_MSDC1_CLK>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+                       drive-strength = <4>;
+               };
+       };
+
+       mmc1_pins_uhs: microsd-uhs-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO171__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO172__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO173__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO174__FUNC_MSDC1_DAT3>,
+                                <PINMUX_GPIO170__FUNC_MSDC1_CMD>;
+                       input-enable;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       drive-strength = <6>;
+               };
+
+               pins-clk {
+                       pinmux = <PINMUX_GPIO175__FUNC_MSDC1_CLK>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+                       drive-strength = <8>;
                };
        };
 
                                 <PINMUX_GPIO105__FUNC_MSDC2_CMD>;
                        input-enable;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       drive-strength = <4>;
+               };
+
+               pins-clk {
+                       pinmux = <PINMUX_GPIO104__FUNC_MSDC2_CLK>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+                       drive-strength = <4>;
+               };
+       };
+
+       mmc2_pins_uhs: sdio-uhs-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO100__FUNC_MSDC2_DAT0>,
+                                <PINMUX_GPIO101__FUNC_MSDC2_DAT1>,
+                                <PINMUX_GPIO102__FUNC_MSDC2_DAT2>,
+                                <PINMUX_GPIO103__FUNC_MSDC2_DAT3>,
+                                <PINMUX_GPIO105__FUNC_MSDC2_CMD>;
+                       input-enable;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       drive-strength = <8>;
                };
 
                pins-clk {
                        pinmux = <PINMUX_GPIO104__FUNC_MSDC2_CLK>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+                       drive-strength = <8>;
                };
        };
 
         */
        interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
 
-       mt6332-led {
+       leds {
                compatible = "mediatek,mt6332-led";
                #address-cells = <1>;
                #size-cells = <0>;
index 58833e5135c8e763a70a6cfcd27a4fef38c3366e..ae2aaa51c9ad2944f01b419d3a1400dc475a8992 100644 (file)
                };
 
                scpsys: syscon@10006000 {
-                       compatible = "syscon", "simple-mfd";
+                       compatible = "mediatek,mt6795-scpsys", "syscon", "simple-mfd";
                        reg = <0 0x10006000 0 0x1000>;
-                       #power-domain-cells = <1>;
 
                        /* System Power Manager */
                        spm: power-controller {
index 2e39e72877301771222dd9005e1c7646c83e0058..b7ff7b8e1375ea32c1f0d99f6bd8a5a9ab2c8060 100644 (file)
@@ -12,6 +12,8 @@
        model = "OpenWrt One";
 
        aliases {
+               ethernet0 = &gmac1;
+               ethernet1 = &gmac0;
                serial0 = &uart0;
        };
 
                        linux,default-trigger = "netdev";
                };
        };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+};
+
+&eth {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       /* WAN interface */
+       gmac0: mac@0 {
+               compatible = "mediatek,eth-mac";
+               reg = <0>;
+               nvmem-cells = <&wan_factory_mac 0>;
+               nvmem-cell-names = "mac-address";
+               phy-mode = "2500base-x";
+               phy-handle = <&phy15>;
+       };
+
+       /* LAN interface */
+       gmac1: mac@1 {
+               compatible = "mediatek,eth-mac";
+               reg = <1>;
+               phy-mode = "gmii";
+               phy-handle = <&int_gbe_phy>;
+       };
+};
+
+&mdio_bus {
+       phy15: ethernet-phy@f {
+               compatible = "ethernet-phy-id03a2.a411";
+               reg = <0xf>;
+               interrupt-parent = <&pio>;
+               interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <20000>;
+               airoha,pnswap-rx;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               function = LED_FUNCTION_WAN;
+                               color = <LED_COLOR_ID_AMBER>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               function = LED_FUNCTION_WAN;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+               };
+       };
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_pins>;
+       status = "okay";
 };
 
 &pio {
+       pcie_pins: pcie-pins {
+               mux {
+                       function = "pcie";
+                       groups = "pcie_pereset";
+               };
+       };
+
        pwm_pins: pwm-pins {
                mux {
                        function = "pwm";
                        pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
                };
        };
+
+       wifi_dbdc_pins: wifi-dbdc-pins {
+               mux {
+                       function = "eth";
+                       groups = "wf0_mode1";
+               };
+
+               conf {
+                       pins = "WF_HB1", "WF_HB2", "WF_HB3", "WF_HB4",
+                              "WF_HB0", "WF_HB0_B", "WF_HB5", "WF_HB6",
+                              "WF_HB7", "WF_HB8", "WF_HB9", "WF_HB10",
+                              "WF_TOP_CLK", "WF_TOP_DATA", "WF_XO_REQ",
+                              "WF_CBA_RESETB", "WF_DIG_RESETB";
+                       drive-strength = <4>;
+               };
+       };
 };
 
 &pwm {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <40000000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
 
                partitions {
                        compatible = "fixed-partitions";
        };
 };
 
+&sgmiisys0 {
+       mediatek,pnswap;
+};
+
 &uart0 {
        status = "okay";
 };
+
+&usb_phy {
+       status = "okay";
+};
+
+&wifi {
+       nvmem-cells = <&wifi_factory_calibration>;
+       nvmem-cell-names = "eeprom";
+       pinctrl-names = "dbdc";
+       pinctrl-0 = <&wifi_dbdc_pins>;
+       status = "okay";
+};
+
+&xhci {
+       phys = <&u2port0 PHY_TYPE_USB2>;
+       vusb33-supply = <&reg_3p3v>;
+       vbus-supply = <&reg_5v>;
+       mediatek,u3p-dis-msk = <0x01>;
+       status = "okay";
+};
index 416096b80770cc4e607d9fd4e69bf6c63f166daf..4084f4dfa3e5e3114b674eab57e17dcda5cf5a3a 100644 (file)
@@ -2,6 +2,8 @@
 
 #include <dt-bindings/clock/mediatek,mt7981-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/reset/mt7986-resets.h>
 
 / {
                #size-cells = <2>;
                ranges;
 
+               wo_boot: wo-boot@15194000 {
+                       reg = <0 0x15194000 0 0x1000>;
+                       no-map;
+               };
+
+               wo_ilm0: wo-ilm@151e0000 {
+                       reg = <0 0x151e0000 0 0x8000>;
+                       no-map;
+               };
+
+               wo_dlm0: wo-dlm@151e8000 {
+                       reg = <0 0x151e8000 0 0x2000>;
+                       no-map;
+               };
+
                /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
                secmon_reserved: secmon@43000000 {
                        reg = <0 0x43000000 0 0x30000>;
                        no-map;
                };
+
+               wmcpu_emi: wmcpu-reserved@47c80000 {
+                       reg = <0 0x47c80000 0 0x100000>;
+                       no-map;
+               };
+
+               wo_emi0: wo-emi@47d80000 {
+                       reg = <0 0x47d80000 0 0x40000>;
+                       no-map;
+               };
+
+               wo_data: wo-data@47dc0000 {
+                       reg = <0 0x47dc0000 0 0x240000>;
+                       no-map;
+               };
        };
 
        soc {
                        #pwm-cells = <2>;
                };
 
+               sgmiisys0: syscon@10060000 {
+                       compatible = "mediatek,mt7981-sgmiisys_0", "syscon";
+                       reg = <0 0x10060000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               sgmiisys1: syscon@10070000 {
+                       compatible = "mediatek,mt7981-sgmiisys_1", "syscon";
+                       reg = <0 0x10070000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
                uart0: serial@11002000 {
                        compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
                        reg = <0 0x11002000 0 0x100>;
                        status = "disabled";
                };
 
+               xhci: usb@11200000 {
+                       compatible = "mediatek,mt7986-xhci", "mediatek,mtk-xhci";
+                       reg = <0 0x11200000 0 0x2e00>, <0 0x11203e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       clocks = <&infracfg CLK_INFRA_IUSB_SYS_CK>,
+                                <&infracfg CLK_INFRA_IUSB_CK>,
+                                <&infracfg CLK_INFRA_IUSB_133_CK>,
+                                <&infracfg CLK_INFRA_IUSB_66M_CK>,
+                                <&topckgen CLK_TOP_U2U3_XHCI_SEL>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
+                       interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
+                       status = "disabled";
+               };
+
+               pcie: pcie@11280000 {
+                       compatible = "mediatek,mt7981-pcie",
+                                    "mediatek,mt8192-pcie";
+                       reg = <0 0x11280000 0 0x4000>;
+                       reg-names = "pcie-mac";
+                       ranges = <0x82000000 0 0x20000000
+                                 0x0 0x20000000 0 0x10000000>;
+                       bus-range = <0x00 0xff>;
+                       clocks = <&infracfg CLK_INFRA_IPCIE_CK>,
+                                <&infracfg CLK_INFRA_IPCIE_PIPE_CK>,
+                                <&infracfg CLK_INFRA_IPCIER_CK>,
+                                <&infracfg CLK_INFRA_IPCIEB_CK>;
+                       clock-names = "pl_250m", "tl_26m", "peri_26m", "top_133m";
+                       device_type = "pci";
+                       phys = <&u3port0 PHY_TYPE_PCIE>;
+                       phy-names = "pcie-phy";
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &pcie_intc 0>,
+                                       <0 0 0 2 &pcie_intc 1>,
+                                       <0 0 0 3 &pcie_intc 2>,
+                                       <0 0 0 4 &pcie_intc 3>;
+                       #address-cells = <3>;
+                       #interrupt-cells = <1>;
+                       #size-cells = <2>;
+                       status = "disabled";
+
+                       pcie_intc: interrupt-controller {
+                               interrupt-controller;
+                               #address-cells = <0>;
+                               #interrupt-cells = <1>;
+                       };
+               };
+
                pio: pinctrl@11d00000 {
                        compatible = "mediatek,mt7981-pinctrl";
                        reg = <0 0x11d00000 0 0x1000>,
                        };
                };
 
+               topmisc: topmisc@11d10000 {
+                       compatible = "mediatek,mt7981-topmisc", "syscon";
+                       reg = <0 0x11d10000 0 0x10000>;
+                       #clock-cells = <1>;
+               };
+
+               usb_phy: t-phy@11e10000 {
+                       compatible = "mediatek,mt7981-tphy",
+                                    "mediatek,generic-tphy-v2";
+                       ranges = <0 0 0x11e10000 0x1700>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       status = "disabled";
+
+                       u2port0: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_USB_FRMCNT_SEL>;
+                               clock-names = "ref";
+                               #phy-cells = <1>;
+                       };
+
+                       u3port0: usb-phy@700 {
+                               reg = <0x700 0x900>;
+                               clocks = <&topckgen CLK_TOP_USB3_PHY_SEL>;
+                               clock-names = "ref";
+                               #phy-cells = <1>;
+                               mediatek,syscon-type = <&topmisc 0x218 0>;
+                       };
+               };
+
                efuse@11f20000 {
                        compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
                        reg = <0 0x11f20000 0 0x1000>;
                        thermal_calibration: thermal-calib@274 {
                                reg = <0x274 0xc>;
                        };
+
+                       phy_calibration: phy-calib@8dc {
+                               reg = <0x8dc 0x10>;
+                       };
                };
 
-               clock-controller@15000000 {
+               ethsys: clock-controller@15000000 {
                        compatible = "mediatek,mt7981-ethsys", "syscon";
                        reg = <0 0x15000000 0 0x1000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                };
 
-               wifi@18000000 {
+               wed: wed@15010000 {
+                       compatible = "mediatek,mt7981-wed",
+                                    "syscon";
+                       reg = <0 0x15010000 0 0x1000>;
+                       interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+                       memory-region = <&wo_emi0>, <&wo_ilm0>, <&wo_dlm0>,
+                                       <&wo_data>, <&wo_boot>;
+                       memory-region-names = "wo-emi", "wo-ilm", "wo-dlm",
+                                             "wo-data", "wo-boot";
+                       mediatek,wo-ccif = <&wo_ccif0>;
+               };
+
+               eth: ethernet@15100000 {
+                       compatible = "mediatek,mt7981-eth";
+                       reg = <0 0x15100000 0 0x40000>;
+                       assigned-clocks = <&topckgen CLK_TOP_NETSYS_2X_SEL>,
+                                         <&topckgen CLK_TOP_SGM_325M_SEL>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_CB_NET2_800M>,
+                                                <&topckgen CLK_TOP_CB_SGM_325M>;
+                       clocks = <&ethsys CLK_ETH_FE_EN>,
+                                <&ethsys CLK_ETH_GP2_EN>,
+                                <&ethsys CLK_ETH_GP1_EN>,
+                                <&ethsys CLK_ETH_WOCPU0_EN>,
+                                <&topckgen CLK_TOP_SGM_REG>,
+                                <&sgmiisys0 CLK_SGM0_TX_EN>,
+                                <&sgmiisys0 CLK_SGM0_RX_EN>,
+                                <&sgmiisys0 CLK_SGM0_CK0_EN>,
+                                <&sgmiisys0 CLK_SGM0_CDR_CK0_EN>,
+                                <&sgmiisys1 CLK_SGM1_TX_EN>,
+                                <&sgmiisys1 CLK_SGM1_RX_EN>,
+                                <&sgmiisys1 CLK_SGM1_CK1_EN>,
+                                <&sgmiisys1 CLK_SGM1_CDR_CK1_EN>,
+                                <&topckgen CLK_TOP_NETSYS_SEL>,
+                                <&topckgen CLK_TOP_NETSYS_500M_SEL>;
+                       clock-names = "fe", "gp2", "gp1", "wocpu0",
+                                     "sgmii_ck",
+                                     "sgmii_tx250m", "sgmii_rx250m",
+                                     "sgmii_cdr_ref", "sgmii_cdr_fb",
+                                     "sgmii2_tx250m", "sgmii2_rx250m",
+                                     "sgmii2_cdr_ref", "sgmii2_cdr_fb",
+                                     "netsys0", "netsys1";
+                       interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 199 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>;
+                       interrupt-names = "fe0", "fe1", "fe2", "fe3", "pdma0",
+                                         "pdma1", "pdma2", "pdma3";
+                       sram = <&eth_sram>;
+                       mediatek,ethsys = <&ethsys>;
+                       mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
+                       mediatek,infracfg = <&topmisc>;
+                       mediatek,wed = <&wed>;
+                       status = "disabled";
+
+                       mdio_bus: mdio-bus {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               int_gbe_phy: ethernet-phy@0 {
+                                       compatible = "ethernet-phy-ieee802.3-c22";
+                                       reg = <0>;
+                                       phy-mode = "gmii";
+                                       phy-is-integrated;
+                                       nvmem-cells = <&phy_calibration>;
+                                       nvmem-cell-names = "phy-cal-data";
+                               };
+                       };
+               };
+
+               eth_sram: sram@15140000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0x15140000 0 0x40000>;
+                       ranges = <0 0x15140000 0 0x40000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+
+               wo_ccif0: syscon@151a5000 {
+                       compatible = "mediatek,mt7986-wo-ccif", "syscon";
+                       reg = <0 0x151a5000 0 0x1000>;
+                       interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               wifi: wifi@18000000 {
                        compatible = "mediatek,mt7981-wmac";
                        reg = <0 0x18000000 0 0x1000000>,
                              <0 0x10003000 0 0x1000>,
                        clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
                                 <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
                        clock-names = "mcu", "ap2conn";
+                       memory-region = <&wmcpu_emi>;
                        resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
                        reset-names = "consys";
+                       status = "disabled";
                };
        };
 
index 7790601586ccf4022296d43c06d038ddba9ec150..9693f62fd013624dad9c727f92aa97f6247f66dd 100644 (file)
                };
 
                crypto: crypto@10320000 {
-                       compatible = "inside-secure,safexcel-eip97";
+                       compatible = "mediatek,mt7986-crypto", "inside-secure,safexcel-eip97ies";
                        reg = <0 0x10320000 0 0x40000>;
                        interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
index bec590d26659c0e242736e65065a6c1e5fbc18b9..8c9a5aba25791307957bd9d8294b9a3384a0acac 100644 (file)
                tphy: t-phy@11c50000 {
                        compatible = "mediatek,mt7986-tphy",
                                     "mediatek,generic-tphy-v2";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x11c50000 0x1000>;
                        status = "disabled";
 
-                       tphyu2port0: usb-phy@11c50000 {
-                               reg = <0 0x11c50000 0 0x700>;
+                       tphyu2port0: usb-phy@0 {
+                               reg = <0 0x700>;
                                clocks = <&infracfg CLK_INFRA_USB_UTMI_CK_P1>;
                                clock-names = "ref";
                                #phy-cells = <1>;
                        };
 
-                       tphyu3port0: usb-phy@11c50700 {
-                               reg = <0 0x11c50700 0 0x900>;
+                       tphyu3port0: usb-phy@700 {
+                               reg = <0x700 0x900>;
                                clocks = <&infracfg CLK_INFRA_USB_PIPE_CK_P1>;
                                clock-names = "ref";
                                #phy-cells = <1>;
                xsphy: xs-phy@11e10000 {
                        compatible = "mediatek,mt7988-xsphy",
                                     "mediatek,xsphy";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x11e10000 0x3900>;
                        status = "disabled";
 
-                       xphyu2port0: usb-phy@11e10000 {
-                               reg = <0 0x11e10000 0 0x400>;
+                       xphyu2port0: usb-phy@0 {
+                               reg = <0 0x400>;
                                clocks = <&infracfg CLK_INFRA_USB_UTMI>;
                                clock-names = "ref";
                                #phy-cells = <1>;
                        };
 
-                       xphyu3port0: usb-phy@11e13000 {
-                               reg = <0 0x11e13400 0 0x500>;
+                       xphyu3port0: usb-phy@3400 {
+                               reg = <0x3400 0x500>;
                                clocks = <&infracfg CLK_INFRA_USB_PIPE>;
                                clock-names = "ref";
                                #phy-cells = <1>;
index dfc5c2f0ddefd7bb0f2b989fe3214ba9a903100b..1004eb8ea52c1c5d28a73b4e69a254bd1f511fcb 100644 (file)
@@ -5,6 +5,14 @@
 
 #include "mt8173-elm.dtsi"
 
+&hdmi_mux_pins {
+       pins-mux {
+               pinmux = <MT8173_PIN_98_URTS1__FUNC_GPIO98>;
+               bias-pull-up;
+               output-high;
+       };
+};
+
 &i2c0 {
        clock-frequency = <200000>;
 };
        };
 };
 
-&mmc1 {
-       wp-gpios = <&pio 42 GPIO_ACTIVE_HIGH>;
-};
-
-&pio {
-       hdmi_mux_pins: hdmi_mux_pins {
-               pins2 {
-                       pinmux = <MT8173_PIN_98_URTS1__FUNC_GPIO98>;
-                       bias-pull-up;
-                       output-high;
-               };
+&mmc1_pins_default {
+       pins-wp {
+               pinmux = <MT8173_PIN_42_DSI_TE__FUNC_GPIO42>;
+               input-enable;
+               bias-pull-up;
        };
+};
 
-       mmc1_pins_default: mmc1default {
-               pins_wp {
-                       pinmux = <MT8173_PIN_42_DSI_TE__FUNC_GPIO42>;
-                       input-enable;
-                       bias-pull-up;
-               };
-       };
+&mmc1 {
+       wp-gpios = <&pio 42 GPIO_ACTIVE_HIGH>;
 };
 
 &touchscreen {
index 0d995b342d46315fcb855ca7da2bfdea52bfc608..a0573bc359fb6560b85c213974a3f302f76ab706 100644 (file)
 
 &dsi0 {
        status = "okay";
-       ports {
-               port {
-                       dsi0_out: endpoint {
-                               remote-endpoint = <&ps8640_in>;
-                       };
+       port {
+               dsi0_out: endpoint {
+                       remote-endpoint = <&ps8640_in>;
                };
        };
 };
        #address-cells = <1>;
        #size-cells = <0>;
 
-       btmrvl: btmrvl@2 {
+       mwifiex: wifi@1 {
+               compatible = "marvell,sd8897";
+               reg = <1>;
+               interrupts-extended = <&pio 38 IRQ_TYPE_LEVEL_LOW>;
+               marvell,wakeup-pin = <3>;
+       };
+
+       btmrvl: bluetooth@2 {
                compatible = "marvell,sd8897-bt";
                reg = <2>;
                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>;
-               interrupts-extended = <&pio 38 IRQ_TYPE_LEVEL_LOW>;
-               marvell,wakeup-pin = <3>;
-       };
 };
 
 &nor_flash {
                          "SOC_I2C4_1V8_SDA_400K",
                          "SOC_I2C4_1V8_SCL_400K";
 
-       aud_i2s2: aud_i2s2 {
-               pins1 {
+       aud_i2s2: aud-i2s2-pins {
+               pins-bus {
                        pinmux = <MT8173_PIN_128_I2S0_LRCK__FUNC_I2S1_WS>,
                                 <MT8173_PIN_129_I2S0_BCK__FUNC_I2S1_BCK>,
                                 <MT8173_PIN_130_I2S0_MCK__FUNC_I2S1_MCK>,
                };
        };
 
-       bl_fixed_pins: bl_fixed_pins {
-               pins1 {
+       bl_fixed_pins: backlight-pins {
+               pins-blon {
                        pinmux = <MT8173_PIN_32_UTXD2__FUNC_GPIO32>;
                        output-low;
                };
        };
 
-       bt_wake_pins: bt_wake_pins {
-               pins1 {
+       bt_wake_pins: bt-pins {
+               pins-wake {
                        pinmux = <MT8173_PIN_119_KPROW0__FUNC_GPIO119>;
                        bias-pull-up;
                };
        };
 
-       disp_pwm0_pins: disp_pwm0_pins {
+       disp_pwm0_pins: disp-pwm0-pins {
                pins1 {
                        pinmux = <MT8173_PIN_87_DISP_PWM0__FUNC_DISP_PWM0>;
                        output-low;
                };
        };
 
-       gpio_keys_pins: gpio_keys_pins {
-               volume_pins {
+       gpio_keys_pins: gpio-keys-pins {
+               pins-volumeupdn {
                        pinmux = <MT8173_PIN_123_KPCOL1__FUNC_GPIO123>,
                                 <MT8173_PIN_124_KPCOL2__FUNC_GPIO124>;
                        bias-pull-up;
                };
 
-               tablet_mode_pins {
+               pins-tabletmode {
                        pinmux = <MT8173_PIN_121_KPROW2__FUNC_GPIO121>;
                        bias-pull-up;
                };
        };
 
-       hdmi_mux_pins: hdmi_mux_pins {
-               pins1 {
+       hdmi_mux_pins: hdmi-pins {
+               pins-mux {
                        pinmux = <MT8173_PIN_36_DAISYNC__FUNC_GPIO36>;
                };
        };
 
-       i2c1_pins_a: i2c1 {
-               da9211_pins {
+       i2c1_pins_a: i2c1-pins {
+               pins-da9211 {
                        pinmux = <MT8173_PIN_15_EINT15__FUNC_GPIO15>;
                        bias-pull-up;
                };
        };
 
-       mmc0_pins_default: mmc0default {
-               pins_cmd_dat {
+       mmc0_pins_default: mmc0-default-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
                                 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
                                 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
                        bias-pull-up;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
                        bias-pull-down;
                };
 
-               pins_rst {
+               pins-rst {
                        pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
                        bias-pull-up;
                };
        };
 
-       mmc1_pins_default: mmc1default {
-               pins_cmd_dat {
+       mmc1_pins_default: mmc1-default-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
                                 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
                                 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
                                 <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
                                 <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
                        bias-pull-down;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                };
 
-               pins_insert {
+               pins-insert {
                        pinmux = <MT8173_PIN_1_EINT1__FUNC_GPIO1>;
                        bias-pull-up;
                };
        };
 
-       mmc3_pins_default: mmc3default {
-               pins_dat {
+       mmc3_pins_default: mmc3-default-pins {
+               pins-dat {
                        pinmux = <MT8173_PIN_22_MSDC3_DAT0__FUNC_MSDC3_DAT0>,
                                 <MT8173_PIN_23_MSDC3_DAT1__FUNC_MSDC3_DAT1>,
                                 <MT8173_PIN_24_MSDC3_DAT2__FUNC_MSDC3_DAT2>,
                                 <MT8173_PIN_25_MSDC3_DAT3__FUNC_MSDC3_DAT3>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_cmd {
+               pins-cmd {
                        pinmux = <MT8173_PIN_27_MSDC3_CMD__FUNC_MSDC3_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_26_MSDC3_CLK__FUNC_MSDC3_CLK>;
                        bias-pull-down;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                };
        };
 
-       mmc0_pins_uhs: mmc0 {
-               pins_cmd_dat {
+       mmc0_pins_uhs: mmc0-uhs-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
                                 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
                                 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
                                 <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
                                 <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
                };
 
-               pins_ds {
+               pins-ds {
                        pinmux = <MT8173_PIN_67_MSDC0_DSL__FUNC_MSDC0_DSL>;
                        drive-strength = <MTK_DRIVE_10mA>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
                };
 
-               pins_rst {
+               pins-rst {
                        pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
                        bias-pull-up;
                };
        };
 
-       mmc1_pins_uhs: mmc1 {
-               pins_cmd_dat {
+       mmc1_pins_uhs: mmc1-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
                                 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
                                 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
                                 <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
                                 <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
        };
 
-       mmc3_pins_uhs: mmc3 {
-               pins_dat {
+       mmc3_pins_uhs: mmc3-pins {
+               pins-dat {
                        pinmux = <MT8173_PIN_22_MSDC3_DAT0__FUNC_MSDC3_DAT0>,
                                 <MT8173_PIN_23_MSDC3_DAT1__FUNC_MSDC3_DAT1>,
                                 <MT8173_PIN_24_MSDC3_DAT2__FUNC_MSDC3_DAT2>,
                                 <MT8173_PIN_25_MSDC3_DAT3__FUNC_MSDC3_DAT3>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_cmd {
+               pins-cmd {
                        pinmux = <MT8173_PIN_27_MSDC3_CMD__FUNC_MSDC3_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_26_MSDC3_CLK__FUNC_MSDC3_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
        };
 
-       nor_gpio1_pins: nor {
+       nor_gpio1_pins: nor-pins {
                pins1 {
                        pinmux = <MT8173_PIN_6_EINT6__FUNC_SFCS0>,
                                 <MT8173_PIN_7_EINT7__FUNC_SFHOLD>,
                                 <MT8173_PIN_8_EINT8__FUNC_SFIN>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-up;
                };
 
                pins2 {
                        pinmux = <MT8173_PIN_5_EINT5__FUNC_SFOUT>;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-up;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_9_EINT9__FUNC_SFCK>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-up;
                };
        };
 
-       panel_backlight_en_pins: panel_backlight_en_pins {
+       panel_backlight_en_pins: panel-backlight-en-pins {
                pins1 {
                        pinmux = <MT8173_PIN_95_PCM_TX__FUNC_GPIO95>;
                };
        };
 
-       panel_fixed_pins: panel_fixed_pins {
+       panel_fixed_pins: panel-fixed-pins {
                pins1 {
                        pinmux = <MT8173_PIN_41_CMMCLK__FUNC_GPIO41>;
                };
        };
 
-       ps8640_pins: ps8640_pins {
+       ps8640_pins: ps8640-pins {
                pins1 {
                        pinmux = <MT8173_PIN_92_PCM_CLK__FUNC_GPIO92>,
                                 <MT8173_PIN_115_URTS0__FUNC_GPIO115>,
                };
        };
 
-       ps8640_fixed_pins: ps8640_fixed_pins {
+       ps8640_fixed_pins: ps8640-fixed-pins {
                pins1 {
                        pinmux = <MT8173_PIN_30_URTS2__FUNC_GPIO30>;
                };
        };
 
-       rt5650_irq: rt5650_irq {
-               pins1 {
+       rt5650_irq: rt5650-pins {
+               pins-intn {
                        pinmux = <MT8173_PIN_3_EINT3__FUNC_GPIO3>;
                        bias-pull-down;
                };
        };
 
-       sdio_fixed_3v3_pins: sdio_fixed_3v3_pins {
+       sdio_fixed_3v3_pins: sdio-vreg-3v3-pins {
                pins1 {
                        pinmux = <MT8173_PIN_85_AUD_DAT_MOSI__FUNC_GPIO85>;
                        output-low;
                };
        };
 
-       spi_pins_a: spi1 {
+       spi_pins_a: spi1-pins {
                pins1 {
                        pinmux = <MT8173_PIN_0_EINT0__FUNC_GPIO0>;
                        bias-pull-up;
                };
 
-               pins_spi {
+               pins-spi {
                        pinmux = <MT8173_PIN_102_MSDC2_DAT2__FUNC_SPI_CK_1_>,
                                 <MT8173_PIN_103_MSDC2_DAT3__FUNC_SPI_MI_1_>,
                                 <MT8173_PIN_104_MSDC2_CLK__FUNC_SPI_MO_1_>,
                };
        };
 
-       trackpad_irq: trackpad_irq {
-               pins1 {
+       trackpad_irq: trackpad-pins {
+               pins-intn {
                        pinmux = <MT8173_PIN_117_URXD3__FUNC_GPIO117>;
                        input-enable;
                        bias-pull-up;
                };
        };
 
-       usb_pins: usb {
+       usb_pins: usb-pins {
                pins1 {
                        pinmux = <MT8173_PIN_101_MSDC2_DAT1__FUNC_GPIO101>;
                        output-high;
                };
        };
 
-       wifi_wake_pins: wifi_wake_pins {
-               pins1 {
+       wifi_wake_pins: wifi-pins {
+               pins-wake {
                        pinmux = <MT8173_PIN_38_CONN_RST__FUNC_GPIO38>;
                        bias-pull-up;
                };
        status = "okay";
 };
 
-&thermal {
-       bank0-supply = <&mt6397_vpca15_reg>;
-       bank1-supply = <&da9211_vcpu_reg>;
-};
-
 &uart0 {
        status = "okay";
 };
index 9fffed0ef4bff4bbd6dabcd968daaf49f9f05121..1049877e6cdae67ec760e1e9770901c3d6a8f89c 100644 (file)
        buck: da9211@68 {
                compatible = "dlg,da9211";
                reg = <0x68>;
+               interrupts-extended = <&pio 15 IRQ_TYPE_LEVEL_LOW>;
 
                regulators {
                        da9211_vcpu_reg: BUCKA {
 };
 
 &pio {
-       disp_pwm0_pins: disp_pwm0_pins {
+       disp_pwm0_pins: disp-pwm0-pins {
                pins1 {
                        pinmux = <MT8173_PIN_87_DISP_PWM0__FUNC_DISP_PWM0>;
                        output-low;
                };
        };
 
-       mmc0_pins_default: mmc0default {
-               pins_cmd_dat {
+       i2c1_pins_a: i2c1-pins {
+               pins-da9211 {
+                       pinmux = <MT8173_PIN_15_EINT15__FUNC_GPIO15>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc0_pins_default: mmc0-default-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
                                 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
                                 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
                        bias-pull-up;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
                        bias-pull-down;
                };
 
-               pins_rst {
+               pins-rst {
                        pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
                        bias-pull-up;
                };
        };
 
-       mmc1_pins_default: mmc1default {
-               pins_cmd_dat {
+       mmc1_pins_default: mmc1-default-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
                                 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
                                 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
                        bias-pull-down;
                        drive-strength = <4>;
                };
 
-               pins_insert {
+               pins-insert {
                        pinmux = <MT8173_PIN_132_I2S0_DATA1__FUNC_GPIO132>;
                        bias-pull-up;
                };
        };
 
-       mmc0_pins_uhs: mmc0 {
-               pins_cmd_dat {
+       mmc0_pins_uhs: mmc0-uhs-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
                                 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
                                 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
                        drive-strength = <2>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
                };
 
-               pins_rst {
+               pins-rst {
                        pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
                        bias-pull-up;
                };
        };
 
-       mmc1_pins_uhs: mmc1 {
-               pins_cmd_dat {
+       spi_pins_a: spi0-pins {
+               pins-bus {
+                       pinmux = <MT8173_PIN_69_SPI_CK__FUNC_SPI_CK_0_>,
+                               <MT8173_PIN_70_SPI_MI__FUNC_SPI_MI_0_>,
+                               <MT8173_PIN_71_SPI_MO__FUNC_SPI_MO_0_>,
+                               <MT8173_PIN_72_SPI_CS__FUNC_SPI_CS_0_>;
+               };
+       };
+
+       mmc1_pins_uhs: mmc1-uhs-pins {
+               pins-cmd-dat {
                        pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
                                 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
                                 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
-               pins_clk {
+               pins-clk {
                        pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
                        drive-strength = <4>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
        };
 
-       usb_id_pins_float: usb_iddig_pull_up {
-               pins_iddig {
+       usb_id_pins_float: usb-iddig-pu-pins {
+               pins-iddig-pu {
                        pinmux = <MT8173_PIN_16_IDDIG__FUNC_IDDIG>;
                        bias-pull-up;
                };
        };
 
-       usb_id_pins_ground: usb_iddig_pull_down {
-               pins_iddig {
+       usb_id_pins_ground: usb-iddig-pd-pins {
+               pins-iddig-pd {
                        pinmux = <MT8173_PIN_16_IDDIG__FUNC_IDDIG>;
                        bias-pull-down;
                };
        };
 };
 
-&pio {
-       spi_pins_a: spi0 {
-               pins_spi {
-                       pinmux = <MT8173_PIN_69_SPI_CK__FUNC_SPI_CK_0_>,
-                               <MT8173_PIN_70_SPI_MI__FUNC_SPI_MI_0_>,
-                               <MT8173_PIN_71_SPI_MO__FUNC_SPI_MO_0_>,
-                               <MT8173_PIN_72_SPI_CS__FUNC_SPI_CS_0_>;
-               };
-       };
-};
-
 &spi {
        pinctrl-names = "default";
        pinctrl-0 = <&spi_pins_a>;
index 122a57c3780b69ac25bb114193814f68dac43791..78c2ccd5be132d818673047d43cc3314866404d4 100644 (file)
                                     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
 
-                       hdmi_pin: xxx {
+                       hdmi_pin: hdmi-hotplug-pins {
 
                                /*hdmi htplg pin*/
-                               pins1 {
+                               pins-htplg {
                                        pinmux = <MT8173_PIN_21_HTPLG__FUNC_HTPLG>;
                                        input-enable;
                                        bias-pull-down;
                                };
                        };
 
-                       i2c0_pins_a: i2c0 {
-                               pins1 {
+                       i2c0_pins_a: i2c0-pins {
+                               pins-bus {
                                        pinmux = <MT8173_PIN_45_SDA0__FUNC_SDA0>,
                                                 <MT8173_PIN_46_SCL0__FUNC_SCL0>;
                                        bias-disable;
                                };
                        };
 
-                       i2c1_pins_a: i2c1 {
-                               pins1 {
+                       i2c1_pins_a: i2c1-pins {
+                               pins-bus {
                                        pinmux = <MT8173_PIN_125_SDA1__FUNC_SDA1>,
                                                 <MT8173_PIN_126_SCL1__FUNC_SCL1>;
                                        bias-disable;
                                };
                        };
 
-                       i2c2_pins_a: i2c2 {
-                               pins1 {
+                       i2c2_pins_a: i2c2-pins {
+                               pins-bus {
                                        pinmux = <MT8173_PIN_43_SDA2__FUNC_SDA2>,
                                                 <MT8173_PIN_44_SCL2__FUNC_SCL2>;
                                        bias-disable;
                                };
                        };
 
-                       i2c3_pins_a: i2c3 {
-                               pins1 {
+                       i2c3_pins_a: i2c3-pins {
+                               pins-bus {
                                        pinmux = <MT8173_PIN_106_SDA3__FUNC_SDA3>,
                                                 <MT8173_PIN_107_SCL3__FUNC_SCL3>;
                                        bias-disable;
                                };
                        };
 
-                       i2c4_pins_a: i2c4 {
-                               pins1 {
+                       i2c4_pins_a: i2c4-pins {
+                               pins-bus {
                                        pinmux = <MT8173_PIN_133_SDA4__FUNC_SDA4>,
                                                 <MT8173_PIN_134_SCL4__FUNC_SCL4>;
                                        bias-disable;
                                };
                        };
 
-                       i2c6_pins_a: i2c6 {
-                               pins1 {
+                       i2c6_pins_a: i2c6-pins {
+                               pins-bus {
                                        pinmux = <MT8173_PIN_100_MSDC2_DAT0__FUNC_SDA5>,
                                                 <MT8173_PIN_101_MSDC2_DAT1__FUNC_SCL5>;
                                        bias-disable;
index f04baea5d6cbe2375537462dc32c9ac47acc0c71..acfdd5fb041f97ee713a87edb85725dd7c40abbb 100644 (file)
@@ -38,7 +38,7 @@
                };
        };
 
-       thermal-sensor {
+       thermistor {
                compatible = "murata,ncp03wf104";
                pullup-uv = <1800000>;
                pullup-ohm = <390000>;
 };
 
 &pio {
-       i2c_pins_0: i2c0 {
+       i2c_pins_0: i2c0-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
                                 <PINMUX_GPIO83__FUNC_SCL0>;
                };
        };
 
-       i2c_pins_1: i2c1 {
+       i2c_pins_1: i2c1-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
                                 <PINMUX_GPIO84__FUNC_SCL1>;
                };
        };
 
-       i2c_pins_2: i2c2 {
+       i2c_pins_2: i2c2-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
                                 <PINMUX_GPIO104__FUNC_SDA2>;
                };
        };
 
-       i2c_pins_3: i2c3 {
+       i2c_pins_3: i2c3-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
                                 <PINMUX_GPIO51__FUNC_SDA3>;
                };
        };
 
-       i2c_pins_4: i2c4 {
+       i2c_pins_4: i2c4-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
                                 <PINMUX_GPIO106__FUNC_SDA4>;
                };
        };
 
-       i2c_pins_5: i2c5 {
+       i2c_pins_5: i2c5-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
                                 <PINMUX_GPIO49__FUNC_SDA5>;
                };
        };
 
-       spi_pins_0: spi0 {
+       spi_pins_0: spi0-pins {
                pins_spi {
                        pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>,
                                 <PINMUX_GPIO86__FUNC_SPI0_CSB>,
                };
        };
 
-       mmc0_pins_default: mmc0default {
+       mmc0_pins_default: mmc0-default-pins {
                pins_cmd_dat {
                        pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
                                 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
                };
        };
 
-       mmc0_pins_uhs: mmc0 {
+       mmc0_pins_uhs: mmc0-uhs-pins {
                pins_cmd_dat {
                        pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
                                 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
                };
        };
 
-       mmc1_pins_default: mmc1default {
+       mmc1_pins_default: mmc1-default-pins {
                pins_cmd_dat {
                        pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
                                   <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
                };
        };
 
-       mmc1_pins_uhs: mmc1 {
+       mmc1_pins_uhs: mmc1-pins {
                pins_cmd_dat {
                        pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
                                   <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
                };
        };
 
-       spi_pins_1: spi1 {
+       spi_pins_1: spi1-pins {
                pins_spi {
                        pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>,
                                 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>,
                };
        };
 
-       spi_pins_2: spi2 {
+       spi_pins_2: spi2-pins {
                pins_spi {
                        pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
                                 <PINMUX_GPIO1__FUNC_SPI2_MO>,
                };
        };
 
-       spi_pins_3: spi3 {
+       spi_pins_3: spi3-pins {
                pins_spi {
                        pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>,
                                 <PINMUX_GPIO22__FUNC_SPI3_CSB>,
                };
        };
 
-       spi_pins_4: spi4 {
+       spi_pins_4: spi4-pins {
                pins_spi {
                        pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>,
                                 <PINMUX_GPIO18__FUNC_SPI4_CSB>,
                };
        };
 
-       spi_pins_5: spi5 {
+       spi_pins_5: spi5-pins {
                pins_spi {
                        pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>,
                                 <PINMUX_GPIO14__FUNC_SPI5_CSB>,
                };
        };
 
-       pwm_pins_1: pwm1 {
+       pwm_pins_1: pwm1-pins {
                pins_pwm {
                        pinmux = <PINMUX_GPIO90__FUNC_PWM_A>;
                };
index cce326aec1aa594deb6f5b14340d3552d110b160..40af5656d6f15f6088dfcf3aad15b45a6a2db34b 100644 (file)
@@ -91,7 +91,7 @@
 
 &pio {
        bt_pins_wakeup: bt-pins-wakeup {
-               piins-bt-wakeup {
+               pins-bt-wakeup {
                        pinmux = <PINMUX_GPIO42__FUNC_GPIO42>;
                        input-enable;
                };
index 4b87d4940c8c739869c347698c6545ded62896d2..a8e257b21a88c63e6853259de4bde35b13eff2af 100644 (file)
                clock-output-names = "clk32k";
        };
 
-       it6505_pp18_reg: regulator0 {
+       pp1800_it6505: regulator0 {
                compatible = "regulator-fixed";
-               regulator-name = "it6505_pp18";
-               gpio = <&pio 178 0>;
+               regulator-name = "pp1800_it6505";
+               gpios = <&pio 178 GPIO_ACTIVE_HIGH>;
                enable-active-high;
                vin-supply = <&pp1800_alw>;
        };
index f60ef3e53a09b57ac16dd635a74d39b37284e762..e47955602c8335a8180dce462c4109faa9542e86 100644 (file)
 };
 
 &pio {
-       i2c_pins_0: i2c0 {
+       i2c_pins_0: i2c0-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
                                 <PINMUX_GPIO83__FUNC_SCL0>;
                };
        };
 
-       i2c_pins_1: i2c1 {
+       i2c_pins_1: i2c1-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
                                 <PINMUX_GPIO84__FUNC_SCL1>;
                };
        };
 
-       i2c_pins_2: i2c2 {
+       i2c_pins_2: i2c2-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
                                 <PINMUX_GPIO104__FUNC_SDA2>;
                };
        };
 
-       i2c_pins_3: i2c3 {
+       i2c_pins_3: i2c3-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
                                 <PINMUX_GPIO51__FUNC_SDA3>;
                };
        };
 
-       i2c_pins_4: i2c4 {
+       i2c_pins_4: i2c4-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
                                 <PINMUX_GPIO106__FUNC_SDA4>;
                };
        };
 
-       i2c_pins_5: i2c5 {
+       i2c_pins_5: i2c5-pins {
                pins_i2c {
                        pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
                                 <PINMUX_GPIO49__FUNC_SDA5>;
                };
        };
 
-       i2c6_pins: i2c6 {
+       i2c6_pins: i2c6-pins {
                pins_cmd_dat {
                        pinmux = <PINMUX_GPIO113__FUNC_SCL6>,
                                 <PINMUX_GPIO114__FUNC_SDA6>;
                };
        };
 
-       keyboard_pins: keyboard {
+       keyboard_pins: keyboard-pins {
                pins_keyboard {
                        pinmux = <PINMUX_GPIO91__FUNC_KPROW1>,
                                 <PINMUX_GPIO92__FUNC_KPROW0>,
index 4e20a8f2eb25803057955401a7737c7f029a1424..95cc067995336cfa55de0e9f2b3f09e6014a3e35 100644 (file)
                                #size-cells = <0>;
 
                                port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        reg = <0>;
-                                       ovl_2l1_in: endpoint {
+
+                                       ovl_2l1_in: endpoint@1 {
+                                               reg = <1>;
                                                remote-endpoint = <&mmsys_ep_ext>;
                                        };
                                };
 
                                port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        reg = <1>;
-                                       ovl_2l1_out: endpoint {
+
+                                       ovl_2l1_out: endpoint@1 {
+                                               reg = <1>;
                                                remote-endpoint = <&rdma1_in>;
                                        };
                                };
                                #size-cells = <0>;
 
                                port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        reg = <0>;
-                                       rdma1_in: endpoint {
+
+                                       rdma1_in: endpoint@1 {
+                                               reg = <1>;
                                                remote-endpoint = <&ovl_2l1_out>;
                                        };
                                };
 
                                port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        reg = <1>;
-                                       rdma1_out: endpoint {
+
+                                       rdma1_out: endpoint@1 {
+                                               reg = <1>;
                                                remote-endpoint = <&dpi_in>;
                                        };
                                };
                                #size-cells = <0>;
 
                                port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        reg = <0>;
-                                       dpi_in: endpoint {
+
+                                       dpi_in: endpoint@1 {
+                                               reg = <1>;
                                                remote-endpoint = <&rdma1_out>;
                                        };
                                };
 
                                port@1 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
                                        reg = <1>;
-                                       dpi_out: endpoint { };
+
+                                       dpi_out: endpoint@1  {
+                                               reg = <1>;
+                                       };
                                };
                        };
                };
index 2667a7424200e2ede7d7aaf8b76e6829ae01e758..a941a931a07c061022a180d0a480af737a66ab69 100644 (file)
                device_type = "memory";
                reg = <0 0x40000000 0 0x80000000>;
        };
+
+       vproc: regulator-vproc12 {
+               compatible = "regulator-fixed";
+               regulator-name = "vproc12";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+};
+
+&cci {
+       proc-supply = <&vproc>;
 };
 
 &i2c0 {
index 7fedbacdac44c69a7e2d27bc409c45d4b7fbe3b6..8e423504ec052c257c7caab62671de2d0cd810cc 100644 (file)
 &scp_c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&scp_pins>;
-       firmware-name = "mediatek/mt8188/scp.img";
        memory-region = <&scp_mem_reserved>;
        status = "okay";
 };
index 90c388f1890f5139be6a9513c4cd9b683a501279..75133794cec38b7eb1515ac720ed1043a0d34554 100644 (file)
@@ -26,6 +26,7 @@
        aliases {
                dp-intf0 = &dp_intf0;
                dp-intf1 = &dp_intf1;
+               dpi1 = &dpi1;
                dsc0 = &dsc0;
                ethdr0 = &ethdr0;
                gce0 = &gce0;
                        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>;
+                       interrupts-extended = <&gic 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>,
                        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>;
+                       interrupts-extended = <&gic 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>;
                        compatible = "mediatek,mt8188-mmc", "mediatek,mt8183-mmc";
                        reg = <0 0x11250000 0 0x1000>,
                              <0 0x11e60000 0 0x1000>;
-                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupts-extended = <&gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
                        clocks = <&topckgen CLK_TOP_MSDC30_2>,
                                 <&infracfg_ao CLK_INFRA_AO_MSDC2>,
                                 <&infracfg_ao CLK_INFRA_AO_MSDC30_2>;
                        };
                };
 
+               hdmi_phy: hdmi-phy@11d5f000 {
+                       compatible = "mediatek,mt8188-hdmi-phy", "mediatek,mt8195-hdmi-phy";
+                       reg = <0 0x11d5f000 0 0x100>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_HDMI_26M>;
+                       clock-names = "pll_ref";
+                       clock-output-names = "hdmi_txpll";
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
+                       mediatek,ibias = <0xa>;
+                       mediatek,ibias_up = <0x1c>;
+                       status = "disabled";
+               };
+
                mipi_tx_config0: dsi-phy@11c80000 {
                        compatible = "mediatek,mt8188-mipi-tx", "mediatek,mt8183-mipi-tx";
                        reg = <0 0x11c80000 0 0x1000>;
                        mediatek,merge-fifo-en;
                };
 
+               dpi1: dpi@1c112000 {
+                       compatible = "mediatek,mt8188-dpi", "mediatek,mt8195-dpi";
+                       reg = <0 0x1c112000 0 0x1000>;
+                       clocks = <&vdosys1 CLK_VDO1_DPI1>,
+                                <&vdosys1 CLK_VDO1_DPI1_MM>,
+                                <&vdosys1 CLK_VDO1_DPI1_HDMI>;
+                       clock-names = "pixel", "engine", "pll";
+                       interrupts = <GIC_SPI 524 IRQ_TYPE_LEVEL_HIGH 0>;
+                       power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS1>;
+                       resets = <&vdosys1 MT8188_VDO1_RST_DPI1_MM_CK>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       dpi1_in: endpoint { };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       dpi1_out: endpoint { };
+                               };
+                       };
+               };
+
                dp_intf1: dp-intf@1c113000 {
                        compatible = "mediatek,mt8188-dp-intf";
                        reg = <0 0x1c113000 0 0x1000>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c12XXXX 0x4000 0x1000>;
                };
 
+               hdmi: hdmi@1c300000 {
+                       compatible = "mediatek,mt8188-hdmi-tx";
+                       #sound-dai-cells = <1>;
+                       reg = <0 0x1c300000 0 0x1000>;
+                       clocks = <&topckgen CLK_TOP_HDMI_APB>,
+                                <&topckgen CLK_TOP_HDCP>,
+                                <&topckgen CLK_TOP_HDCP_24M>,
+                                <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
+                       clock-names = "bus", "hdcp", "hdcp24m", "hdmi-split";
+                       assigned-clocks = <&topckgen CLK_TOP_HDCP>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4_D8>;
+                       interrupts = <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH 0>;
+                       power-domains = <&spm MT8188_POWER_DOMAIN_HDMI_TX>;
+                       phys = <&hdmi_phy>;
+                       phy-names = "hdmi";
+                       status = "disabled";
+
+                       hdmi_ddc: i2c {
+                               compatible = "mediatek,mt8188-hdmi-ddc",
+                                            "mediatek,mt8195-hdmi-ddc";
+                               clocks = <&clk26m>;
+                       };
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       hdmi0_in: endpoint { };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       hdmi0_out: endpoint { };
+                               };
+                       };
+               };
+
+
                edp_tx: edp-tx@1c500000 {
                        compatible = "mediatek,mt8188-edp-tx";
                        reg = <0 0x1c500000 0 0x8000>;
index 0b4664f044a159e389da7db05725ca8729fb4fa7..eadf1b2d156f295c793944139a1d77699e55f135 100644 (file)
        status = "okay";
 
        clock-frequency = <400000>;
-       clock-stretch-ns = <12600>;
        pinctrl-names = "default";
        pinctrl-0 = <&i2c2_pins>;
 
index 47dea10dd3b8b1e424f4d10fe5600a7e27cd4828..9f8f115edd4cc44d06a0de5da838a7e9cb576121 100644 (file)
                        reg = <0 0x11210000 0 0x2000>;
                        #clock-cells = <1>;
 
-                       afe: mt8192-afe-pcm {
+                       afe: audio-controller {
                                compatible = "mediatek,mt8192-audio";
                                interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 0>;
                                resets = <&watchdog 17>;
index c7adafaa83288d2d86ddf45c97cc984344e1ff77..c72e34c57629d0fabd08fabab8250e2f865de915 100644 (file)
        aliases {
                dp-intf0 = &dp_intf0;
                dp-intf1 = &dp_intf1;
+               dpi1 = &dpi1;
                gce0 = &gce0;
                gce1 = &gce1;
+               hdmi0 = &hdmi;
                ethdr0 = &ethdr0;
                mutex0 = &mutex;
                mutex1 = &mutex1;
                        #clock-cells = <1>;
                };
 
+               hdmi_phy: hdmi-phy@11d5f000 {
+                       compatible = "mediatek,mt8195-hdmi-phy";
+                       reg = <0 0x11d5f000 0 0x100>;
+                       clocks = <&topckgen CLK_TOP_HDMI_XTAL>,
+                                <&infracfg_ao CLK_INFRA_AO_HDMI_26M>,
+                                <&apmixedsys CLK_APMIXED_HDMIPLL1>,
+                                <&apmixedsys CLK_APMIXED_HDMIPLL2>;
+                       clock-names = "pll_ref", "26m", "pll1", "pll2";
+                       clock-output-names = "hdmi_txpll";
+
+                       #clock-cells = <0>;
+                       #phy-cells = <0>;
+                       mediatek,ibias = <0xa>;
+                       mediatek,ibias_up = <0x1c>;
+                       status = "disabled";
+               };
+
                i2c0: i2c@11e00000 {
                        compatible = "mediatek,mt8195-i2c",
                                     "mediatek,mt8192-i2c";
                        resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE4_DL_ASYNC>;
                };
 
+               dpi1: dpi@1c112000 {
+                       compatible = "mediatek,mt8195-dpi";
+                       reg = <0 0x1c112000 0 0x1000>;
+                       clocks = <&vdosys1 CLK_VDO1_DPI1>,
+                                <&vdosys1 CLK_VDO1_DPI1_MM>,
+                                <&vdosys1 CLK_VDO1_DPI1_HDMI>;
+                       clock-names = "pixel", "engine", "pll";
+                       interrupts = <GIC_SPI 512 IRQ_TYPE_LEVEL_HIGH 0>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
+                       resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_DPI1>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       dpi1_in: endpoint { };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       dpi1_out: endpoint { };
+                               };
+                       };
+               };
+
                dp_intf1: dp-intf@1c113000 {
                        compatible = "mediatek,mt8195-dp-intf";
                        reg = <0 0x1c113000 0 0x1000>;
                                      "gfx_fe1_async", "vdo_be_async";
                };
 
+               hdmi: hdmi-tx@1c300000 {
+                       compatible = "mediatek,mt8195-hdmi-tx";
+                       #sound-dai-cells = <1>;
+                       reg = <0 0x1c300000 0 0x1000>;
+                       clocks = <&topckgen CLK_TOP_HDMI_APB>,
+                                <&topckgen CLK_TOP_HDCP>,
+                                <&topckgen CLK_TOP_HDCP_24M>,
+                                <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
+                       clock-names = "bus", "hdcp", "hdcp24m", "hdmi-split";
+                       assigned-clocks = <&topckgen CLK_TOP_HDCP>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4_D8>;
+                       interrupts = <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH 0>;
+                       power-domains = <&spm MT8195_POWER_DOMAIN_HDMI_TX>;
+                       phys = <&hdmi_phy>;
+                       phy-names = "hdmi";
+                       status = "disabled";
+
+                       hdmitx_ddc: i2c {
+                               compatible = "mediatek,mt8195-hdmi-ddc";
+                               clocks = <&clk26m>;
+                       };
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       hdmi0_in: endpoint { };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       hdmi0_out: endpoint { };
+                               };
+                       };
+               };
+
                edp_tx: edp-tx@1c500000 {
                        compatible = "mediatek,mt8195-edp-tx";
                        reg = <0 0x1c500000 0 0x8000>;
diff --git a/src/arm64/mediatek/mt8370-tungsten-smarc.dts b/src/arm64/mediatek/mt8370-tungsten-smarc.dts
new file mode 100644 (file)
index 0000000..4c3a7c4
--- /dev/null
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 Ezurio LLC
+ * Author: Gary Bisson <bisson.gary@gmail.com>
+ */
+/dts-v1/;
+#include "mt8370.dtsi"
+#include "mt8390-tungsten-smarc.dtsi"
+
+/ {
+       model = "Ezurio Tungsten510 SMARC (MT8370)";
+       compatible = "ezurio,mt8370-tungsten-smarc", "mediatek,mt8370",
+                    "mediatek,mt8188";
+};
index a2cdecd2b9034e2f295d817e846d6ed1845e686a..2062506f6cc523d7797adc8b7e74732be9320201 100644 (file)
                wakeup-delay-ms = <30>;
        };
 
+       connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               ddc-i2c-bus = <&hdmi_ddc>;
+               hdmi-pwr-supply = <&hdmi_phy>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi0_out>;
+                       };
+               };
+       };
+
        firmware {
                optee {
                        compatible = "linaro,optee-tz";
        remote-endpoint = <&dsi0_in>;
 };
 
+&dpi1 {
+       status = "okay";
+};
+
+&dpi1_in {
+       remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+       remote-endpoint = <&hdmi0_in>;
+};
+
 &gamma0_out {
        remote-endpoint = <&postmask0_in>;
 };
        status = "okay";
 };
 
+&ethdr0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       ethdr0_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&vdosys1_ep_ext>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ethdr0_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&merge5_in>;
+                       };
+               };
+       };
+};
+
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_pins>;
+       status = "okay";
+};
+
+&hdmi0_in {
+       remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+       remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_vreg_pins>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;
        status = "okay";
 };
 
+&merge5 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       merge5_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&ethdr0_out>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       merge5_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&dpi1_in>;
+                       };
+               };
+       };
+};
+
 &mfg0 {
        domain-supply = <&mt6359_vproc2_buck_reg>;
 };
                };
        };
 
+       hdmi_vreg_pins: hdmi-vreg-pins {
+               pins-pwr {
+                       pinmux = <PINMUX_GPIO50__FUNC_O_HDMITX20_PWR5V>;
+                       bias-disable;
+               };
+       };
+
+       hdmi_pins: hdmi-pins {
+               pins-hotplug {
+                       pinmux = <PINMUX_GPIO51__FUNC_I0_HDMITX20_HTPLG>;
+                       bias-pull-down;
+               };
+
+               pins-cec {
+                       pinmux = <PINMUX_GPIO52__FUNC_B1_HDMITX20_CEC>;
+                       bias-disable;
+               };
+
+               pins-ddc {
+                       pinmux = <PINMUX_GPIO53__FUNC_B1_HDMITX20_SCL>,
+                                <PINMUX_GPIO54__FUNC_B1_HDMITX20_SDA>;
+                       drive-strength = <10>;
+               };
+       };
+
        i2c0_pins: i2c0-pins {
                pins {
                        pinmux = <PINMUX_GPIO56__FUNC_B1_SDA0>,
                        sound-dai = <&dmic_codec>;
                };
        };
+
+       dai-link-2 {
+               link-name = "ETDM3_OUT_BE";
+
+               codec {
+                       sound-dai = <&hdmi 0>;
+               };
+       };
+
 };
 
 &spi2 {
        };
 };
 
+&vdosys1 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys1_ep_ext: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ethdr0_in>;
+               };
+       };
+};
+
 &xhci0 {
        status = "okay";
 };
diff --git a/src/arm64/mediatek/mt8390-tungsten-smarc.dts b/src/arm64/mediatek/mt8390-tungsten-smarc.dts
new file mode 100644 (file)
index 0000000..7580f9e
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 Ezurio LLC
+ * Author: Gary Bisson <bisson.gary@gmail.com>
+ */
+/dts-v1/;
+#include "mt8188.dtsi"
+#include "mt8390-tungsten-smarc.dtsi"
+
+/ {
+       model = "Ezurio Tungsten700 SMARC (MT8390)";
+       compatible = "ezurio,mt8390-tungsten-smarc", "mediatek,mt8390",
+                    "mediatek,mt8188";
+};
+
+&cpu4 {
+       cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu5 {
+       cpu-supply = <&mt6359_vcore_buck_reg>;
+};
diff --git a/src/arm64/mediatek/mt8390-tungsten-smarc.dtsi b/src/arm64/mediatek/mt8390-tungsten-smarc.dtsi
new file mode 100644 (file)
index 0000000..40b381d
--- /dev/null
@@ -0,0 +1,1489 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 Ezurio LLC
+ * Author: Gary Bisson <bisson.gary@gmail.com>
+ */
+
+#include "mt6359.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/net/microchip-lan78xx.h>
+#include <dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h>
+#include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/usb/pd.h>
+
+/ {
+       aliases {
+               dsi0 = &disp_dsi0;
+               ethernet0 = &eth;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+               mmc0 = &mmc0;
+               mmc1 = &mmc1;
+               mmc2 = &mmc2;
+               rtc0 = &rv3028;
+               rtc1 = &mt6359rtc;
+               serial0 = &uart0;
+       };
+
+       backlight_lcd0: backlight-lcd0 {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 1023>;
+               default-brightness-level = <768>;
+               num-interpolated-steps = <1023>;
+               enable-gpios = <&pio 30 GPIO_ACTIVE_HIGH>;
+               pwms = <&disp_pwm0 0 30000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0x1 0x00000000>;
+       };
+
+       panel-dsi0 {
+               compatible = "tianma,tm070jdhg30";
+               backlight = <&backlight_lcd0>;
+               power-supply = <&reg_5v>;
+
+               port {
+                       dsi0_panel_in: endpoint {
+                               remote-endpoint = <&sn65dsi84_bridge_out>;
+                       };
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /*
+                * 12 MiB reserved for OP-TEE (BL32)
+                * +-----------------------+ 0x43e0_0000
+                * |      SHMEM 2MiB       |
+                * +-----------------------+ 0x43c0_0000
+                * |        | TA_RAM  8MiB |
+                * + TZDRAM +--------------+ 0x4340_0000
+                * |        | TEE_RAM 2MiB |
+                * +-----------------------+ 0x4320_0000
+                */
+               optee_reserved: optee@43200000 {
+                       no-map;
+                       reg = <0 0x43200000 0 0x00c00000>;
+               };
+
+               scp_mem: memory@50000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x50000000 0 0x2900000>;
+                       no-map;
+               };
+
+               /* 2 MiB reserved for ARM Trusted Firmware (BL31) */
+               bl31_secmon_reserved: memory@54600000 {
+                       no-map;
+                       reg = <0 0x54600000 0x0 0x200000>;
+               };
+
+               apu_mem: memory@55000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x55000000 0 0x1400000>; /* 20 MB */
+               };
+
+               vpu_mem: memory@57000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x57000000 0 0x1400000>; /* 20 MB */
+               };
+
+               adsp_mem: memory@60000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x60000000 0 0xf00000>;
+                       no-map;
+               };
+
+               afe_dma_mem: memory@60f00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x60f00000 0 0x100000>;
+                       no-map;
+               };
+
+               adsp_dma_mem: memory@61000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x61000000 0 0x100000>;
+                       no-map;
+               };
+       };
+
+       regulator-efuse {
+               compatible = "regulator-output";
+               vout-supply = <&mt6359_vefuse_ldo_reg>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "reg_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "reg_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "reg_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       sdcard_en_3v3: regulator-sdcard-en {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-name = "sdcard_en_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 111 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb_p0_vbus: regulator-usb-p0-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "vbus_p0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pio 84 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb_p1_vbus: regulator-usb-p1-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb1_hub_pins>;
+               regulator-name = "vbus_p1";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&pio 147 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb_p2_vbus: regulator-usb-p2-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb2_eth_pins>;
+               regulator-name = "vbus_p2";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&pio 80 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_pwrseq_pins>;
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&pio 89 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&adsp {
+       memory-region = <&adsp_dma_mem>, <&adsp_mem>;
+       status = "okay";
+};
+
+&afe {
+       memory-region = <&afe_dma_mem>;
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu1 {
+       cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu2 {
+       cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu3 {
+       cpu-supply = <&mt6359_vcore_buck_reg>;
+};
+
+&cpu6 {
+       cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu7 {
+       cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&disp_pwm0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&disp_pwm0_pins>;
+       status = "okay";
+};
+
+&disp_dsi0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       dsi0_in: endpoint {
+                               remote-endpoint = <&dither0_out>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dsi0_out: endpoint {
+                               remote-endpoint = <&sn65dsi84_bridge_in>;
+                       };
+               };
+       };
+};
+
+&dither0_in {
+       remote-endpoint = <&postmask0_out>;
+};
+
+&dither0_out {
+       remote-endpoint = <&dsi0_in>;
+};
+
+&eth {
+       phy-mode ="rgmii-id";
+       phy-handle = <&ethernet_phy0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&eth_default_pins>;
+       pinctrl-1 = <&eth_sleep_pins>;
+       mediatek,mac-wol;
+       snps,reset-gpio = <&pio 27 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 11000 1000>;
+       status = "okay";
+};
+
+&eth_mdio {
+       ethernet_phy0: ethernet-phy@7 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x7>;
+               interrupts-extended = <&pio 148 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&gamma0_out {
+       remote-endpoint = <&postmask0_in>;
+};
+
+&gpu {
+       mali-supply = <&mt6359_vproc2_buck_reg>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       i2c-mux@73 {
+               compatible = "nxp,pca9546";
+               reg = <0x73>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_mux_pins>;
+               reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c_mux_gp_0: i2c@0 {
+                       reg = <0>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c_mux_gp_1: i2c@1 {
+                       reg = <1>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c_mux_gp_2: i2c@2 {
+                       reg = <2>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c_mux_gp_3: i2c@3 {
+                       reg = <3>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&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";
+
+       i2c-mux@73 {
+               compatible = "nxp,pca9546";
+               reg = <0x73>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_mux_smarc_lcd_pins>;
+               reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c_mux_lcd_0: i2c@0 {
+                       reg = <0>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c_mux_lcd_1: i2c@1 {
+                       reg = <1>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c_mux_lcd_2: i2c@2 {
+                       reg = <2>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c_mux_lcd_3: i2c@3 {
+                       reg = <3>;
+                       clock-frequency = <100000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&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";
+};
+
+&i2c_mux_gp_0 {
+       rv3028: rtc@52 {
+               compatible = "microcrystal,rv3028";
+               reg = <0x52>;
+               interrupts-extended = <&pio 42 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rv3028_pins>;
+               #clock-cells = <0>;
+               wakeup-source;
+       };
+};
+
+&i2c_mux_gp_1 {
+       usb-typec@60 {
+               compatible = "ti,hd3ss3220";
+               reg = <0x60>;
+               interrupts-extended = <&pio 45 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hd3ss3220_pins>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               hd3ss3220_in_ep: endpoint {
+                                       remote-endpoint = <&ss_ep>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               hd3ss3220_out_ep: endpoint {
+                                       remote-endpoint = <&usb_role_switch>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c_mux_gp_2 {
+       codec@1a {
+               compatible = "wlf,wm8962";
+               reg = <0x1a>;
+               clocks = <&topckgen CLK_TOP_I2SO1>;
+               AVDD-supply = <&reg_1v8>;
+               CPVDD-supply = <&reg_1v8>;
+               DBVDD-supply = <&reg_3v3>;
+               DCVDD-supply = <&reg_1v8>;
+               MICVDD-supply = <&reg_3v3>;
+               PLLVDD-supply = <&reg_1v8>;
+               SPKVDD1-supply = <&reg_5v>;
+               SPKVDD2-supply = <&reg_5v>;
+               gpio-cfg = <
+                       0x0000 /* n/c */
+                       0x0000 /* gpio2: */
+                       0x0000 /* gpio3: */
+                       0x0000 /* n/c */
+                       0x8081 /* gpio5:HP detect */
+                       0x8095 /* gpio6:Mic detect */
+               >;
+       };
+};
+
+&i2c_mux_lcd_2 {
+       bridge@2c {
+               compatible = "ti,sn65dsi84";
+               reg = <0x2c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dsi0_sn65dsi84_pins>;
+               enable-gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               sn65dsi84_bridge_in: endpoint {
+                                       remote-endpoint = <&dsi0_out>;
+                                       data-lanes = <1 2 3 4>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               sn65dsi84_bridge_out: endpoint {
+                                       remote-endpoint = <&dsi0_panel_in>;
+                               };
+                       };
+               };
+       };
+
+       touchscren@5d {
+               compatible = "goodix,gt911";
+               reg = <0x5d>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_dsi0_goodix_pins>;
+               interrupts-extended = <&pio 146 IRQ_TYPE_LEVEL_HIGH>;
+               irq-gpios = <&pio 146 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&mfg0 {
+       domain-supply = <&mt6359_vproc2_buck_reg>;
+};
+
+&mfg1 {
+       domain-supply = <&mt6359_vsram_others_ldo_reg>;
+};
+
+&mmc0 {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       cap-mmc-hw-reset;
+       hs400-ds-delay = <0x1481b>;
+       max-frequency = <200000000>;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       non-removable;
+       no-sd;
+       no-sdio;
+       supports-cqe;
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_default_pins>;
+       pinctrl-1 = <&mmc0_uhs_pins>;
+       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
+       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
+       status = "okay";
+};
+
+&mmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       max-frequency = <200000000>;
+       sd-uhs-sdr104;
+       sd-uhs-sdr50;
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_default_pins>;
+       pinctrl-1 = <&mmc1_uhs_pins>;
+       cd-gpios = <&pio 2 GPIO_ACTIVE_LOW>;
+       vqmmc-supply = <&mt6359_vsim1_ldo_reg>;
+       vmmc-supply = <&sdcard_en_3v3>;
+       status = "okay";
+};
+
+&mmc2 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       max-frequency = <200000000>;
+       no-mmc;
+       non-removable;
+       no-sd;
+       sd-uhs-sdr104;
+       wakeup-source;
+       pinctrl-names = "default", "state_uhs", "state_eint";
+       pinctrl-0 = <&mmc2_default_pins>;
+       pinctrl-1 = <&mmc2_uhs_pins>;
+       pinctrl-2 = <&mmc2_eint_pins>;
+       interrupt-names = "msdc", "sdio_wakeup";
+       interrupts-extended = <&gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>,
+                             <&pio 172 IRQ_TYPE_LEVEL_LOW>;
+       vmmc-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+       vqmmc-supply = <&mt6359_vcn18_ldo_reg>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       status = "okay";
+};
+
+&mipi_tx_config0 {
+       status = "okay";
+};
+
+&mt6359codec {
+       mediatek,mic-type-0 = <1>;
+       mediatek,mic-type-1 = <3>;
+};
+
+&mt6359_vbbck_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcn18_ldo_reg {
+       regulator-name = "vcn18_pmu";
+       regulator-always-on;
+       regulator-boot-on;
+};
+
+&mt6359_vcn33_1_bt_ldo_reg {
+       regulator-name = "vcn33_1_pmu";
+       regulator-always-on;
+};
+
+&mt6359_vcn33_2_bt_ldo_reg {
+       regulator-name = "vcn33_2_pmu";
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-always-on;
+       regulator-boot-on;
+};
+
+&mt6359_vcore_buck_reg {
+       regulator-name = "dvdd_proc_l";
+       regulator-always-on;
+};
+
+&mt6359_vemc_1_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vgpu11_buck_reg {
+       regulator-name = "dvdd_core";
+       regulator-always-on;
+};
+
+&mt6359_vmodem_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vpa_buck_reg {
+       regulator-name = "vpa_pmu";
+       regulator-always-on;
+};
+
+&mt6359_vproc2_buck_reg {
+       /* The name "vgpu" is required by mtk-regulator-coupler */
+       regulator-name = "vgpu";
+       regulator-min-microvolt = <550000>;
+       regulator-max-microvolt = <800000>;
+       regulator-coupled-with = <&mt6359_vsram_others_ldo_reg>;
+       regulator-coupled-max-spread = <225000>;
+};
+
+&mt6359_vs2_buck_reg {
+       regulator-min-microvolt = <1600000>;
+       regulator-boot-on;
+};
+
+&mt6359_vpu_buck_reg {
+       regulator-name = "dvdd_adsp";
+       regulator-always-on;
+};
+
+&mt6359_vrf12_ldo_reg {
+       regulator-name = "va12_abb2_pmu";
+       regulator-always-on;
+};
+
+&mt6359_vsram_md_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vsram_others_ldo_reg {
+       /* The name "vsram_gpu" is required by mtk-regulator-coupler */
+       regulator-name = "vsram_gpu";
+       regulator-min-microvolt = <750000>;
+       regulator-max-microvolt = <800000>;
+       regulator-coupled-with = <&mt6359_vproc2_buck_reg>;
+       regulator-coupled-max-spread = <225000>;
+};
+
+&mt6359_vsim1_ldo_reg {
+       regulator-name = "vsim1_pmu";
+       regulator-max-microvolt = <1800000>;
+       regulator-enable-ramp-delay = <480>;
+};
+
+&mt6359_vufs_ldo_reg {
+       regulator-name = "vufs18_pmu";
+       regulator-always-on;
+};
+
+&ovl0_in {
+       remote-endpoint = <&vdosys0_ep_main>;
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_default_pins>;
+       status = "okay";
+};
+
+&pciephy {
+       status = "okay";
+};
+
+&pmic {
+       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
+
+       keys {
+               compatible = "mediatek,mt6359-keys";
+               mediatek,long-press-mode = <1>;
+               power-off-time-sec = <0>;
+
+               power-key {
+                       linux,keycodes = <KEY_POWER>;
+                       wakeup-source;
+               };
+       };
+};
+
+&postmask0_in {
+       remote-endpoint = <&gamma0_out>;
+};
+
+&postmask0_out {
+       remote-endpoint = <&dither0_in>;
+};
+
+&scp_cluster {
+       status = "okay";
+};
+
+&scp_c0 {
+       memory-region = <&scp_mem>;
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-0 = <&spi0_pins>;
+       pinctrl-names = "default";
+       mediatek,pad-select = <0>;
+       status = "okay";
+};
+
+&spi1 {
+       pinctrl-0 = <&spi1_pins>;
+       pinctrl-names = "default";
+       mediatek,pad-select = <0>;
+       status = "okay";
+};
+
+&spmi {
+       #address-cells = <2>;
+       #size-cells = <0>;
+
+       mt6315_6: pmic@6 {
+               compatible = "mediatek,mt6315-regulator";
+               reg = <0x6 SPMI_USID>;
+
+               regulators {
+                       mt6315_6_vbuck1: vbuck1 {
+                               regulator-name = "vbuck1";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-allowed-modes = <0 1 2>;
+                               regulator-always-on;
+                       };
+
+                       mt6315_6_vbuck3: vbuck3 {
+                               regulator-name = "vbuck3";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-allowed-modes = <0 1 2>;
+                               regulator-always-on;
+                       };
+
+                       mt6315_6_vbuck4: vbuck4 {
+                               regulator-name = "vbuck4";
+                               regulator-min-microvolt = <1193750>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-allowed-modes = <0 1 2>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1193750>;
+                               };
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-0 = <&uart0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-0 = <&uart1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&ssusb0 {
+       dr_mode = "otg";
+       maximum-speed = "high-speed";
+       usb-role-switch;
+       wakeup-source;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       pinctrl-0 = <&usbotg_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+               label = "USB-C";
+               data-role = "dual";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               hs_ep: endpoint {
+                                       remote-endpoint = <&usb_hs_ep>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               ss_ep: endpoint {
+                                       remote-endpoint = <&hd3ss3220_in_ep>;
+                               };
+                       };
+               };
+       };
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+                       usb_hs_ep: endpoint {
+                               remote-endpoint = <&hs_ep>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       usb_role_switch: endpoint {
+                               remote-endpoint = <&hd3ss3220_out_ep>;
+                       };
+               };
+       };
+};
+
+&u2port0 {
+       status = "okay";
+};
+
+&u3phy0 {
+       status = "okay";
+};
+
+&xhci0 {
+       vbus-supply = <&usb_p0_vbus>;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&ssusb1 {
+       dr_mode = "host";
+       wakeup-source;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       pinctrl-0 = <&usb1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&u2port1 {
+       status = "okay";
+};
+
+&u3port1 {
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
+
+&xhci1 {
+       vbus-supply = <&usb_p1_vbus>;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&ssusb2 {
+       dr_mode = "host";
+       maximum-speed = "high-speed";
+       wakeup-source;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&u2port2 {
+       status = "okay";
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
+&xhci2 {
+       vbus-supply = <&usb_p2_vbus>;
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       ethernet@1 {
+               compatible = "usb424,7850";
+               reg = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ethernet-phy@1 {
+                               reg = <1>;
+                               microchip,led-modes = <
+                                       LAN78XX_LINK_1000_ACTIVITY
+                                       LAN78XX_LINK_10_ACTIVITY
+                                       LAN78XX_LINK_10_100_ACTIVITY
+                                       LAN78XX_LINK_ACTIVITY
+                               >;
+                       };
+               };
+       };
+};
+
+&vdosys0 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys0_ep_main: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&ovl0_in>;
+               };
+       };
+};
+
+&watchdog {
+       pinctrl-names = "default";
+       pinctrl-0 = <&watchdog_pins>;
+};
+
+&pio {
+       audio_pins: audio-pins {
+               pins-aud-pmic {
+                       pinmux = <PINMUX_GPIO101__FUNC_O_AUD_CLK_MOSI
+                                 PINMUX_GPIO102__FUNC_O_AUD_SYNC_MOSI
+                                 PINMUX_GPIO103__FUNC_O_AUD_DAT_MOSI0
+                                 PINMUX_GPIO104__FUNC_O_AUD_DAT_MOSI1
+                                 PINMUX_GPIO105__FUNC_I0_AUD_DAT_MISO0
+                                 PINMUX_GPIO106__FUNC_I0_AUD_DAT_MISO1>;
+               };
+
+               pins-pcm-wifi {
+                       pinmux = <PINMUX_GPIO121__FUNC_B0_PCM_CLK
+                                 PINMUX_GPIO122__FUNC_B0_PCM_SYNC
+                                 PINMUX_GPIO123__FUNC_O_PCM_DO
+                                 PINMUX_GPIO124__FUNC_I0_PCM_DI>;
+               };
+
+               pins-i2s {
+                       pinmux = <PINMUX_GPIO119__FUNC_O_I2SO1_MCK
+                                 PINMUX_GPIO112__FUNC_O_I2SO1_WS
+                                 PINMUX_GPIO120__FUNC_O_I2SO1_BCK
+                                 PINMUX_GPIO113__FUNC_O_I2SO1_D0
+                                 PINMUX_GPIO110__FUNC_I0_I2SIN_D0>;
+               };
+       };
+
+       disp_pwm0_pins: disp-pwm0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO29__FUNC_O_DISP_PWM0>;
+                       bias-pull-down;
+               };
+       };
+
+       dsi0_sn65dsi84_pins: dsi0-sn65dsi84-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO128__FUNC_B_GPIO128>;
+                       bias-pull-down;
+                       input-enable;
+               };
+
+               pins-enable {
+                       pinmux = <PINMUX_GPIO25__FUNC_B_GPIO25>;
+                       bias-pull-down;
+               };
+       };
+
+       eth_default_pins: eth-default-pins {
+               pins-txd {
+                       pinmux = <PINMUX_GPIO131__FUNC_O_GBE_TXD3>,
+                                <PINMUX_GPIO132__FUNC_O_GBE_TXD2>,
+                                <PINMUX_GPIO133__FUNC_O_GBE_TXD1>,
+                                <PINMUX_GPIO134__FUNC_O_GBE_TXD0>;
+                       drive-strength = <8>;
+               };
+               pins-cc {
+                       pinmux = <PINMUX_GPIO139__FUNC_B0_GBE_TXC>,
+                                <PINMUX_GPIO142__FUNC_O_GBE_TXEN>,
+                                <PINMUX_GPIO141__FUNC_I0_GBE_RXDV>;
+                       drive-strength = <8>;
+               };
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO135__FUNC_I0_GBE_RXD3>,
+                                <PINMUX_GPIO136__FUNC_I0_GBE_RXD2>,
+                                <PINMUX_GPIO137__FUNC_I0_GBE_RXD1>,
+                                <PINMUX_GPIO138__FUNC_I0_GBE_RXD0>,
+                                <PINMUX_GPIO140__FUNC_I0_GBE_RXC>;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+               };
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO143__FUNC_O_GBE_MDC>,
+                                <PINMUX_GPIO144__FUNC_B1_GBE_MDIO>;
+                       drive-strength = <8>;
+                       input-enable;
+               };
+               pins-power {
+                       pinmux = <PINMUX_GPIO27__FUNC_B_GPIO27>; /* GP_EQOS_RESET */
+                       output-high;
+               };
+               pins-intr {
+                       pinmux = <PINMUX_GPIO148__FUNC_B_GPIO148>; /* GPIRQ_EQOS_PHY */
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+                       input-enable;
+               };
+       };
+
+       eth_sleep_pins: eth-sleep-pins {
+               pins-txd {
+                       pinmux = <PINMUX_GPIO131__FUNC_B_GPIO131>,
+                                <PINMUX_GPIO132__FUNC_B_GPIO132>,
+                                <PINMUX_GPIO133__FUNC_B_GPIO133>,
+                                <PINMUX_GPIO134__FUNC_B_GPIO134>;
+               };
+               pins-cc {
+                       pinmux = <PINMUX_GPIO139__FUNC_B_GPIO139>,
+                                <PINMUX_GPIO142__FUNC_B_GPIO142>,
+                                <PINMUX_GPIO141__FUNC_B_GPIO141>,
+                                <PINMUX_GPIO140__FUNC_B_GPIO140>;
+               };
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO135__FUNC_B_GPIO135>,
+                                <PINMUX_GPIO136__FUNC_B_GPIO136>,
+                                <PINMUX_GPIO137__FUNC_B_GPIO137>,
+                                <PINMUX_GPIO138__FUNC_B_GPIO138>;
+               };
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO143__FUNC_B_GPIO143>,
+                                <PINMUX_GPIO144__FUNC_B_GPIO144>;
+                       input-disable;
+                       bias-disable;
+               };
+       };
+
+       gpio_keys_pins: gpio-keys-pins {
+               pins-keys {
+                       pinmux = <PINMUX_GPIO129__FUNC_B_GPIO129>,
+                                <PINMUX_GPIO65__FUNC_B_GPIO65>,
+                                <PINMUX_GPIO66__FUNC_B_GPIO66>;
+                       bias-pull-up;
+               };
+       };
+
+       hd3ss3220_pins: hd3ss3320-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO45__FUNC_B_GPIO45>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       input-enable;
+               };
+       };
+
+       hdmi_vreg_pins: hdmi-vreg-pins {
+               pins-pwr {
+                       pinmux = <PINMUX_GPIO50__FUNC_O_HDMITX20_PWR5V>;
+                       bias-disable;
+               };
+       };
+
+       hdmi_pins: hdmi-pins {
+               pins-hotplug {
+                       pinmux = <PINMUX_GPIO51__FUNC_I0_HDMITX20_HTPLG>;
+                       bias-pull-down;
+               };
+
+               pins-cec {
+                       pinmux = <PINMUX_GPIO52__FUNC_B1_HDMITX20_CEC>;
+                       bias-disable;
+               };
+
+               pins-ddc {
+                       pinmux = <PINMUX_GPIO53__FUNC_B1_HDMITX20_SCL>,
+                                <PINMUX_GPIO54__FUNC_B1_HDMITX20_SDA>;
+                       drive-strength = <10>;
+               };
+       };
+
+       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>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c0_mux_pins: i2c0-mux-pins {
+               pins-reset {
+                       pinmux = <PINMUX_GPIO6__FUNC_B_GPIO6>;
+                       bias-pull-up;
+               };
+       };
+
+       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>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       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>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       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>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       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>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c_mux_smarc_lcd_pins: i2c-mux-smarc-lcd-pins {
+               pins-reset {
+                       pinmux = <PINMUX_GPIO5__FUNC_B_GPIO5>;
+                       bias-pull-down;
+               };
+       };
+
+       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 {
+                       pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-ds {
+                       pinmux = <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>;
+               };
+       };
+
+       mmc1_default_pins: mmc1-default-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO163__FUNC_B1_MSDC1_CMD>,
+                                <PINMUX_GPIO165__FUNC_B1_MSDC1_DAT0>,
+                                <PINMUX_GPIO166__FUNC_B1_MSDC1_DAT1>,
+                                <PINMUX_GPIO167__FUNC_B1_MSDC1_DAT2>,
+                                <PINMUX_GPIO168__FUNC_B1_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-pwr {
+                       pinmux = <PINMUX_GPIO111__FUNC_B_GPIO111>;
+                       bias-pull-down;
+               };
+
+               pins-pullup {
+                       pinmux = <PINMUX_GPIO11__FUNC_B_GPIO11>;
+                       bias-pull-up;
+               };
+
+               pins-clk {
+                       pinmux = <PINMUX_GPIO164__FUNC_B1_MSDC1_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-insert {
+                       pinmux = <PINMUX_GPIO2__FUNC_B_GPIO2>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_uhs_pins: mmc1-uhs-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO163__FUNC_B1_MSDC1_CMD>,
+                                <PINMUX_GPIO165__FUNC_B1_MSDC1_DAT0>,
+                                <PINMUX_GPIO166__FUNC_B1_MSDC1_DAT1>,
+                                <PINMUX_GPIO167__FUNC_B1_MSDC1_DAT2>,
+                                <PINMUX_GPIO168__FUNC_B1_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-clk {
+                       pinmux = <PINMUX_GPIO164__FUNC_B1_MSDC1_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+       };
+
+       mmc2_default_pins: mmc2-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO170__FUNC_B1_MSDC2_CLK>;
+                       drive-strength = <4>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO169__FUNC_B1_MSDC2_CMD>,
+                                <PINMUX_GPIO171__FUNC_B1_MSDC2_DAT0>,
+                                <PINMUX_GPIO172__FUNC_B1_MSDC2_DAT1>,
+                                <PINMUX_GPIO173__FUNC_B1_MSDC2_DAT2>,
+                                <PINMUX_GPIO174__FUNC_B1_MSDC2_DAT3>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc2_uhs_pins: mmc2-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO170__FUNC_B1_MSDC2_CLK>;
+                       drive-strength = <4>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO169__FUNC_B1_MSDC2_CMD>,
+                                <PINMUX_GPIO171__FUNC_B1_MSDC2_DAT0>,
+                                <PINMUX_GPIO172__FUNC_B1_MSDC2_DAT1>,
+                                <PINMUX_GPIO173__FUNC_B1_MSDC2_DAT2>,
+                                <PINMUX_GPIO174__FUNC_B1_MSDC2_DAT3>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc2_eint_pins: mmc2-eint-pins {
+               pins-dat1 {
+                       pinmux = <PINMUX_GPIO172__FUNC_B_GPIO172>;
+                       input-enable;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       rv3028_pins: rv3028-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO42__FUNC_B_GPIO42>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       input-enable;
+               };
+       };
+
+       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;
+               };
+       };
+
+       pcie_default_pins: pcie-default-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO47__FUNC_I1_WAKEN>,
+                                <PINMUX_GPIO48__FUNC_O_PERSTN>,
+                                <PINMUX_GPIO49__FUNC_B1_CLKREQN>;
+                       bias-pull-up;
+               };
+       };
+
+       ts_dsi0_goodix_pins: ts-dsi0-goodix-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO146__FUNC_B_GPIO146>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       input-enable;
+               };
+
+               pins-reset {
+                       pinmux = <PINMUX_GPIO7__FUNC_B_GPIO7>;
+                       bias-pull-down;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO31__FUNC_O_UTXD0>,
+                                <PINMUX_GPIO32__FUNC_I1_URXD0>;
+                       bias-pull-up;
+               };
+       };
+
+       uart1_pins: uart1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO33__FUNC_O_UTXD1>,
+                                <PINMUX_GPIO34__FUNC_I1_URXD1>;
+                       bias-pull-up;
+               };
+       };
+
+       uart2_pins: uart2-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO35__FUNC_O_UTXD2>,
+                                <PINMUX_GPIO36__FUNC_I1_URXD2>;
+                       bias-pull-up;
+               };
+       };
+
+       usbotg_pins: usbotg-pins {
+               pins-iddig {
+                       pinmux = <PINMUX_GPIO83__FUNC_B_GPIO83>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-valid {
+                       pinmux = <PINMUX_GPIO85__FUNC_I0_VBUSVALID>;
+                       input-enable;
+               };
+
+               pins-vbus {
+                       pinmux = <PINMUX_GPIO84__FUNC_O_USB_DRVVBUS>;
+                       output-high;
+               };
+       };
+
+       usb1_hub_pins: usb1-hub-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO147__FUNC_B_GPIO147>;
+                       output-low;
+               };
+       };
+
+       usb1_pins: usb1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO88__FUNC_I0_VBUSVALID_1P>;
+                       input-enable;
+               };
+       };
+
+       usb2_eth_pins: usb2-eth-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO80__FUNC_B_GPIO80>;
+                       output-low;
+               };
+       };
+
+       wifi_pwrseq_pins: wifi-pwrseq-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO89__FUNC_B_GPIO89>;
+                       output-low;
+               };
+       };
+
+       watchdog_pins: watchdog-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO100__FUNC_O_WATCHDOG>;
+                       bias-pull-up;
+               };
+       };
+};
index 2b7167804e71d0ced33c048ecb2040667b5fece1..d849af4d36134df6a7b9f7967efd0db13c372d7a 100644 (file)
                stdout-path = "serial0:921600n8";
        };
 
+       connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               ddc-i2c-bus = <&hdmitx_ddc>;
+               hdmi-pwr-supply = <&hdmi_phy>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi0_out>;
+                       };
+               };
+       };
+
        firmware {
                optee {
                        compatible = "linaro,optee-tz";
        wakeup-delay-ms = <200>;
 };
 
+&dpi1 {
+       status = "okay";
+};
+
+&dpi1_in {
+       remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+       remote-endpoint = <&hdmi0_in>;
+};
+
 &dsi0 {
        #address-cells = <1>;
        #size-cells = <0>;
        };
 };
 
+&ethdr0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       ethdr0_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&vdosys1_ep_ext>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ethdr0_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&merge5_in>;
+                       };
+               };
+       };
+};
+
 &gamma0_out {
        remote-endpoint = <&dither0_in>;
 };
        status = "okay";
 };
 
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_pins>;
+       status = "okay";
+};
+
+&hdmi0_in {
+       remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+       remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_vreg_pins>;
+
+       status = "okay";
+};
+
 &i2c1 {
        clock-frequency = <400000>;
        pinctrl-0 = <&i2c1_pins>;
        };
 };
 
+&merge5 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       merge5_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&ethdr0_out>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       merge5_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&dpi1_in>;
+                       };
+               };
+       };
+};
+
 &mfg0 {
        domain-supply = <&mt6315_7_vbuck1>;
 };
                };
        };
 
+       hdmi_vreg_pins: hdmi-vreg-pins {
+               pins-pwr {
+                       pinmux = <PINMUX_GPIO31__FUNC_HDMITX20_PWR5V>;
+                       bias-disable;
+               };
+       };
+
+       hdmi_pins: hdmi-pins {
+               pins-hotplug {
+                       pinmux = <PINMUX_GPIO32__FUNC_HDMITX20_HTPLG>;
+                       bias-pull-down;
+               };
+
+               pins-ddc {
+                       pinmux = <PINMUX_GPIO34__FUNC_HDMITX20_SCL>,
+                                <PINMUX_GPIO35__FUNC_HDMITX20_SDA>;
+                       drive-strength = <10>;
+               };
+
+               pins-cec {
+                       pinmux = <PINMUX_GPIO33__FUNC_HDMITX20_CEC>;
+                       bias-disable;
+               };
+       };
+
        i2c0_pins: i2c0-pins {
                pins {
                        pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
                        sound-dai = <&pmic 0>;
                };
        };
+
+       hdmi-dai-link {
+               link-name = "ETDM3_OUT_BE";
+
+               codec {
+                       sound-dai = <&hdmi 0>;
+               };
+       };
 };
 
 &spi1 {
        };
 };
 
+&vdosys1 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys1_ep_ext: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ethdr0_in>;
+               };
+       };
+};
+
 &xhci0 {
        status = "okay";
 };
index d32f973f5e0528bc3233ff01f029006dbe6ef894..1cd4b84e98615be6c5cb13d01b7baed0e017c3be 100644 (file)
                stdout-path = "serial0:921600n8";
        };
 
+       connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               ddc-i2c-bus = <&hdmitx_ddc>;
+               hdmi-pwr-supply = <&hdmi_phy>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi0_out>;
+                       };
+               };
+       };
+
        firmware {
                optee {
                        compatible = "linaro,optee-tz";
        };
 };
 
+&dpi1 {
+       status = "okay";
+};
+
+&dpi1_in {
+       remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+       remote-endpoint = <&hdmi0_in>;
+};
+
 &eth {
        phy-mode = "rgmii-rxid";
        phy-handle = <&rgmii_phy>;
        };
 };
 
+&ethdr0 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       ethdr0_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&vdosys1_ep_ext>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       ethdr0_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&merge5_in>;
+                       };
+               };
+       };
+};
+
 &gpu {
        mali-supply = <&mt6315_7_vbuck1>;
        status = "okay";
 };
 
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_pins>;
+       status = "okay";
+};
+
+&hdmi0_in {
+       remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+       remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmi_vreg_pins>;
+
+       status = "okay";
+};
+
 &i2c2 {
        clock-frequency = <400000>;
        pinctrl-0 = <&i2c2_pins>;
        };
 };
 
+&merge5 {
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       merge5_in: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&ethdr0_out>;
+                       };
+               };
+
+               port@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       merge5_out: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&dpi1_in>;
+                       };
+               };
+       };
+};
+
 &mfg0 {
        domain-supply = <&mt6315_7_vbuck1>;
 };
                };
        };
 
+       hdmi_vreg_pins: hdmi-vreg-pins {
+               pins-pwr {
+                       pinmux = <PINMUX_GPIO31__FUNC_HDMITX20_PWR5V>;
+                       bias-disable;
+               };
+       };
+
+       hdmi_pins: hdmi-pins {
+               pins-hotplug {
+                       pinmux = <PINMUX_GPIO32__FUNC_HDMITX20_HTPLG>;
+                       bias-pull-down;
+               };
+
+               pins-ddc {
+                       pinmux = <PINMUX_GPIO34__FUNC_HDMITX20_SCL>,
+                                <PINMUX_GPIO35__FUNC_HDMITX20_SDA>;
+                       drive-strength = <10>;
+               };
+
+               pins-cec {
+                       pinmux = <PINMUX_GPIO33__FUNC_HDMITX20_CEC>;
+                       bias-disable;
+               };
+       };
+
        i2c2_pins: i2c2-pins {
                pins-bus {
                        pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
                        sound-dai = <&pmic 0>;
                };
        };
+
+       hdmi-dai-link {
+               link-name = "ETDM3_OUT_BE";
+
+               codec {
+                       sound-dai = <&hdmi 0>;
+               };
+       };
 };
 
 &spi1 {
        status = "okay";
 };
 
+&vdosys1 {
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdosys1_ep_ext: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&ethdr0_in>;
+               };
+       };
+};
+
 &xhci0 {
        vbus-supply = <&otg_vbus_regulator>;
        status = "okay";
index 2638ee1c3846d18eaf132347f6dad94eed3f6d94..5edf5d13342da1764f3962ede0da7842ac6f646c 100644 (file)
@@ -17,6 +17,7 @@
        };
 
        memory@0 {
+               device_type = "memory";
                reg = <0x0 0x0 0x0 0x40000000>;
        };
 
index 383938dcd3ceea88d71dbcace9db4f441c0876f4..8239d9a9f0d2e6c91190a874ec8b78a443c8bd42 100644 (file)
@@ -64,8 +64,8 @@
        };
 
        psci {
-               compatible      = "arm,psci-1.0";
-               method          = "smc";
+               compatible = "arm,psci-1.0";
+               method = "smc";
        };
 
        timer {
index b006304519096afc8c5d6d0c830ed54683ffab8a..705af0373a090156f39beb0cf31b53a63c0cd34b 100644 (file)
                iommus = <&smmu TEGRA186_SID_GPCDMA_0>;
                dma-coherent;
                dma-channel-mask = <0xfffffffe>;
-               status = "okay";
        };
 
        aconnect@2900000 {
                             <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
-               status = "okay";
        };
 
        uarta: serial@3100000 {
index b782f8db1288a6e72dd9bcff32a34af86a9628c1..849694f751d9071487e3acf1d64382774b5092cf 100644 (file)
@@ -97,7 +97,6 @@
                                     <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
                        nvidia,axi2apb = <&axi2apb>;
                        nvidia,apbmisc = <&apbmisc>;
-                       status = "okay";
                };
 
                axi2apb: axi2apb@2390000 {
                              <0x0 0x23c0000 0x0 0x1000>,
                              <0x0 0x23d0000 0x0 0x1000>,
                              <0x0 0x23e0000 0x0 0x1000>;
-                       status = "okay";
                };
 
                pinmux: pinmux@2430000 {
                        compatible = "nvidia,tegra194-pinmux";
                        reg = <0x0 0x2430000 0x0 0x17000>;
-                       status = "okay";
 
                        pex_clkreq_c5_bi_dir_state: pinmux-pex-clkreq-c5-bi-dir {
                                clkreq {
                        iommus = <&smmu TEGRA194_SID_GPCDMA_0>;
                        dma-coherent;
                        dma-channel-mask = <0xfffffffe>;
-                       status = "okay";
                };
 
                aconnect@2900000 {
                                     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                uarta: serial@3100000 {
                        nvidia,int-threshold = <1>;
                        nvidia,slices = <11>;
                        #timestamp-cells = <1>;
-                       status = "okay";
                };
 
                hsp_top0: hsp@3c00000 {
                                     <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
                        nvidia,axi2apb = <&axi2apb>;
                        nvidia,apbmisc = <&apbmisc>;
-                       status = "okay";
                };
 
                rce-noc@be00000 {
                                     <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
                        nvidia,axi2apb = <&axi2apb>;
                        nvidia,apbmisc = <&apbmisc>;
-                       status = "okay";
                };
 
                hsp_aon: hsp@c150000 {
                        nvidia,int-threshold = <1>;
                        nvidia,slices = <3>;
                        #timestamp-cells = <1>;
-                       status = "okay";
                };
 
                gen2_i2c: i2c@c240000 {
                pinmux_aon: pinmux@c300000 {
                        compatible = "nvidia,tegra194-pinmux-aon";
                        reg = <0x0 0xc300000 0x0 0x4000>;
-
-                       status = "okay";
                };
 
                pwm4: pwm@c340000 {
                        interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
                        nvidia,apbmisc = <&apbmisc>;
-                       status = "okay";
                };
 
                bpmp-noc@d600000 {
                                     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
                        nvidia,axi2apb = <&axi2apb>;
                        nvidia,apbmisc = <&apbmisc>;
-                       status = "okay";
                };
 
                iommu@10000000 {
                        #iommu-cells = <1>;
 
                        nvidia,memory-controller = <&mc>;
-                       status = "okay";
                };
 
                host1x@13e00000 {
 
        psci {
                compatible = "arm,psci-1.0";
-               status = "okay";
                method = "smc";
        };
 
index 5aa6afd56cbc632a78b7aaf6a6f29707aacfae62..b88428aa831e46d6e9ce83ab97385767577bc466 100644 (file)
        };
 
        host1x@50000000 {
+               dpaux1: dpaux@54040000 {
+                       vdd-supply = <&pp3300>;
+                       status = "okay";
+               };
+
                dsia: dsi@54300000 {
                        avdd-dsi-csi-supply = <&vdd_dsi_csi>;
                        status = "okay";
                        };
                };
 
+               sor1: sor@54580000 {
+                       avdd-io-hdmi-dp-supply = <&pp1800>;
+                       vdd-hdmi-dp-pll-supply = <&avddio_1v05>;
+                       nvidia,dpaux = <&dpaux1>;
+                       status = "okay";
+               };
+
                dpaux: dpaux@545c0000 {
                        status = "okay";
                };
                                status = "okay";
                                vbus-supply = <&usbc_vbus>;
                                mode = "otg";
+                               usb-role-switch;
+                               role-switch-default-mode = "host";
                        };
 
                        usb3-0 {
                status = "okay";
        };
 
+       usb@700d0000 {
+               phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>,
+                      <&{/padctl@7009f000/pads/pcie/lanes/pcie-6}>;
+               phy-names = "usb2-0", "usb3-0";
+
+               avddio-usb-supply = <&avddio_1v05>;
+               hvdd-usb-supply = <&pp3300>;
+
+               status = "okay";
+       };
+
        clock@70110000 {
                status = "okay";
                nvidia,cf = <6>;
index 827dbb42082619da40180f891e091dbe64bca268..850c473235e367ac8d959e809796c7b1e3f621ca 100644 (file)
@@ -40,7 +40,6 @@
                        compatible = "nvidia,tegra234-misc";
                        reg = <0x0 0x00100000 0x0 0xf000>,
                              <0x0 0x0010f000 0x0 0x1000>;
-                       status = "okay";
                };
 
                timer@2080000 {
@@ -62,7 +61,6 @@
                                     <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                gpio: gpio@2200000 {
                                    "ch11", "ch12", "ch13", "ch14", "ch15";
                        interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
                        #interconnect-cells = <1>;
-                       status = "okay";
 
                        #address-cells = <2>;
                        #size-cells = <2>;
                                interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&bpmp TEGRA234_CLK_EMC>;
                                clock-names = "emc";
-                               status = "okay";
 
                                #interconnect-cells = <0>;
 
                        #iommu-cells = <1>;
 
                        nvidia,memory-controller = <&mc>;
-                       status = "okay";
                };
 
                sce-fabric@b600000 {
                        compatible = "nvidia,tegra234-rce-fabric";
                        reg = <0x0 0xbe00000 0x0 0x40000>;
                        interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                hsp_aon: hsp@c150000 {
                        compatible = "nvidia,tegra234-aon-fabric";
                        reg = <0x0 0xc600000 0x0 0x40000>;
                        interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                bpmp-fabric@d600000 {
                        compatible = "nvidia,tegra234-bpmp-fabric";
                        reg = <0x0 0xd600000 0x0 0x40000>;
                        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                dce-fabric@de00000 {
                        compatible = "nvidia,tegra234-dce-fabric";
                        reg = <0x0 0xde00000 0x0 0x40000>;
                        interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                ccplex@e000000 {
                        compatible = "nvidia,tegra234-ccplex-cluster";
                        reg = <0x0 0x0e000000 0x0 0x5ffff>;
                        nvidia,bpmp = <&bpmp>;
-                       status = "okay";
                };
 
                gic: interrupt-controller@f400000 {
                        #iommu-cells = <1>;
 
                        nvidia,memory-controller = <&mc>;
-                       status = "okay";
                };
 
                smmu_niso0: iommu@12000000 {
                        #iommu-cells = <1>;
 
                        nvidia,memory-controller = <&mc>;
-                       status = "okay";
                };
 
                cbb-fabric@13a00000 {
                        compatible = "nvidia,tegra234-cbb-fabric";
                        reg = <0x0 0x13a00000 0x0 0x400000>;
                        interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "okay";
                };
 
                host1x@13e00000 {
        pmu {
                compatible = "arm,cortex-a78-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
-               status = "okay";
        };
 
        psci {
                compatible = "arm,psci-1.0";
-               status = "okay";
                method = "smc";
        };
 
index 06795c82427ad1247265e222f5c02cff0be4f011..7e2c3e66c2abfac12ce74e5724cf42b2802bfb35 100644 (file)
                        status = "okay";
                };
 
+               cmdqv@5200000 {
+                       status = "okay";
+               };
+
                iommu@6000000 {
                        status = "okay";
                };
+
+               cmdqv@6200000 {
+                       status = "okay";
+               };
        };
 };
index f137565da8048946643785171344e6f35e1b6d25..7644a41d5f72147cf735840fb9215dcf93d81f14 100644 (file)
                         <0x02 0x00000000 0xd0 0x00000000 0x08 0x80000000>; /* ECAM, prefetchable memory, I/O */
 
                smmu1: iommu@5000000 {
-                       compatible = "arm,smmu-v3";
+                       compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
                        reg = <0x00 0x5000000 0x0 0x200000>;
                        interrupts = <GIC_SPI 12 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 13 IRQ_TYPE_EDGE_RISING>;
 
                        #iommu-cells = <1>;
                        dma-coherent;
+                       nvidia,cmdqv = <&cmdqv1>;
+               };
+
+               cmdqv1: cmdqv@5200000 {
+                       compatible = "nvidia,tegra264-cmdqv";
+                       reg = <0x00 0x5200000 0x0 0x830000>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
                };
 
                smmu2: iommu@6000000 {
-                       compatible = "arm,smmu-v3";
+                       compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
                        reg = <0x00 0x6000000 0x0 0x200000>;
                        interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>;
 
                        #iommu-cells = <1>;
                        dma-coherent;
+                       nvidia,cmdqv = <&cmdqv2>;
+               };
+
+               cmdqv2: cmdqv@6200000 {
+                       compatible = "nvidia,tegra264-cmdqv";
+                       reg = <0x00 0x6200000 0x0 0x830000>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
                };
 
                mc: memory-controller@8020000 {
                                reg = <0x00 0x8800000 0x0 0x20000>,
                                      <0x00 0x8890000 0x0 0x20000>;
                                interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&bpmp TEGRA264_CLK_EMC>;
-                               clock-names = "emc";
+                               clocks = <&bpmp TEGRA264_CLK_EMC>,
+                                        <&bpmp TEGRA264_CLK_DBB_UPHY0>;
+                               clock-names = "emc", "dbb";
 
                                #interconnect-cells = <0>;
                                nvidia,bpmp = <&bpmp>;
                };
 
                smmu0: iommu@a000000 {
-                       compatible = "arm,smmu-v3";
+                       compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
                        reg = <0x00 0xa000000 0x0 0x200000>;
                        interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
 
                        #iommu-cells = <1>;
                        dma-coherent;
+                       nvidia,cmdqv = <&cmdqv0>;
+               };
+
+               cmdqv0: cmdqv@a200000 {
+                       compatible = "nvidia,tegra264-cmdqv";
+                       reg = <0x00 0xa200000 0x0 0x830000>;
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
                };
 
                smmu4: iommu@b000000 {
-                       compatible = "arm,smmu-v3";
+                       compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
                        reg = <0x00 0xb000000 0x0 0x200000>;
                        interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
 
                        #iommu-cells = <1>;
                        dma-coherent;
+                       nvidia,cmdqv = <&cmdqv4>;
+               };
+
+               cmdqv4: cmdqv@b200000 {
+                       compatible = "nvidia,tegra264-cmdqv";
+                       reg = <0x00 0xb200000 0x0 0x830000>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
                };
 
                i2c14: i2c@c410000 {
                ranges = <0x00 0x00000000 0x88 0x00000000 0x01 0x00000000>;
 
                smmu3: iommu@6000000 {
-                       compatible = "arm,smmu-v3";
+                       compatible = "nvidia,tegra264-smmu", "arm,smmu-v3";
                        reg = <0x00 0x6000000 0x0 0x200000>;
                        interrupts = <GIC_SPI 225 IRQ_TYPE_EDGE_RISING>,
                                     <GIC_SPI 226 IRQ_TYPE_EDGE_RISING>;
 
                        #iommu-cells = <1>;
                        dma-coherent;
+                       nvidia,cmdqv = <&cmdqv3>;
+               };
+
+               cmdqv3: cmdqv@6200000 {
+                       compatible = "nvidia,tegra264-cmdqv";
+                       reg = <0x00 0x6200000 0x0 0x830000>;
+                       interrupts = <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
                };
 
                hda@90b0000 {
                #size-cells = <0>;
 
                cpu0: cpu@0 {
-                       compatible = "arm,armv8";
+                       compatible = "arm,neoverse-v3ae";
                        device_type = "cpu";
                        reg = <0x00000>;
-                       status = "okay";
 
                        enable-method = "psci";
 
                };
 
                cpu1: cpu@1 {
-                       compatible = "arm,armv8";
+                       compatible = "arm,neoverse-v3ae";
                        device_type = "cpu";
                        reg = <0x10000>;
-                       status = "okay";
 
                        enable-method = "psci";
 
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
-               status = "okay";
        };
 
        psci {
                compatible = "arm,psci-1.0";
-               status = "okay";
                method = "smc";
        };
 
                             <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
-               status = "okay";
        };
 };
index 8bf5c5583fc22ea95792adf061880cd2aeeb67fc..893cb06890130a686a120f17d37e19854f5e52e6 100644 (file)
                                bias-disable;
                        };
 
+                       qup_uart2_default: qup-uart2-default-state {
+                               pins = "gpio6", "gpio7", "gpio71", "gpio80";
+                               function = "qup2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
                        qup_uart3_default: qup-uart3-default-state {
                                pins = "gpio8", "gpio9", "gpio10", "gpio11";
                                function = "qup3";
                                bias-disable;
                        };
 
+                       mclk0_default: mclk0-default-state {
+                               pins = "gpio20";
+                               function = "cam_mclk";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       mclk1_default: mclk1-default-state {
+                               pins = "gpio21";
+                               function = "cam_mclk";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       mclk2_default: mclk2-default-state {
+                               pins = "gpio27";
+                               function = "cam_mclk";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       mclk3_default: mclk3-default-state {
+                               pins = "gpio28";
+                               function = "cam_mclk";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
                        sdc1_state_on: sdc1-on-state {
                                clk-pins {
                                        pins = "sdc1_clk";
                                status = "disabled";
                        };
 
+                       uart2: serial@4a88000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x04a88000 0x0 0x4000>;
+                               interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               pinctrl-0 = <&qup_uart2_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";
+                       };
+
                        i2c3: i2c@4a8c000 {
                                compatible = "qcom,geni-i2c";
                                reg = <0x0 0x04a8c000 0x0 0x4000>;
 
                gpu: gpu@5900000 {
                        compatible = "qcom,adreno-07000200", "qcom,adreno";
-                       reg = <0x0 0x05900000 0x0 0x40000>;
-                       reg-names = "kgsl_3d0_reg_memory";
+                       reg = <0x0 0x05900000 0x0 0x40000>,
+                             <0x0 0x0599e000 0x0 0x1000>,
+                             <0x0 0x05961000 0x0 0x800>;
+                       reg-names = "kgsl_3d0_reg_memory",
+                                   "cx_mem",
+                                   "cx_dbgc";
 
                        interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
 
                                         &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
                        interconnect-names = "gfx-mem";
 
-                       iommus = <&adreno_smmu 0 1>,
-                                <&adreno_smmu 2 0>;
+                       iommus = <&adreno_smmu 0 1>;
                        operating-points-v2 = <&gpu_opp_table>;
                        power-domains = <&rpmpd QCM2290_VDDCX>;
                        qcom,gmu = <&gmu_wrapper>;
 
                        power-domains = <&dispcc MDSS_GDSC>;
 
-                       iommus = <&apps_smmu 0x420 0x2>,
-                                <&apps_smmu 0x421 0x0>;
+                       iommus = <&apps_smmu 0x420 0x2>;
                        interconnects = <&mmrt_virt MASTER_MDP0 RPM_ALWAYS_TAG
                                         &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
                                        <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
                                                };
                                        };
                                };
+
+                               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 0x1c3 0x0>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1c4 0x0>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1c5 0x0>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x1c6 0x0>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x1c7 0x0>;
+                                       };
+                               };
                        };
                };
 
 
                        memory-region = <&pil_video_mem>;
                        iommus = <&apps_smmu 0x860 0x0>,
-                                <&apps_smmu 0x880 0x0>,
-                                <&apps_smmu 0x861 0x04>,
-                                <&apps_smmu 0x863 0x0>,
-                                <&apps_smmu 0x804 0xe0>;
+                                <&apps_smmu 0x880 0x0>;
 
                        interconnects = <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG
                                         &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
diff --git a/src/arm64/qcom/glymur-ipcc.h b/src/arm64/qcom/glymur-ipcc.h
new file mode 100644 (file)
index 0000000..700cd71
--- /dev/null
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef __DTS_GLYMUR_MAILBOX_IPCC_H
+#define __DTS_GLYMUR_MAILBOX_IPCC_H
+
+/* Glymur physical client IDs */
+#define IPCC_MPROC_AOP                 0
+#define IPCC_MPROC_TZ                  1
+#define IPCC_MPROC_MPSS                        2
+#define IPCC_MPROC_LPASS               3
+#define IPCC_MPROC_SLPI                        4
+#define IPCC_MPROC_SDC                 5
+#define IPCC_MPROC_CDSP                        6
+#define IPCC_MPROC_NPU                 7
+#define IPCC_MPROC_APSS                        8
+#define IPCC_MPROC_GPU                 9
+#define IPCC_MPROC_ICP                 11
+#define IPCC_MPROC_VPU                 12
+#define IPCC_MPROC_PCIE0               13
+#define IPCC_MPROC_PCIE1               14
+#define IPCC_MPROC_PCIE2               15
+#define IPCC_MPROC_SPSS                        16
+#define IPCC_MPROC_PCIE3               19
+#define IPCC_MPROC_PCIE4               20
+#define IPCC_MPROC_PCIE5               21
+#define IPCC_MPROC_PCIE6               22
+#define IPCC_MPROC_TME                 23
+#define IPCC_MPROC_WPSS                        24
+#define IPCC_MPROC_PCIE7               44
+#define IPCC_MPROC_SOCCP               46
+
+#define IPCC_COMPUTE_L0_LPASS          0
+#define IPCC_COMPUTE_L0_CDSP           1
+#define IPCC_COMPUTE_L0_APSS           2
+#define IPCC_COMPUTE_L0_GPU            3
+#define IPCC_COMPUTE_L0_CVP            6
+#define IPCC_COMPUTE_L0_ICP            7
+#define IPCC_COMPUTE_L0_VPU            8
+#define IPCC_COMPUTE_L0_DPU            9
+#define IPCC_COMPUTE_L0_SOCCP          11
+
+#define IPCC_COMPUTE_L1_LPASS          0
+#define IPCC_COMPUTE_L1_CDSP           1
+#define IPCC_COMPUTE_L1_APSS           2
+#define IPCC_COMPUTE_L1_GPU            3
+#define IPCC_COMPUTE_L1_CVP            6
+#define IPCC_COMPUTE_L1_ICP            7
+#define IPCC_COMPUTE_L1_VPU            8
+#define IPCC_COMPUTE_L1_DPU            9
+#define IPCC_COMPUTE_L1_SOCCP          11
+
+#define IPCC_PERIPH_LPASS              0
+#define IPCC_PERIPH_APSS               1
+#define IPCC_PERIPH_PCIE0              2
+#define IPCC_PERIPH_PCIE1              3
+#define IPCC_PERIPH_PCIE2              6
+#define IPCC_PERIPH_PCIE3              7
+#define IPCC_PERIPH_PCIE4              8
+#define IPCC_PERIPH_PCIE5              9
+#define IPCC_PERIPH_PCIE6              10
+#define IPCC_PERIPH_PCIE7              11
+#define IPCC_PERIPH_SOCCP              13
+#define IPCC_PERIPH_WPSS               16
+
+#endif
index 36dd6599402b4650b7f8ad2c0cd22212116a25fe..2390648a248f71467d2016244bfc34e30ba30d39 100644 (file)
@@ -5,7 +5,9 @@
 
 /dts-v1/;
 
+#include <dt-bindings/leds/common.h>
 #include "hamoa-iot-som.dtsi"
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 / {
        model = "Qualcomm Technologies, Inc. Hamoa IoT EVK";
                serial1 = &uart14;
        };
 
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pmk8550_pwm 0 5000000>;
+               enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+               power-supply = <&vreg_edp_bl>;
+
+               pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
+               pinctrl-names = "default";
+       };
+
        wcd938x: audio-codec {
                compatible = "qcom,wcd9385-codec";
 
                stdout-path = "serial0:115200n8";
        };
 
+       connector3 {
+               compatible = "usb-a-connector";
+               label = "USB-3-Type-A";
+               power-role = "source";
+
+               vbus-supply = <&regulator_usb3_vbus>;
+
+               port {
+                       connector_3_in: endpoint {
+                       };
+               };
+       };
+
+       connector6 {
+               compatible = "usb-a-connector";
+               label = "USB-6-Type-A";
+               power-role = "source";
+
+               vbus-supply = <&regulator_usb6_vbus>;
+
+               port {
+                       connector_4_in: endpoint {
+                       };
+               };
+       };
+
        pmic-glink {
                compatible = "qcom,x1e80100-pmic-glink",
                             "qcom,sm8550-pmic-glink",
                regulator-boot-on;
        };
 
+       vreg_edp_bl: regulator-edp-bl {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VBL9";
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               gpio = <&pmc8380_3_gpios 10 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_bl_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
        vreg_nvme: regulator-nvme {
                compatible = "regulator-fixed";
 
                regulator-boot-on;
        };
 
+       vreg_pcie_12v: regulator-pcie-12v {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_PCIE_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+
+               gpio = <&pm8550ve_8_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&pcie_x8_12v>;
+               pinctrl-names = "default";
+       };
+
+       vreg_pcie_3v3: regulator-pcie-3v3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_PCIE_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pmc8380_3_gpios 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&pm_sde7_main_3p3_en>;
+               pinctrl-names = "default";
+       };
+
+       vreg_pcie_3v3_aux: regulator-pcie-3v3-aux {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_PCIE_3P3_AUX";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pmc8380_3_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&pm_sde7_aux_3p3_en>;
+               pinctrl-names = "default";
+       };
+
        /* Left unused as the retimer is not used on this board. */
        vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
                compatible = "regulator-fixed";
                regulator-boot-on;
        };
 
+       regulator_usb3_vbus: regulator-usb3-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB3_VBUS";
+               gpio = <&pm8550ve_9_gpios 4 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb3_en>;
+               pinctrl-names = "default";
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator_usb6_vbus: regulator-usb6-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "USB6_VBUS";
+               gpio = <&pm8550ve_9_gpios 5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb6_en>;
+               pinctrl-names = "default";
+               enable-active-high;
+               regulator-always-on;
+       };
+
        vph_pwr: regulator-vph-pwr {
                compatible = "regulator-fixed";
 
                bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
                wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
 
-               pinctrl-0 = <&wcn_bt_en>;
+               pinctrl-0 = <&wcn_bt_en>, <&wcn_wlan_en>;
                pinctrl-names = "default";
 
                regulators {
        aux-bus {
                panel {
                        compatible = "edp-panel";
+
+                       backlight = <&backlight>;
                        power-supply = <&vreg_edp_3p3>;
 
                        port {
        status = "okay";
 };
 
+&pcie3_port0 {
+       vpcie12v-supply = <&vreg_pcie_12v>;
+       vpcie3v3-supply = <&vreg_pcie_3v3>;
+       vpcie3v3aux-supply = <&vreg_pcie_3v3_aux>;
+
+       reset-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+};
+
+&pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+               vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+               vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+       };
+};
+
+&pcie5 {
+       vddpe-3v3-supply = <&vreg_wwan>;
+};
+
+&pcie5_port0 {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+};
+
 &pcie6a {
        vddpe-3v3-supply = <&vreg_nvme>;
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
        };
 };
 
+&pm8550ve_8_gpios {
+       pcie_x8_12v: pcie-12v-default-state {
+               pins = "gpio8";
+               function = "normal";
+               output-enable;
+               output-high;
+               bias-pull-down;
+               power-source = <0>;
+       };
+};
+
 &pm8550ve_9_gpios {
        usb0_1p8_reg_en: usb0-1p8-reg-en-state {
                pins = "gpio8";
                input-disable;
                output-enable;
        };
+
+       usb3_en: usb3-en-state {
+               pins = "gpio4";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+               output-enable;
+               power-source = <0>;
+       };
+
+       usb6_en: usb6-en-state {
+               pins = "gpio5";
+               function = "normal";
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
+&pm8550_pwm {
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_MULTI>;
+               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>;
+               };
+       };
+};
+
+&pmc8380_3_gpios {
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <1>;
+               input-disable;
+               output-enable;
+       };
+
+       edp_bl_reg_en: edp-bl-reg-en-state {
+               pins = "gpio10";
+               function = "normal";
+       };
+};
+
+&pmc8380_3_gpios {
+       pm_sde7_aux_3p3_en: pcie-aux-3p3-default-state {
+               pins = "gpio8";
+               function = "normal";
+               output-enable;
+               bias-pull-down;
+               power-source = <0>;
+       };
+
+       pm_sde7_main_3p3_en: pcie-main-3p3-default-state {
+               pins = "gpio6";
+               function = "normal";
+               output-enable;
+               bias-pull-down;
+               power-source = <0>;
+       };
 };
 
 &pmc8380_5_gpios {
        };
 };
 
+&pmk8550_gpios {
+       edp_bl_pwm: edp-bl-pwm-state {
+               pins = "gpio5";
+               function = "func3";
+       };
+};
+
+&pmk8550_pwm {
+       status = "okay";
+};
+
 &smb2360_0 {
        status = "okay";
 };
        vdd3-supply = <&vreg_l8b_3p0>;
 };
 
+&spi11 {
+       status = "okay";
+
+       tpm@0 {
+               compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
 &swr0 {
        status = "okay";
 
                bias-disable;
        };
 
+       wcn_wlan_en: wcn-wlan-en-state {
+               pins = "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        wwan_sw_en: wwan-sw-en-state {
                pins = "gpio221";
                function = "gpio";
index 4a69852e9176052a8b4f7242e9777234b766e141..b8e3e04a6fbd489f66bb44a02aba7b9746f30fe2 100644 (file)
        firmware-name = "qcom/x1e80100/gen70500_zap.mbn";
 };
 
-&pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+&pcie3 {
+       pinctrl-0 = <&pcie3_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie3_phy {
+       vdda-phy-supply = <&vreg_l3c_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
 
+       status = "okay";
+};
+
+&pcie4 {
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
-&pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+&pcie5 {
+       pinctrl-0 = <&pcie5_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie5_phy {
+       vdda-phy-supply = <&vreg_l3i_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
 
+       status = "okay";
+};
+
+&pcie6a {
        pinctrl-0 = <&pcie6a_default>;
        pinctrl-names = "default";
 
 &tlmm {
        gpio-reserved-ranges = <34 2>; /* TPM LP & INT */
 
+       pcie3_default: pcie3-default-state {
+               clkreq-n-pins {
+                       pins = "gpio144";
+                       function = "pcie3_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio143";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio145";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        pcie4_default: pcie4-default-state {
                clkreq-n-pins {
                        pins = "gpio147";
                };
        };
 
+       pcie5_default: pcie5-default-state {
+               clkreq-n-pins {
+                       pins = "gpio150";
+                       function = "pcie5_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio149";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio151";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        pcie6a_default: pcie6a-default-state {
                clkreq-n-pins {
                        pins = "gpio153";
index a17900eacb20396a9792efcfcd6ce6dd877435d1..4b0784af4bd395c2a973de12ccd7a757191f4c69 100644 (file)
                                idle-state-name = "ret";
                                arm,psci-suspend-param = <0x00000004>;
                                entry-latency-us = <180>;
-                               exit-latency-us = <500>;
+                               exit-latency-us = <320>;
                                min-residency-us = <600>;
                        };
                };
 
                #address-cells = <2>;
                #size-cells = <2>;
-               dma-ranges = <0 0 0 0 0x10 0>;
-               ranges = <0 0 0 0 0x10 0>;
+               dma-ranges = <0 0 0 0 0x100 0>;
+               ranges = <0 0 0 0 0x100 0>;
 
                gcc: clock-controller@100000 {
                        compatible = "qcom,x1e80100-gcc";
                                 <0>,
                                 <0>,
                                 <0>,
+                                <0>,
+                                <0>,
+                                <0>,
                                 <0>;
 
                        power-domains = <&rpmhpd RPMHPD_CX>;
                        reg = <0 0x00fda000 0 0x4000>;
 
                        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&tcsr TCSR_USB4_1_CLKREF_EN>,
                                 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
                                 <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
                        clock-names = "aux",
                        reg = <0 0x00fdf000 0 0x4000>;
 
                        clocks = <&gcc GCC_USB3_TERT_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&tcsr TCSR_USB4_2_CLKREF_EN>,
                                 <&gcc GCC_USB3_TERT_PHY_COM_AUX_CLK>,
                                 <&gcc GCC_USB3_TERT_PHY_PIPE_CLK>;
                        clock-names = "aux",
                        };
                };
 
+               rng: rng@10c3000 {
+                       compatible = "qcom,x1e80100-trng", "qcom,trng";
+                       reg = <0x0 0x010c3000 0x0 0x1000>;
+               };
+
                cnoc_main: interconnect@1500000 {
                        compatible = "qcom,x1e80100-cnoc-main";
                        reg = <0 0x01500000 0 0x14400>;
 
                mmss_noc: interconnect@1780000 {
                        compatible = "qcom,x1e80100-mmss-noc";
-                       reg = <0 0x01780000 0 0x5B800>;
+                       reg = <0 0x01780000 0 0x5b800>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                        power-domains = <&gcc GCC_PCIE_3_GDSC>;
 
-                       phys = <&pcie3_phy>;
-                       phy-names = "pciephy";
-
                        eq-presets-8gts = /bits/ 16 <0x5555 0x5555 0x5555 0x5555
                                                     0x5555 0x5555 0x5555 0x5555>;
                        eq-presets-16gts = /bits/ 8 <0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55>;
                                };
                        };
 
-                       pcie3_port: pcie@0 {
+                       pcie3_port0: pcie@0 {
                                device_type = "pci";
                                compatible = "pciclass,0604";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                bus-range = <0x01 0xff>;
 
+                               phys = <&pcie3_phy>;
+
                                #address-cells = <3>;
                                #size-cells = <2>;
                                ranges;
                        power-domains = <&gcc GCC_PCIE_6A_GDSC>;
                        required-opps = <&rpmhpd_opp_nom>;
 
-                       phys = <&pcie6a_phy>;
-                       phy-names = "pciephy";
-
                        eq-presets-8gts = /bits/ 16 <0x5555 0x5555 0x5555 0x5555>;
                        eq-presets-16gts = /bits/ 8 <0x55 0x55 0x55 0x55>;
 
                        status = "disabled";
+
+                       pcie6a_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               phys = <&pcie6a_phy>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie6a_phy: phy@1bfc000 {
                        power-domains = <&gcc GCC_PCIE_5_GDSC>;
                        required-opps = <&rpmhpd_opp_nom>;
 
-                       phys = <&pcie5_phy>;
-                       phy-names = "pciephy";
-
                        eq-presets-8gts = /bits/ 16 <0x5555 0x5555>;
 
                        status = "disabled";
+
+                       pcie5_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               phys = <&pcie5_phy>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie5_phy: phy@1c06000 {
                        power-domains = <&gcc GCC_PCIE_4_GDSC>;
                        required-opps = <&rpmhpd_opp_nom>;
 
-                       phys = <&pcie4_phy>;
-                       phy-names = "pciephy";
-
                        eq-presets-8gts = /bits/ 16 <0x5555 0x5555>;
 
                        status = "disabled";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                bus-range = <0x01 0xff>;
 
+                               phys = <&pcie4_phy>;
+
                                #address-cells = <3>;
                                #size-cells = <2>;
                                ranges;
                        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 0x480 0x0>,
+                                <&apps_smmu 0x481 0x0>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       num-channels = <20>;
+                       qcom,num-ees = <4>;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,x1e80100-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0x0 0x01dfa000 0x0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx",
+                                   "tx";
+                       iommus = <&apps_smmu 0x480 0x0>,
+                                <&apps_smmu 0x481 0x0>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "memory";
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0 0x01f40000 0 0x20000>;
 
                nsp_noc: interconnect@320c0000 {
                        compatible = "qcom,x1e80100-nsp-noc";
-                       reg = <0 0x320C0000 0 0xe080>;
+                       reg = <0 0x320c0000 0 0xe080>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
 
                lpass_lpicx_noc: interconnect@7430000 {
                        compatible = "qcom,x1e80100-lpass-lpicx-noc";
-                       reg = <0 0x07430000 0 0x3A200>;
+                       reg = <0 0x07430000 0 0x3a200>;
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
 
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
+                               sound-name-prefix = "DisplayPort0";
 
                                status = "disabled";
 
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
+                               sound-name-prefix = "DisplayPort1";
 
                                status = "disabled";
 
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
+                               sound-name-prefix = "DisplayPort2";
 
                                status = "disabled";
 
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
+                               sound-name-prefix = "DisplayPort3";
 
                                status = "disabled";
 
                              <0 0x0aec2000 0 0x1c8>;
 
                        clocks = <&dispcc DISP_CC_MDSS_DPTX2_AUX_CLK>,
-                                <&dispcc DISP_CC_MDSS_AHB_CLK>;
+                                <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                <&tcsr TCSR_EDP_CLKREF_EN>;
                        clock-names = "aux",
-                                     "cfg_ahb";
+                                     "cfg_ahb",
+                                     "ref";
 
                        power-domains = <&rpmhpd RPMHPD_MX>;
 
                              <0 0x0aec5000 0 0x1c8>;
 
                        clocks = <&dispcc DISP_CC_MDSS_DPTX3_AUX_CLK>,
-                                <&dispcc DISP_CC_MDSS_AHB_CLK>;
+                                <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                <&tcsr TCSR_EDP_CLKREF_EN>;
                        clock-names = "aux",
-                                     "cfg_ahb";
+                                     "cfg_ahb",
+                                     "ref";
 
                        power-domains = <&rpmhpd RPMHPD_MX>;
 
                        };
                };
 
+               apss_watchdog: watchdog@17410000 {
+                       compatible = "qcom,apss-wdt-x1e80100", "qcom,kpss-wdt";
+                       reg = <0x0 0x17410000 0x0 0x1000>;
+                       clocks = <&sleep_clk>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
+                       status = "reserved"; /* Reserved by Gunyah */
+               };
+
                cpucp_mbox: mailbox@17430000 {
                        compatible = "qcom,x1e80100-cpucp-mbox";
                        reg = <0 0x17430000 0 0x10000>, <0 0x18830000 0 0x10000>;
index f024b3cba33f6100ac3f4d45598ff2356e026dcf..6f8004a22a1ffdb6da0be410b772be5fe0473eef 100644 (file)
                };
 
                tsens: thermal-sensor@4a9000 {
-                       compatible = "qcom,ipq5018-tsens", "qcom,tsens-v1";
+                       compatible = "qcom,ipq5018-tsens";
                        reg = <0x004a9000 0x1000>,
                              <0x004a8000 0x1000>;
 
                        compatible = "qcom,ipq5018-dwc3", "qcom,dwc3";
                        reg = <0x08af8800 0x400>;
 
-                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "hs_phy_irq";
+                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq";
 
                        clocks = <&gcc GCC_USB0_MASTER_CLK>,
                                 <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
index 86c9cb9fffc98fdd1b0b08e81428ce5e7bb87e17..d7278f2137ac58305cc4e82c1d6c26c08bc7a405 100644 (file)
                        assigned-clock-rates = <200000000>,
                                               <24000000>;
 
-                       interrupts-extended = <&intc GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "pwr_event";
+                       interrupts-extended = <&intc GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "qusb2_phy",
+                                         "dm_hs_phy_irq",
+                                         "dp_hs_phy_irq";
 
                        resets = <&gcc GCC_USB_BCR>;
                        status = "disabled";
diff --git a/src/arm64/qcom/kaanapali-ipcc.h b/src/arm64/qcom/kaanapali-ipcc.h
new file mode 100644 (file)
index 0000000..125375a
--- /dev/null
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef __DTS_KAANAPALI_MAILBOX_IPCC_H
+#define __DTS_KAANAPALI_MAILBOX_IPCC_H
+
+/* Physical client IDs */
+#define IPCC_MPROC_AOP                 0
+#define IPCC_MPROC_TZ                  1
+#define IPCC_MPROC_MPSS                        2
+#define IPCC_MPROC_LPASS               3
+#define IPCC_MPROC_SDC                 4
+#define IPCC_MPROC_CDSP                        5
+#define IPCC_MPROC_APSS                        6
+#define IPCC_MPROC_SOCCP               13
+#define IPCC_MPROC_DCP                 14
+#define IPCC_MPROC_SPSS                        15
+#define IPCC_MPROC_TME                 16
+#define IPCC_MPROC_WPSS                        17
+
+#define IPCC_COMPUTE_L0_CDSP           2
+#define IPCC_COMPUTE_L0_APSS           3
+#define IPCC_COMPUTE_L0_GPU            4
+#define IPCC_COMPUTE_L0_CVP            8
+#define IPCC_COMPUTE_L0_CAM            9
+#define IPCC_COMPUTE_L0_CAM1           10
+#define IPCC_COMPUTE_L0_DCP            11
+#define IPCC_COMPUTE_L0_VPU            12
+#define IPCC_COMPUTE_L0_SOCCP          16
+
+#define IPCC_COMPUTE_L1_CDSP           2
+#define IPCC_COMPUTE_L1_APSS           3
+#define IPCC_COMPUTE_L1_GPU            4
+#define IPCC_COMPUTE_L1_CVP            8
+#define IPCC_COMPUTE_L1_CAM            9
+#define IPCC_COMPUTE_L1_CAM1           10
+#define IPCC_COMPUTE_L1_DCP            11
+#define IPCC_COMPUTE_L1_VPU            12
+#define IPCC_COMPUTE_L1_SOCCP          16
+
+#define IPCC_PERIPH_CDSP               2
+#define IPCC_PERIPH_APSS               3
+#define IPCC_PERIPH_PCIE0              4
+#define IPCC_PERIPH_PCIE1              5
+
+#define IPCC_FENCE_CDSP                        2
+#define IPCC_FENCE_APSS                        3
+#define IPCC_FENCE_GPU                 4
+#define IPCC_FENCE_CVP                 8
+#define IPCC_FENCE_CAM                 8
+#define IPCC_FENCE_CAM1                        10
+#define IPCC_FENCE_DCP                 11
+#define IPCC_FENCE_VPU                 20
+#define IPCC_FENCE_SOCCP               24
+
+#endif
diff --git a/src/arm64/qcom/kaanapali-mtp.dts b/src/arm64/qcom/kaanapali-mtp.dts
new file mode 100644 (file)
index 0000000..32a0825
--- /dev/null
@@ -0,0 +1,754 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "kaanapali.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. Kaanapali MTP";
+       compatible = "qcom,kaanapali-mtp", "qcom,kaanapali";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart7;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       clock-frequency = <76800000>;
+                       #clock-cells = <0>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32764>;
+                       #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>;
+               };
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pmh0101-rpmh-regulators";
+               qcom,pmic-id = "B_E0";
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <4000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <3552000>;
+                       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_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3048000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4b_1p8: ldo4 {
+                       regulator-name = "vreg_l4b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3100000>;
+                       regulator-max-microvolt = <3148000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               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_l10b_1p8: ldo10 {
+                       regulator-name = "vreg_l10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l11b_1p0: ldo11 {
+                       regulator-name = "vreg_l11b_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1292000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               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>;
+               };
+
+               vreg_l18b_1p2: ldo18 {
+                       regulator-name = "vreg_l18b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "D_E0";
+
+               vreg_s10d_1p0: smps10 {
+                       regulator-name = "vreg_s10d_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1d_1p2: ldo1 {
+                       regulator-name = "vreg_l1d_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <958000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3d_0p8: ldo3 {
+                       regulator-name = "vreg_l3d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4d_1p2: ldo4 {
+                       regulator-name = "vreg_l4d_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "F_E0";
+
+               vreg_s6f_0p5: smps6 {
+                       regulator-name = "vreg_s6f_0p5";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <570000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s7f_1p2: smps7 {
+                       regulator-name = "vreg_s7f_1p2";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1372000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s8f_1p8: smps8 {
+                       regulator-name = "vreg_s8f_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_1p2: ldo1 {
+                       regulator-name = "vreg_l1f_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2f_1p2: ldo2 {
+                       regulator-name = "vreg_l2f_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3f_0p8: ldo3 {
+                       regulator-name = "vreg_l3f_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <936000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4f_0p8: ldo4 {
+                       regulator-name = "vreg_l4f_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "G_E0";
+
+               vreg_s7g_0p9: smps7 {
+                       regulator-name = "vreg_s7g_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s9g_1p0: smps9 {
+                       regulator-name = "vreg_s9g_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1g_1p2: ldo1 {
+                       regulator-name = "vreg_l1g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2g_1p8: ldo2 {
+                       regulator-name = "vreg_l2g_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3g_1p2: ldo3 {
+                       regulator-name = "vreg_l3g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4g_0p9: ldo4 {
+                       regulator-name = "vreg_l4g_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "I_E0";
+
+               vreg_s7i_0p9: smps7 {
+                       regulator-name = "vreg_s7i_0p9";
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <972000>;
+                       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_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pmh0104-rpmh-regulators";
+               qcom,pmic-id = "J_E1";
+
+               vreg_s1j_0p8: smps1 {
+                       regulator-name = "vreg_s1j_0p8";
+                       regulator-min-microvolt = <400000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2j_0p8: smps2 {
+                       regulator-name = "vreg_s2j_0p8";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3j_1p2: smps3 {
+                       regulator-name = "vreg_s3j_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4j_0p7: smps4 {
+                       regulator-name = "vreg_s4j_0p7";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pmr735d-rpmh-regulators";
+               qcom,pmic-id = "K_E1";
+
+               vreg_l1k_0p8: ldo1 {
+                       regulator-name = "vreg_l1k_0p8";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2k_0p7: ldo2 {
+                       regulator-name = "vreg_l2k_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3k_1p2: ldo3 {
+                       regulator-name = "vreg_l3k_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_l4k_1p0: ldo4 {
+                       regulator-name = "vreg_l4k_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       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_l5k_0p7: ldo5 {
+                       regulator-name = "vreg_l5k_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6k_1p7: ldo6 {
+                       regulator-name = "vreg_l6k_1p7";
+                       regulator-min-microvolt = <1700000>;
+                       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>;
+               };
+
+               vreg_l7k_0p7: ldo7 {
+                       regulator-name = "vreg_l7k_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <848000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "M_E1";
+
+               vreg_l1m_1p0: ldo1 {
+                       regulator-name = "vreg_l1m_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2m_1p0: ldo2 {
+                       regulator-name = "vreg_l2m_1p0";
+                       regulator-min-microvolt = <1096000>;
+                       regulator-max-microvolt = <1104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3m_2p8: ldo3 {
+                       regulator-name = "vreg_l3m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4m_2p2: ldo4 {
+                       regulator-name = "vreg_l4m_2p2";
+                       regulator-min-microvolt = <2200000>;
+                       regulator-max-microvolt = <2200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6m_2p8: ldo6 {
+                       regulator-name = "vreg_l6m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7m_2p8: ldo7 {
+                       regulator-name = "vreg_l7m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-8 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "N_E1";
+
+               vreg_l1n_1p1: ldo1 {
+                       regulator-name = "vreg_l1n_1p1";
+                       regulator-min-microvolt = <1096000>;
+                       regulator-max-microvolt = <1104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2n_1p2: ldo2 {
+                       regulator-name = "vreg_l2n_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_l3n_1p8: ldo3 {
+                       regulator-name = "vreg_l3n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4n_1p8: ldo4 {
+                       regulator-name = "vreg_l4n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5n_2p8: ldo5 {
+                       regulator-name = "vreg_l5n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6n_2p8: ldo6 {
+                       regulator-name = "vreg_l6n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7n_3p3: ldo7 {
+                       regulator-name = "vreg_l7n_3p3";
+                       regulator-min-microvolt = <3304000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&pcie0 {
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l3i_0p8>;
+       vdda-pll-supply = <&vreg_l1d_1p2>;
+
+       status = "okay";
+};
+
+&pcie_port0 {
+       wake-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>;
+       reset-gpios = <&tlmm 102 GPIO_ACTIVE_LOW>;
+};
+
+&sdhc_2 {
+       cd-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&vreg_l9b_2p9>;
+       vqmmc-supply = <&vreg_l8b_1p8>;
+
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+
+       pinctrl-0 = <&sdc2_default>;
+       pinctrl-1 = <&sdc2_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <36 4>, /* NFC eSE SPI */
+                              <74 1>, /* eSE */
+                              <119 2>, /* SoCCP */
+                              <144 4>; /* CXM UART */
+
+       pcie0_default_state: pcie0-default-state {
+               perst-n-pins {
+                       pins = "gpio102";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               clkreq-n-pins {
+                       pins = "gpio103";
+                       function = "pcie0_clk_req_n";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               wake-n-pins {
+                       pins = "gpio104";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+};
+
+&uart7 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 217 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1200000>;
+       vccq-supply = <&vreg_l4d_1p2>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l4g_0p9>;
+       vdda-pll-supply = <&vreg_l1d_1p2>;
+
+       status = "okay";
+};
diff --git a/src/arm64/qcom/kaanapali-qrd.dts b/src/arm64/qcom/kaanapali-qrd.dts
new file mode 100644 (file)
index 0000000..66b423a
--- /dev/null
@@ -0,0 +1,712 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "kaanapali.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. Kaanapali QRD";
+       compatible = "qcom,kaanapali-qrd", "qcom,kaanapali";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart7;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       clocks {
+               xo_board: xo-board {
+                       compatible = "fixed-clock";
+                       clock-frequency = <76800000>;
+                       #clock-cells = <0>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32764>;
+                       #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>;
+               };
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pmh0101-rpmh-regulators";
+               qcom,pmic-id = "B_E0";
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <4000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2704000>;
+                       regulator-max-microvolt = <3552000>;
+                       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_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3048000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4b_1p8: ldo4 {
+                       regulator-name = "vreg_l4b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3100000>;
+                       regulator-max-microvolt = <3148000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               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_l10b_1p8: ldo10 {
+                       regulator-name = "vreg_l10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l11b_1p0: ldo11 {
+                       regulator-name = "vreg_l11b_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1292000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               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>;
+               };
+
+               vreg_l18b_1p2: ldo18 {
+                       regulator-name = "vreg_l18b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "D_E0";
+
+               vreg_s10d_1p0: smps10 {
+                       regulator-name = "vreg_s10d_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1d_1p2: ldo1 {
+                       regulator-name = "vreg_l1d_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <958000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3d_0p8: ldo3 {
+                       regulator-name = "vreg_l3d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4d_1p2: ldo4 {
+                       regulator-name = "vreg_l4d_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "F_E0";
+
+               vreg_s6f_0p5: smps6 {
+                       regulator-name = "vreg_s6f_0p5";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <570000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s7f_1p2: smps7 {
+                       regulator-name = "vreg_s7f_1p2";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1372000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s8f_1p8: smps8 {
+                       regulator-name = "vreg_s8f_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_1p2: ldo1 {
+                       regulator-name = "vreg_l1f_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2f_1p2: ldo2 {
+                       regulator-name = "vreg_l2f_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3f_0p8: ldo3 {
+                       regulator-name = "vreg_l3f_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <936000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4f_0p8: ldo4 {
+                       regulator-name = "vreg_l4f_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "G_E0";
+
+               vreg_s7g_0p9: smps7 {
+                       regulator-name = "vreg_s7g_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s9g_1p0: smps9 {
+                       regulator-name = "vreg_s9g_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1g_1p2: ldo1 {
+                       regulator-name = "vreg_l1g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l2g_1p8: ldo2 {
+                       regulator-name = "vreg_l2g_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3g_1p2: ldo3 {
+                       regulator-name = "vreg_l3g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l4g_0p9: ldo4 {
+                       regulator-name = "vreg_l4g_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmh0110-rpmh-regulators";
+               qcom,pmic-id = "I_E0";
+
+               vreg_s7i_0p9: smps7 {
+                       regulator-name = "vreg_s7i_0p9";
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <972000>;
+                       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_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_AUTO>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pmh0104-rpmh-regulators";
+               qcom,pmic-id = "J_E1";
+
+               vreg_s1j_0p8: smps1 {
+                       regulator-name = "vreg_s1j_0p8";
+                       regulator-min-microvolt = <400000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2j_0p8: smps2 {
+                       regulator-name = "vreg_s2j_0p8";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3j_1p2: smps3 {
+                       regulator-name = "vreg_s3j_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4j_0p7: smps4 {
+                       regulator-name = "vreg_s4j_0p7";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pmr735d-rpmh-regulators";
+               qcom,pmic-id = "K_E1";
+
+               vreg_l1k_0p8: ldo1 {
+                       regulator-name = "vreg_l1k_0p8";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2k_0p7: ldo2 {
+                       regulator-name = "vreg_l2k_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3k_1p2: ldo3 {
+                       regulator-name = "vreg_l3k_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_l4k_1p0: ldo4 {
+                       regulator-name = "vreg_l4k_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       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_l5k_0p7: ldo5 {
+                       regulator-name = "vreg_l5k_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6k_1p7: ldo6 {
+                       regulator-name = "vreg_l6k_1p7";
+                       regulator-min-microvolt = <1700000>;
+                       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>;
+               };
+
+               vreg_l7k_0p7: ldo7 {
+                       regulator-name = "vreg_l7k_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <848000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "M_E1";
+
+               vreg_l1m_1p0: ldo1 {
+                       regulator-name = "vreg_l1m_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2m_1p0: ldo2 {
+                       regulator-name = "vreg_l2m_1p0";
+                       regulator-min-microvolt = <1096000>;
+                       regulator-max-microvolt = <1104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3m_2p8: ldo3 {
+                       regulator-name = "vreg_l3m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4m_2p2: ldo4 {
+                       regulator-name = "vreg_l4m_2p2";
+                       regulator-min-microvolt = <2200000>;
+                       regulator-max-microvolt = <2200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6m_2p8: ldo6 {
+                       regulator-name = "vreg_l6m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7m_2p8: ldo7 {
+                       regulator-name = "vreg_l7m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-8 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "N_E1";
+
+               vreg_l1n_1p1: ldo1 {
+                       regulator-name = "vreg_l1n_1p1";
+                       regulator-min-microvolt = <1096000>;
+                       regulator-max-microvolt = <1104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2n_1p2: ldo2 {
+                       regulator-name = "vreg_l2n_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_l3n_1p8: ldo3 {
+                       regulator-name = "vreg_l3n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4n_1p8: ldo4 {
+                       regulator-name = "vreg_l4n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5n_2p8: ldo5 {
+                       regulator-name = "vreg_l5n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6n_2p8: ldo6 {
+                       regulator-name = "vreg_l6n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7n_3p3: ldo7 {
+                       regulator-name = "vreg_l7n_3p3";
+                       regulator-min-microvolt = <3304000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&sdhc_2 {
+       cd-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&vreg_l9b_2p9>;
+       vqmmc-supply = <&vreg_l8b_1p8>;
+
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+
+       pinctrl-0 = <&sdc2_default>;
+       pinctrl-1 = <&sdc2_sleep>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <36 4>, /* NFC eSE SPI */
+                              <74 1>, /* eSE */
+                              <119 2>, /* SoCCP */
+                              <144 4>; /* CXM UART */
+};
+
+&uart7 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 217 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1200000>;
+       vccq-supply = <&vreg_l4d_1p2>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l4g_0p9>;
+       vdda-pll-supply = <&vreg_l1d_1p2>;
+
+       status = "okay";
+};
diff --git a/src/arm64/qcom/kaanapali.dtsi b/src/arm64/qcom/kaanapali.dtsi
new file mode 100644 (file)
index 0000000..9ef57ad
--- /dev/null
@@ -0,0 +1,1606 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include <dt-bindings/clock/qcom,kaanapali-gcc.h>
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm8750-tcsr.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,kaanapali-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-rpmpd.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/soc/qcom,rpmh-rsc.h>
+
+#include "kaanapali-ipcc.h"
+
+/ {
+       interrupt-parent = <&intc>;
+
+       #address-cells = <2>;
+       #size-cells = <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";
+                       clocks = <&pdp_scmi_perf 0>;
+
+                       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";
+                       clocks = <&pdp_scmi_perf 0>;
+               };
+
+               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";
+                       clocks = <&pdp_scmi_perf 0>;
+               };
+
+               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";
+                       clocks = <&pdp_scmi_perf 0>;
+               };
+
+               cpu4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x400>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_0>;
+                       power-domains = <&cpu_pd4>;
+                       power-domain-names = "psci";
+                       clocks = <&pdp_scmi_perf 0>;
+               };
+
+               cpu5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x500>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_0>;
+                       power-domains = <&cpu_pd5>;
+                       power-domain-names = "psci";
+                       clocks = <&pdp_scmi_perf 0>;
+               };
+
+               cpu6: cpu@10000 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x10000>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_1>;
+                       power-domains = <&cpu_pd6>;
+                       power-domain-names = "psci";
+                       clocks = <&pdp_scmi_perf 1>;
+
+                       l2_1: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                       };
+               };
+
+               cpu7: cpu@10100 {
+                       device_type = "cpu";
+                       compatible = "qcom,oryon";
+                       reg = <0x0 0x10100>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_1>;
+                       power-domains = <&cpu_pd7>;
+                       power-domain-names = "psci";
+                       clocks = <&pdp_scmi_perf 1>;
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+
+                               core4 {
+                                       cpu = <&cpu4>;
+                               };
+
+                               core5 {
+                                       cpu = <&cpu5>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu6>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       cluster0_c4: cpu-sleep-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "retention";
+                               arm,psci-suspend-param = <0x00000004>;
+                               entry-latency-us = <93>;
+                               exit-latency-us = <129>;
+                               min-residency-us = <560>;
+                       };
+
+                       cluster1_c4: cpu-sleep-1 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "retention";
+                               arm,psci-suspend-param = <0x00000004>;
+                               entry-latency-us = <172>;
+                               exit-latency-us = <130>;
+                               min-residency-us = <686>;
+                       };
+               };
+
+               domain-idle-states {
+                       cluster_cl5: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x01000054>;
+                               entry-latency-us = <2150>;
+                               exit-latency-us = <1983>;
+                               min-residency-us = <9144>;
+                       };
+
+                       domain_ss3: domain-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x0200c354>;
+                               entry-latency-us = <2800>;
+                               exit-latency-us = <4400>;
+                               min-residency-us = <10150>;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-kaanapali", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x19000>;
+                       interconnects = <&aggre_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+               };
+
+               scmi: scmi {
+                       compatible = "arm,scmi";
+                       mboxes = <&pdp0_mbox 0>, <&pdp0_mbox 1>;
+                       mbox-names = "tx", "rx";
+                       shmem = <&pdp_tx>, <&pdp_rx>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       pdp_scmi_perf: protocol@13 {
+                               reg = <0x13>;
+                               #clock-cells = <1>;
+                       };
+               };
+       };
+
+       clk_virt: interconnect-0 {
+               compatible = "qcom,kaanapali-clk-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       mc_virt: interconnect-1 {
+               compatible = "qcom,kaanapali-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 = <0x0 0xa0000000 0x0 0x0>;
+       };
+
+       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 = <&cluster0_c4>;
+               };
+
+               cpu_pd1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster0_c4>;
+               };
+
+               cpu_pd2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster0_c4>;
+               };
+
+               cpu_pd3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster0_c4>;
+               };
+
+               cpu_pd4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster0_c4>;
+               };
+
+               cpu_pd5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster0_c4>;
+               };
+
+               cpu_pd6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster1_c4>;
+               };
+
+               cpu_pd7: power-domain-cpu7 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&cluster1_c4>;
+               };
+
+               cluster_pd: power-domain-cluster {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&cluster_cl5>;
+                       power-domains = <&system_pd>;
+               };
+
+               system_pd: power-domain-system {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&domain_ss3>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               pdp_mem: pdp@81300000 {
+                       reg = <0x0 0x81300000 0x0 0x100000>;
+                       no-map;
+               };
+
+               aop_cmd_db_mem: aop-cmd-db@81c60000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x81c60000 0x0 0x20000>;
+                       no-map;
+               };
+
+               smem_mem: smem@81d00000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x81d00000 0x0 0x200000>;
+                       hwlocks = <&tcsr_mutex 3>;
+                       no-map;
+               };
+
+               pdp_ns_shared_mem: pdp-ns-shared@81f00000 {
+                       reg = <0x0 0x81f00000 0x0 0x100000>;
+                       no-map;
+               };
+
+               dsm_partition_1_mem: dsm-partition-1@84a00000 {
+                       reg = <0x0 0x84a00000 0x0 0x5500000>;
+                       no-map;
+               };
+
+               dsm_partition_2_mem: dsm-partition-2@89f00000 {
+                       reg = <0x0 0x89f00000 0x0 0xa80000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@8aa00000 {
+                       reg = <0x0 0x8aa00000 0x0 0xeb00000>;
+                       no-map;
+               };
+
+               q6_mpss_dtb_mem: q6-mpss-dtb@99500000 {
+                       reg = <0x0 0x99500000 0x0 0x80000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw@99580000 {
+                       reg = <0x0 0x99580000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: ipa-gsi@99590000 {
+                       reg = <0x0 0x99590000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_microcode_mem: gpu-microcode@9959a000 {
+                       reg = <0x0 0x9959a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               camera_mem: camera@99600000 {
+                       reg = <0x0 0x99600000 0x0 0x800000>;
+                       no-map;
+               };
+
+               camera_2_mem: camera-2@99e00000 {
+                       reg = <0x0 0x99e00000 0x0 0x800000>;
+                       no-map;
+               };
+
+               video_mem: video@9a600000 {
+                       reg = <0x0 0x9a600000 0x0 0x800000>;
+                       no-map;
+               };
+
+               cvp_mem: cvp@9ae00000 {
+                       reg = <0x0 0x9ae00000 0x0 0x700000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp@9b500000 {
+                       reg = <0x0 0x9b500000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               q6_cdsp_dtb_mem: q6-cdsp-dtb@9ce00000 {
+                       reg = <0x0 0x9ce00000 0x0 0x80000>;
+                       no-map;
+               };
+
+               soccp_mem: soccp@a03d0000 {
+                       reg = <0x0 0xa03d0000 0x0 0x500000>;
+                       no-map;
+               };
+
+               soccp_dtb_mem: soccp-dtb@a08d0000 {
+                       reg = <0x0 0xa08d0000 0x0 0x40000>;
+                       no-map;
+               };
+
+               q6_adsp_dtb_mem: q6-adsp-dtb@a1380000 {
+                       reg = <0x0 0xa1380000 0x0 0x80000>;
+                       no-map;
+               };
+
+               adspslpi_mem: adspslpi@a1400000 {
+                       reg = <0x0 0xa1400000 0x0 0x4c00000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs@d7c00000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0xd7c00000 0x0 0x400000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
+               };
+       };
+
+       soc: soc@0 {
+               compatible = "simple-bus";
+
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-ranges = <0x0 0x0 0x0 0x0 0x10 0x0>;
+               ranges = <0x0 0x0 0x0 0x0 0x10 0x0>;
+
+               gcc: clock-controller@100000 {
+                       compatible = "qcom,kaanapali-gcc";
+                       reg = <0x0 0x00100000 0x0 0x1f4200>;
+
+                       clocks = <&bi_tcxo_div2>,
+                                <&bi_tcxo_ao_div2>,
+                                <&sleep_clk>,
+                                <&pcie0_phy>,
+                                <&ufs_mem_phy 0>,
+                                <&ufs_mem_phy 1>,
+                                <&ufs_mem_phy 2>,
+                                <0>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               qupv3_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AXI_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       iommus = <&apps_smmu 0xa3 0x0>;
+
+                       dma-coherent;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       uart7: serial@a9c000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0x0 0x00a9c000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 835 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_ACTIVE_ONLY
+                                                &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart7_default>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+               };
+
+               ipcc: mailbox@1106000 {
+                       compatible = "qcom,kaanapali-ipcc", "qcom,ipcc";
+                       reg = <0x0 0x01106000 0x0 0x1000>;
+
+                       interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+
+                       #mbox-cells = <2>;
+               };
+
+               cnoc_main: interconnect@1500000 {
+                       compatible = "qcom,kaanapali-cnoc-main";
+                       reg = <0x0 0x01500000 0x0 0x1a080>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               config_noc: interconnect@1600000 {
+                       compatible = "qcom,kaanapali-cnoc-cfg";
+                       reg = <0x0 0x01600000 0x0 0x6200>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               system_noc: interconnect@1680000 {
+                       compatible = "qcom,kaanapali-system-noc";
+                       reg = <0x0 0x01680000 0x0 0x1f080>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               pcie_noc: interconnect@16c0000 {
+                       compatible = "qcom,kaanapali-pcie-anoc";
+                       reg = <0x0 0x016c0000 0x0 0x11400>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+                       clocks = <&gcc GCC_AGGRE_NOC_PCIE_AXI_CLK>,
+                                <&gcc GCC_CFG_NOC_PCIE_ANOC_AHB_CLK>;
+               };
+
+               aggre_noc: interconnect@16e0000 {
+                       compatible = "qcom,kaanapali-aggre-noc";
+                       reg = <0x0 0x016e0000 0x0 0x42400>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&rpmhcc RPMH_IPA_CLK>;
+               };
+
+               mmss_noc: interconnect@1780000 {
+                       compatible = "qcom,kaanapali-mmss-noc";
+                       reg = <0x0 0x01780000 0x0 0x5b800>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               pcie0: pcie@1c00000 {
+                       device_type = "pci";
+                       compatible = "qcom,kaanapali-pcie", "qcom,pcie-sm8550";
+                       reg = <0x0 0x01c00000 0x0 0x3000>,
+                             <0x0 0x40000000 0x0 0xf1d>,
+                             <0x0 0x40000f20 0x0 0xa8>,
+                             <0x0 0x40001000 0x0 0x1000>,
+                             <0x0 0x40100000 0x0 0x100000>,
+                             <0x0 0x01c03000 0x0 0x1000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config",
+                                   "mhi";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x23d00000>;
+
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi0",
+                                         "msi1",
+                                         "msi2",
+                                         "msi3",
+                                         "msi4",
+                                         "msi5",
+                                         "msi6",
+                                         "msi7",
+                                         "global";
+
+                       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>,
+                                <&gcc GCC_PCIE_0_LINK_DOWN_BCR>;
+                       reset-names = "pci",
+                                     "link_down";
+
+                       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_ACTIVE_ONLY
+                                        &cnoc_main SLAVE_PCIE_0 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "pcie-mem",
+                                            "cpu-pcie";
+
+                       power-domains = <&gcc GCC_PCIE_0_GDSC>;
+
+                       eq-presets-8gts = /bits/ 16 <0x5555 0x5555>;
+
+                       operating-points-v2 = <&pcie0_opp_table>;
+
+                       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>;
+
+                       msi-map = <0x0 &gic_its 0x1400 0x1>,
+                                 <0x100 &gic_its 0x1401 0x1>;
+                       msi-map-mask = <0xff00>;
+                       max-link-speed = <3>;
+                       linux,pci-domain = <0>;
+                       num-lanes = <2>;
+                       bus-range = <0x00 0xff>;
+
+                       dma-coherent;
+
+                       status = "disabled";
+
+                       pcie0_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               /* GEN 1 x1 */
+                               opp-2500000 {
+                                       opp-hz = /bits/ 64 <2500000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                                       opp-peak-kBps = <250000 1>;
+                               };
+
+                               /* GEN 1 x2 and GEN 2 x1 */
+                               opp-5000000 {
+                                       opp-hz = /bits/ 64 <5000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                                       opp-peak-kBps = <500000 1>;
+                               };
+
+                               /* GEN 2 x2 */
+                               opp-10000000 {
+                                       opp-hz = /bits/ 64 <10000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                                       opp-peak-kBps = <1000000 1>;
+                               };
+
+                               /* GEN 3 x1 */
+                               opp-8000000 {
+                                       opp-hz = /bits/ 64 <8000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <984500 1>;
+                               };
+
+                               /* GEN 3 x2 */
+                               opp-16000000 {
+                                       opp-hz = /bits/ 64 <16000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <1969000 1>;
+                               };
+                       };
+
+                       pcie_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                               phys = <&pcie0_phy>;
+                       };
+               };
+
+               pcie0_phy: phy@1c06000 {
+                       compatible = "qcom,kaanapali-qmp-gen3x2-pcie-phy";
+                       reg = <0x0 0x01c06000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_PCIE_0_PHY_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>,
+                                <&gcc GCC_PCIE_0_NOCSR_COM_PHY_BCR>;
+                       reset-names = "phy",
+                                     "phy_nocsr";
+
+                       power-domains = <&gcc GCC_PCIE_0_PHY_GDSC>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "pcie0_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy@1d80000 {
+                       compatible = "qcom,kaanapali-qmp-ufs-phy", "qcom,sm8750-qmp-ufs-phy";
+                       reg = <0x0 0x01d80000 0x0 0x2000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&tcsr TCSR_UFS_CLKREF_EN>;
+
+                       clock-names = "ref",
+                                     "ref_aux",
+                                     "qref";
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+
+                       power-domains = <&gcc GCC_UFS_MEM_PHY_GDSC>;
+
+                       #clock-cells = <1>;
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               ufs_mem_hc: ufs@1d84000 {
+                       compatible = "qcom,kaanapali-ufshc",
+                                    "qcom,ufshc",
+                                    "jedec,ufs-2.0";
+                       reg = <0x0 0x01d84000 0x0 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>,
+                                <&rpmhcc RPMH_LN_BB_CLK3>,
+                                <&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";
+
+                       operating-points-v2 = <&ufs_opp_table>;
+
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       interconnects = <&aggre_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "ufs-ddr",
+                                            "cpu-ufs";
+
+                       power-domains = <&gcc GCC_UFS_PHY_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       iommus = <&apps_smmu 0x60 0x0>;
+                       dma-coherent;
+
+                       lanes-per-direction = <2>;
+                       qcom,ice = <&ice>;
+
+                       phys = <&ufs_mem_phy>;
+                       phy-names = "ufsphy";
+
+                       #reset-cells = <1>;
+
+                       status = "disabled";
+
+                       ufs_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-75000000 {
+                                       opp-hz = /bits/ 64 <75000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <75000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>;
+                                       required-opps = <&rpmhpd_opp_low_svs_d1>;
+                               };
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <100000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-403000000 {
+                                       opp-hz = /bits/ 64 <403000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <403000000>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>,
+                                                /bits/ 64 <0>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
+               };
+
+               ice: crypto@1d88000 {
+                       compatible = "qcom,kaanapali-inline-crypto-engine",
+                                    "qcom,inline-crypto-engine";
+                       reg = <0x0 0x01d88000 0x0 0x18000>;
+
+                       clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x0 0x01f40000 0x0 0x20000>;
+                       #hwlock-cells = <1>;
+               };
+
+               tcsr: clock-controller@1fc0000 {
+                       compatible = "qcom,kaanapali-tcsr", "syscon";
+                       reg = <0x0 0x01fc0000 0x0 0x30000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
+               lpass_lpiaon_noc: interconnect@7400000 {
+                       compatible = "qcom,kaanapali-lpass-lpiaon-noc";
+                       reg = <0x0 0x07400000 0x0 0x19080>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               lpass_lpicx_noc: interconnect@7420000 {
+                       compatible = "qcom,kaanapali-lpass-lpicx-noc";
+                       reg = <0x0 0x07420000 0x0 0x44080>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               lpass_ag_noc: interconnect@7f40000 {
+                       compatible = "qcom,kaanapali-lpass-ag-noc";
+                       reg = <0x0 0x07f40000 0x0 0xe080>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               sdhc_2: mmc@8804000 {
+                       compatible = "qcom,kaanapali-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x08804000 0x0 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 = <&aggre_noc MASTER_SDCC_2 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_SDCC_2 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "sdhc-ddr", "cpu-sdhc";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       operating-points-v2 = <&sdhc2_opp_table>;
+
+                       qcom,dll-config = <0x0007442c>;
+                       qcom,ddr-config = <0x80040868>;
+
+                       iommus = <&apps_smmu 0x540 0x0>;
+                       dma-coherent;
+
+                       resets = <&gcc GCC_SDCC2_BCR>;
+                       status = "disabled";
+
+                       sdhc2_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       opp-peak-kBps = <160000 100000>;
+                                       opp-avg-kBps = <50000 0>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       opp-peak-kBps = <200000 120000>;
+                                       opp-avg-kBps = <104000 0>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,kaanapali-pdc", "qcom,pdc";
+                       reg = <0x0 0x0b220000 0x0 0x10000>,
+                             <0x0 0x179600f0 0x0 0xf4>;
+
+                       qcom,pdc-ranges = <0 745 38>,
+                                         <40 785 11>,
+                                         <51 527 4>,
+                                         <58 534 2>,
+                                         <61 537 20>,
+                                         <84 559 14>,
+                                         <98 609 32>,
+                                         <130 717 12>,
+                                         <142 251 5>,
+                                         <147 796 16>,
+                                         <163 783 2>,
+                                         <165 531 2>,
+                                         <167 536 1>,
+                                         <168 557 2>,
+                                         <170 415 1>,
+                                         <171 438 1>,
+                                         <172 579 1>,
+                                         <173 703 1>,
+                                         <174 708 1>,
+                                         <175 714 1>,
+                                         <176 68 1>,
+                                         <177 86 1>,
+                                         <178 96 1>,
+                                         <179 249 1>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               aoss_qmp: power-management@c300000 {
+                       compatible = "qcom,kaanapali-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0x0 0x0c300000 0x0 0x400>;
+
+                       interrupts-extended = <&ipcc IPCC_MPROC_AOP
+                                                    IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                    IRQ_TYPE_EDGE_RISING>;
+
+                       mboxes = <&ipcc IPCC_MPROC_AOP
+                                       IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                       #clock-cells = <0>;
+               };
+
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,kaanapali-tlmm";
+                       reg = <0x0 0x0f100000 0x0 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&tlmm 0 0 218>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       wakeup-parent = <&pdc>;
+
+                       qup_uart7_default: qup-uart7-state {
+                                /* TX, RX */
+                                pins = "gpio62", "gpio63";
+                                function = "qup1_se7";
+                                drive-strength = <2>;
+                                bias-disable;
+                       };
+
+                       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;
+                               };
+
+                               card-detect-pins {
+                                       pins = "gpio55";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       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;
+                               };
+
+                               card-detect-pins {
+                                       pins = "gpio55";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+               };
+
+               sram@14680000 {
+                       compatible = "qcom,kaanapali-imem", "mmio-sram";
+                       reg = <0x0 0x14680000 0x0 0x1000>;
+                       ranges = <0x0 0x0 0x14680000 0x1000>;
+
+                       no-memory-wc;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       pil-sram@94c {
+                               compatible = "qcom,pil-reloc-info";
+                               reg = <0x94c 0xc8>;
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,kaanapali-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x15000000 0x0 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>,
+                                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 501 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 502 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+
+                       dma-coherent;
+               };
+
+               intc: interrupt-controller@17000000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0x0 0x17000000 0x0 0x10000>,
+                             <0x0 0x17080000 0x0 0x200000>;
+
+                       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 = <0x0 0x17040000 0x0 0x20000>;
+
+                               msi-controller;
+                               #msi-cells = <1>;
+                       };
+               };
+
+               watchdog@17600000 {
+                       compatible = "qcom,apss-wdt-kaanapali", "qcom,kpss-wdt";
+                       reg = <0x0 0x17600000 0x0 0x1000>;
+                       clocks = <&sleep_clk>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
+               };
+
+               pdp0_mbox: mailbox@17610000 {
+                       compatible = "qcom,kaanapali-cpucp-mbox", "qcom,x1e80100-cpucp-mbox";
+                       reg = <0x0 0x17610000 0x0 0x8000>, <0x0 0x19980000 0x0 0x8000>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+               };
+
+               timer@17810000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x0 0x17810000 0x0 0x1000>;
+
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x0 0x0 0x20000000>;
+
+                       frame@17811000 {
+                               reg = <0x0 0x17811000 0x1000>,
+                                     <0x0 0x17812000 0x1000>;
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       frame@17813000 {
+                               reg = <0x0 0x17813000 0x1000>;
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17815000 {
+                               reg = <0x0 0x17815000 0x1000>;
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17817000 {
+                               reg = <0x0 0x17817000 0x1000>;
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@17819000 {
+                               reg = <0x0 0x17819000 0x1000>;
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@1781b000 {
+                               reg = <0x0 0x1781b000 0x1000>;
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       frame@1781d000 {
+                               reg = <0x0 0x1781d000 0x1000>;
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@18900000 {
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x0 0x18900000 0x0 0x10000>,
+                             <0x0 0x18910000 0x0 0x10000>,
+                             <0x0 0x18920000 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>;
+
+                       power-domains = <&system_pd>;
+                       label = "apps_rsc";
+
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS 3>,
+                                         <SLEEP_TCS 2>,
+                                         <WAKE_TCS 2>,
+                                         <CONTROL_TCS 0>;
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,kaanapali-rpmh-clk";
+                               #clock-cells = <1>;
+                               clocks = <&xo_board>;
+                               clock-names = "xo";
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,kaanapali-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_low_svs_d3: opp-50 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D3>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d2_1: opp-51 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2_1>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d2: opp-52 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d1_1: opp-54 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1_1>;
+                                       };
+
+                                       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_l0: opp-76 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L0>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_l1: opp-80 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_l2: opp-96 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L2>;
+                                       };
+
+                                       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_svs_l2: opp-224 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                                       };
+
+                                       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_l0: opp-400 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L0>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp-416 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l2: opp-432 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l3: opp-448 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L3>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l4: opp-452 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L4>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l5: opp-456 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L5>;
+                                       };
+
+                                       rpmhpd_opp_super_turbo_no_cpr: opp-480 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SUPER_TURBO_NO_CPR>;
+                                       };
+                               };
+                       };
+               };
+
+               nsp_noc: interconnect@260c0000 {
+                       compatible = "qcom,kaanapali-nsp-noc";
+                       reg = <0x0 0x260c0000 0x0 0x21280>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               /* Cluster 0 */
+               pmu@310b3400  {
+                       compatible = "qcom,kaanapali-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0x0 0x310b3400 0x0 0x600>;
+
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 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 = <2188000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <5412000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <6220000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <6832000>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <8368000>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <10944000>;
+                               };
+
+                               opp-6 {
+                                       opp-peak-kBps = <12748000>;
+                               };
+
+                               opp-7 {
+                                       opp-peak-kBps = <14744000>;
+                               };
+
+                               opp-8 {
+                                       opp-peak-kBps = <16896000>;
+                               };
+
+                               opp-9 {
+                                       opp-peak-kBps = <19120000>;
+                               };
+
+                               opp-10 {
+                                       opp-peak-kBps = <21332000>;
+                               };
+                       };
+               };
+
+               /* Cluster 1 */
+               pmu@310b7400  {
+                       compatible = "qcom,kaanapali-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0x0 0x310b7400 0x0 0x600>;
+
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+               };
+
+               gem_noc: interconnect@31100000 {
+                       compatible = "qcom,kaanapali-gem-noc";
+                       reg = <0x0 0x31100000 0x0 0x153080>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       #interconnect-cells = <2>;
+               };
+
+               system-cache-controller@31800000 {
+                       compatible = "qcom,kaanapali-llcc";
+                       reg = <0x0 0x31800000 0x0 0x200000>,
+                             <0x0 0x32800000 0x0 0x200000>,
+                             <0x0 0x31c00000 0x0 0x200000>,
+                             <0x0 0x32c00000 0x0 0x200000>,
+                             <0x0 0x34800000 0x0 0x200000>,
+                             <0x0 0x34c00000 0x0 0x200000>;
+                       reg-names = "llcc0_base",
+                                   "llcc1_base",
+                                   "llcc2_base",
+                                   "llcc3_base",
+                                   "llcc_broadcast_base",
+                                   "llcc_broadcast_and_base";
+
+                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               sram: sram@81f08000 {
+                       compatible = "mmio-sram";
+                       reg = <0x0 0x81f08000 0x0 0x200>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x81f08000 0x200>;
+
+                       pdp_rx: scp-sram-section@0 {
+                               compatible = "arm,scmi-shmem";
+                               reg = <0x0 0x80>;
+                       };
+
+                       pdp_tx: scp-sram-section@100 {
+                               compatible = "arm,scmi-shmem";
+                               reg = <0x100 0x80>;
+                       };
+               };
+       };
+
+       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 c2ccbb67f800cb9927627f991e3d97174cc73c64..6079e67ea829b5233bb87fdcb37d8a05d30fb87b 100644 (file)
                        qcom,client-id = <1>;
                        qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
                };
+
+               adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap@9cb80000 {
+                       reg = <0x0 0x9cb80000 0x0 0x800000>;
+                       no-map;
+               };
        };
 
        cpus {
 
                        status = "disabled";
 
-                       pcie@0 {
+                       pcie1_port0: pcie@0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                bus-range = <0x01 0xff>;
                        compatible = "qcom,sc7280-lpass-lpi-pinctrl";
                        reg = <0 0x033c0000 0x0 0x20000>,
                                <0 0x03550000 0x0 0x10000>;
+
+                       clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
+                                <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+                       clock-names = "core", "audio";
+
                        gpio-controller;
                        #gpio-cells = <2>;
                        gpio-ranges = <&lpass_tlmm 0 0 15>;
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "adsp";
                                        qcom,non-secure-domain;
+                                       memory-region = <&adsp_rpc_remote_heap_mem>;
+                                       qcom,vmids = <QCOM_SCM_VMID_LPASS
+                                                     QCOM_SCM_VMID_ADSP_HEAP>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
diff --git a/src/arm64/qcom/lemans-el2.dtso b/src/arm64/qcom/lemans-el2.dtso
new file mode 100644 (file)
index 0000000..ed615dc
--- /dev/null
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/*
+ * Lemans specific modifications required to boot in EL2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&iris {
+       status = "disabled";
+};
+
+&remoteproc_adsp {
+       iommus = <&apps_smmu 0x3000 0x0>;
+};
+
+&remoteproc_cdsp0 {
+       iommus = <&apps_smmu 0x21c0 0x0400>;
+};
+
+&remoteproc_cdsp1 {
+       iommus = <&apps_smmu 0x29c0 0x0400>;
+};
+
+&remoteproc_gpdsp0 {
+       iommus = <&apps_smmu 0x38a0 0x0>;
+};
+
+&remoteproc_gpdsp1 {
+       iommus = <&apps_smmu 0x38c0 0x0>;
+};
index b40fa203e4a2f080f501140fd1c68b72d797fd00..90fce947ca7e5c4af49952b012647664cffbb687 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       connector-0 {
+               compatible = "usb-c-connector";
+               label = "USB0-Type-C";
+               data-role = "dual";
+               power-role = "dual";
+
+               vbus-supply = <&vbus_supply_regulator_0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               usb0_con_hs_ep: endpoint {
+                                       remote-endpoint = <&usb_0_dwc3_hs>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               usb0_con_ss_ep: endpoint {
+                                       remote-endpoint = <&hd3ss3220_in_ep>;
+                               };
+                       };
+               };
+       };
+
        edp0-connector {
                compatible = "dp-connector";
                label = "EDP0";
                };
        };
 
+       vbus_supply_regulator_0: regulator-vbus-supply-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vbus_supply_0";
+               gpio = <&expander1 2 GPIO_ACTIVE_HIGH>;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+       };
+
        vmmc_sdc: regulator-vmmc-sdc {
                compatible = "regulator-fixed";
 
        status = "okay";
 };
 
+&gpu {
+       status = "okay";
+};
+
+&gpu_zap_shader {
+       firmware-name = "qcom/sa8775p/a663_zap.mbn";
+};
+
+&i2c11 {
+       status = "okay";
+
+       usb-typec@67 {
+               compatible = "ti,hd3ss3220";
+               reg = <0x67>;
+
+               interrupts-extended = <&pmm8654au_2_gpios 5 IRQ_TYPE_EDGE_FALLING>;
+
+               id-gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&usb_id>, <&usb0_intr_state>;
+               pinctrl-names = "default";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               hd3ss3220_in_ep: endpoint {
+                                       remote-endpoint = <&usb0_con_ss_ep>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hd3ss3220_out_ep: endpoint {
+                                       remote-endpoint = <&usb_0_dwc3_ss>;
+                               };
+                       };
+               };
+       };
+};
+
 &i2c18 {
        status = "okay";
 
        status = "okay";
 };
 
+&pmm8654au_2_gpios {
+       usb0_intr_state: usb0-intr-state {
+               pins = "gpio5";
+               function = "normal";
+               input-enable;
+               bias-pull-up;
+               power-source = <0>;
+       };
+};
+
 &qup_i2c19_default {
        drive-strength = <2>;
        bias-pull-up;
        clock-frequency = <32768>;
 };
 
+&spi16 {
+       status = "okay";
+
+       tpm@0 {
+               compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
 &tlmm {
        ethernet0_default: ethernet0-default-state {
                ethernet0_mdc: ethernet0-mdc-pins {
                };
        };
 
+       qup_i2c11_default: qup-i2c11-state {
+               pins = "gpio48", "gpio49";
+               function = "qup1_se4";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        sd_cd: sd-cd-state {
                pins = "gpio36";
                function = "gpio";
                bias-pull-up;
        };
+
+       usb_id: usb-id-state {
+               pins = "gpio50";
+               function = "gpio";
+               bias-pull-up;
+       };
 };
 
 &uart10 {
 };
 
 &usb_0 {
-       dr_mode = "peripheral";
-
        status = "okay";
 };
 
+&usb_0_dwc3_hs {
+       remote-endpoint = <&usb0_con_hs_ep>;
+};
+
+&usb_0_dwc3_ss {
+       remote-endpoint = <&hd3ss3220_out_ep>;
+};
+
 &usb_0_hsphy {
        vdda-pll-supply = <&vreg_l7a>;
        vdda18-supply = <&vreg_l6c>;
index c69aa2f41ce29f9f841cc6e6651a8efc38690e19..8fb7d1fc6d563288288d24eb5d8288e7748f2c16 100644 (file)
        };
 };
 
+&gpu {
+       status = "okay";
+};
+
+&gpu_zap_shader {
+       firmware-name = "qcom/sa8775p/a663_zap.mbn";
+};
+
 &i2c11 {
        clock-frequency = <400000>;
        status = "okay";
index 0b154d57ba24e69a9d900f06bbb22baa2781cc3f..808827b83553dd70904d771cc1da784c85fdc1a5 100644 (file)
@@ -21,6 +21,7 @@
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/soc/qcom,gpr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        interrupt-parent = <&intc>;
@@ -54,6 +55,7 @@
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&l2_0>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
@@ -83,6 +85,7 @@
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&l2_1>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&l2_2>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        next-level-cache = <&l2_3>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&l2_4>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&l2_5>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&l2_6>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        next-level-cache = <&l2_7>;
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                };
        };
 
-       aggre1_noc: interconnect-aggre1-noc {
-               compatible = "qcom,sa8775p-aggre1-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       aggre2_noc: interconnect-aggre2-noc {
-               compatible = "qcom,sa8775p-aggre2-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
        clk_virt: interconnect-clk-virt {
                compatible = "qcom,sa8775p-clk-virt";
                #interconnect-cells = <2>;
                qcom,bcm-voters = <&apps_bcm_voter>;
        };
 
-       config_noc: interconnect-config-noc {
-               compatible = "qcom,sa8775p-config-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       dc_noc: interconnect-dc-noc {
-               compatible = "qcom,sa8775p-dc-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       gem_noc: interconnect-gem-noc {
-               compatible = "qcom,sa8775p-gem-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       gpdsp_anoc: interconnect-gpdsp-anoc {
-               compatible = "qcom,sa8775p-gpdsp-anoc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       lpass_ag_noc: interconnect-lpass-ag-noc {
-               compatible = "qcom,sa8775p-lpass-ag-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
        mc_virt: interconnect-mc-virt {
                compatible = "qcom,sa8775p-mc-virt";
                #interconnect-cells = <2>;
                qcom,bcm-voters = <&apps_bcm_voter>;
        };
 
-       mmss_noc: interconnect-mmss-noc {
-               compatible = "qcom,sa8775p-mmss-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       nspa_noc: interconnect-nspa-noc {
-               compatible = "qcom,sa8775p-nspa-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       nspb_noc: interconnect-nspb-noc {
-               compatible = "qcom,sa8775p-nspb-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       pcie_anoc: interconnect-pcie-anoc {
-               compatible = "qcom,sa8775p-pcie-anoc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
-       system_noc: interconnect-system-noc {
-               compatible = "qcom,sa8775p-system-noc";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
        /* Will be updated by the bootloader. */
        memory@80000000 {
                device_type = "memory";
                        #mbox-cells = <2>;
                };
 
+               qfprom: efuse@784000 {
+                       compatible = "qcom,sa8775p-qfprom", "qcom,qfprom";
+                       reg = <0x0 0x00784000 0x0 0x3000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       gpu_speed_bin: gpu_speed_bin@240c {
+                               reg = <0x240c 0x1>;
+                               bits = <0 8>;
+                       };
+               };
+
                gpi_dma2: dma-controller@800000  {
                        compatible = "qcom,sa8775p-gpi-dma", "qcom,sm6350-gpi-dma";
                        reg = <0x0 0x00800000 0x0 0x60000>;
                        reg = <0 0x010d2000 0 0x1000>;
                };
 
+               config_noc: interconnect@14c0000 {
+                       compatible = "qcom,sa8775p-config-noc";
+                       reg = <0x0 0x014c0000 0x0 0x13080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system_noc: interconnect@1680000 {
+                       compatible = "qcom,sa8775p-system-noc";
+                       reg = <0x0 0x01680000 0x0 0x15080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre1_noc: interconnect@16c0000 {
+                       compatible = "qcom,sa8775p-aggre1-noc";
+                       reg = <0x0 0x016c0000 0x0 0x18080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_QUPV3_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB2_PRIM_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,sa8775p-aggre2-noc";
+                       reg = <0x0 0x01700000 0x0 0x1b080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&gcc GCC_AGGRE_UFS_CARD_AXI_CLK>,
+                                <&rpmhcc RPMH_IPA_CLK>;
+               };
+
+               pcie_anoc: interconnect@1760000 {
+                       compatible = "qcom,sa8775p-pcie-anoc";
+                       reg = <0x0 0x01760000 0x0 0xc080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               gpdsp_anoc: interconnect@1780000 {
+                       compatible = "qcom,sa8775p-gpdsp-anoc";
+                       reg = <0x0 0x01780000 0x0 0xe080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               mmss_noc: interconnect@17a0000 {
+                       compatible = "qcom,sa8775p-mmss-noc";
+                       reg = <0x0 0x017a0000 0x0 0x40000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                ufs_mem_hc: ufshc@1d84000 {
                        compatible = "qcom,sa8775p-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
                        reg = <0x0 0x01d84000 0x0 0x3000>;
                                 <&apps_smmu 0x481 0x00>;
                };
 
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sa8775p-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0x0 0x01dfa000 0x0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x480 0x0>,
+                                <&apps_smmu 0x481 0x0>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO_CORE0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "memory";
+               };
+
+               lpass_ag_noc: interconnect@3c40000 {
+                       compatible = "qcom,sa8775p-lpass-ag-noc";
+                       reg = <0x0 0x03c40000 0x0 0x17200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                ctcu@4001000 {
                        compatible = "qcom,sa8775p-ctcu";
                        reg = <0x0 0x04001000 0x0 0x1000>;
                                                <&apss_funnel1_out>;
                                        };
                                };
+
+                               port@5 {
+                                       reg = <5>;
+
+                                       funnel1_in5: endpoint {
+                                               remote-endpoint = <&dlct0_funnel_out>;
+                                       };
+                               };
                        };
                };
 
                        };
                };
 
+               tpda@4ad3000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x4ad3000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@10 {
+                                       reg = <16>;
+                                       dlct0_tpda_in16: endpoint {
+                                               remote-endpoint = <&turing0_funnel_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       dlct0_tpda_out: endpoint {
+                                               remote-endpoint =
+                                               <&dlct0_funnel_in0>;
+                                       };
+                               };
+                       };
+
+               };
+
+               funnel@4ad4000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x4ad4000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               port {
+                                       dlct0_funnel_in0: endpoint {
+                                               remote-endpoint = <&dlct0_tpda_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       dlct0_funnel_out: endpoint {
+                                               remote-endpoint = <&funnel1_in5>;
+                                       };
+                               };
+                       };
+               };
+
                funnel@4b04000 {
                        compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                        reg = <0x0 0x4b04000 0x0 0x1000>;
                        clock-names = "apb_pclk";
                };
 
+               funnel@4b83000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x4b83000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       turing0_funnel_in1: endpoint {
+                                               remote-endpoint = <&turing_llm_tpdm_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       turing0_funnel_out: endpoint {
+                                               remote-endpoint = <&dlct0_tpda_in16>;
+                                       };
+                               };
+                       };
+               };
+
                etm@6040000 {
                        compatible = "arm,primecell";
                        reg = <0x0 0x6040000 0x0 0x1000>;
                        reg = <0x0 0x0891c000 0x0 0x84>;
                };
 
+               dc_noc: interconnect@90e0000 {
+                       compatible = "qcom,sa8775p-dc-noc";
+                       reg = <0x0 0x090e0000 0x0 0x5080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               gem_noc: interconnect@9100000 {
+                       compatible = "qcom,sa8775p-gem-noc";
+                       reg = <0x0 0x09100000 0x0 0xf6080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                usb_0: usb@a600000 {
                        compatible = "qcom,sa8775p-dwc3", "qcom,snps-dwc3";
                        reg = <0 0x0a600000 0 0xfc100>;
                        snps,dis-u1-entry-quirk;
                        snps,dis-u2-entry-quirk;
 
+                       usb-role-switch;
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_0_dwc3_hs: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_0_dwc3_ss: endpoint {
+                                       };
+                               };
+                       };
                };
 
                usb_1: usb@a800000 {
                        reg = <0x0 0x1fc0000 0x0 0x30000>;
                };
 
+               gpu: gpu@3d00000 {
+                       compatible = "qcom,adreno-663.0", "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 0xc00>,
+                                <&adreno_smmu 1 0xc00>;
+                       operating-points-v2 = <&gpu_opp_table>;
+                       qcom,gmu = <&gmu>;
+                       interconnects = <&gem_noc MASTER_GFX3D QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "gfx-mem";
+                       #cooling-cells = <2>;
+
+                       nvmem-cells = <&gpu_speed_bin>;
+                       nvmem-cell-names = "speed_bin";
+
+                       status = "disabled";
+
+                       gpu_zap_shader: zap-shader {
+                               memory-region = <&pil_gpu_mem>;
+                       };
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-405000000 {
+                                       opp-hz = /bits/ 64 <405000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       opp-peak-kBps = <5285156>;
+                                       opp-supported-hw = <0x3>;
+                               };
+
+                               opp-530000000 {
+                                       opp-hz = /bits/ 64 <530000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       opp-peak-kBps = <12484375>;
+                                       opp-supported-hw = <0x2>;
+                               };
+
+                               opp-676000000 {
+                                       opp-hz = /bits/ 64 <676000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       opp-peak-kBps = <8171875>;
+                                       opp-supported-hw = <0x1>;
+                               };
+
+                               opp-778000000 {
+                                       opp-hz = /bits/ 64 <778000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       opp-peak-kBps = <10687500>;
+                                       opp-supported-hw = <0x1>;
+                               };
+
+                               opp-800000000 {
+                                       opp-hz = /bits/ 64 <800000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       opp-peak-kBps = <12484375>;
+                                       opp-supported-hw = <0x1>;
+                               };
+                       };
+               };
+
+               gmu: gmu@3d6a000 {
+                       compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu";
+                       reg = <0x0 0x03d6a000 0x0 0x34000>,
+                             <0x0 0x03de0000 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_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_CXO_CLK>,
+                                <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gpucc GPU_CC_AHB_CLK>,
+                                <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+                                <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
+                       clock-names = "gmu",
+                                     "cxo",
+                                     "axi",
+                                     "memnoc",
+                                     "ahb",
+                                     "hub",
+                                     "smmu_vote";
+                       power-domains = <&gpucc GPU_CC_CX_GDSC>,
+                                       <&gpucc GPU_CC_GX_GDSC>;
+                       power-domain-names = "cx",
+                                            "gx";
+                       iommus = <&adreno_smmu 5 0xc00>;
+                       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>;
+                               };
+                       };
+               };
+
                gpucc: clock-controller@3d90000 {
                        compatible = "qcom,sa8775p-gpucc";
                        reg = <0x0 0x03d90000 0x0 0xa000>;
                                        port@1 {
                                                reg = <1>;
 
-                                               mdss0_dsi0_out: endpoint{ };
+                                               mdss0_dsi0_out: endpoint { };
                                        };
                                };
 
                        status = "disabled";
                };
 
+               nspa_noc: interconnect@260c0000 {
+                       compatible = "qcom,sa8775p-nspa-noc";
+                       reg = <0x0 0x260c0000 0x0 0x16080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                remoteproc_cdsp0: remoteproc@26300000 {
                        compatible = "qcom,sa8775p-cdsp0-pas";
                        reg = <0x0 0x26300000 0x0 0x10000>;
                        };
                };
 
+               nspb_noc: interconnect@2a0c0000 {
+                       compatible = "qcom,sa8775p-nspb-noc";
+                       reg = <0x0 0x2a0c0000 0x0 0x16080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
                remoteproc_cdsp1: remoteproc@2a300000 {
                        compatible = "qcom,sa8775p-cdsp1-pas";
-                       reg = <0x0 0x2A300000 0x0 0x10000>;
+                       reg = <0x0 0x2a300000 0x0 0x10000>;
 
                        interrupts-extended = <&intc GIC_SPI 798 IRQ_TYPE_EDGE_RISING>,
                                              <&smp2p_cdsp1_in 0 IRQ_TYPE_EDGE_RISING>,
 
                        thermal-sensors = <&tsens0 5>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss0_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpuss0_alert0: trip-point0 {
                                        temperature = <105000>;
                                        hysteresis = <5000>;
                                        type = "passive";
 
                        thermal-sensors = <&tsens0 6>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss1_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpuss1_alert0: trip-point0 {
                                        temperature = <105000>;
                                        hysteresis = <5000>;
                                        type = "passive";
 
                        thermal-sensors = <&tsens0 7>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss2_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpuss2_alert0: trip-point0 {
                                        temperature = <105000>;
                                        hysteresis = <5000>;
                                        type = "passive";
 
                        thermal-sensors = <&tsens1 5>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss3_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpuss3_alert0: trip-point0 {
                                        temperature = <105000>;
                                        hysteresis = <5000>;
                                        type = "passive";
 
                        thermal-sensors = <&tsens1 6>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss4_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpuss4_alert0: trip-point0 {
                                        temperature = <105000>;
                                        hysteresis = <5000>;
                                        type = "passive";
 
                        thermal-sensors = <&tsens1 7>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss5_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpuss5_alert0: trip-point0 {
                                        temperature = <105000>;
                                        hysteresis = <5000>;
                                        type = "passive";
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
+       turing-llm-tpdm {
+               compatible = "qcom,coresight-static-tpdm";
+
+               qcom,cmb-element-bits = <32>;
+
+               out-ports {
+                       port {
+                               turing_llm_tpdm_out: endpoint {
+                                       remote-endpoint = <&turing0_funnel_in1>;
+                               };
+                       };
+               };
+       };
+
        pcie0: pcie@1c00000 {
                compatible = "qcom,pcie-sa8775p";
                reg = <0x0 0x01c00000 0x0 0x3000>,
diff --git a/src/arm64/qcom/milos-fairphone-fp6.dts b/src/arm64/qcom/milos-fairphone-fp6.dts
new file mode 100644 (file)
index 0000000..52895dd
--- /dev/null
@@ -0,0 +1,790 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Luca Weiss <luca.weiss@fairphone.com>
+ */
+
+/dts-v1/;
+
+#define PMIV0104_SID 7
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "milos.dtsi"
+#include "pm7550.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmiv0104.dtsi" /* PMIV0108 */
+#include "pmk8550.dtsi" /* PMK7635 */
+#include "pmr735b.dtsi"
+
+/ {
+       model = "The Fairphone (Gen. 6)";
+       compatible = "fairphone,fp6", "qcom,milos";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart5;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&volume_up_default>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&pm7550_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               switch {
+                       label = "Switch";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_HIGH>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_MUTE_DEVICE>;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,milos-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 131 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>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       vreg_ff_afvdd_2p8: regulator-ff-afvdd-2p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "ff_afvdd_2p8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               startup-delay-us = <100>;
+
+               gpio = <&tlmm 93 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vreg_bob>;
+       };
+
+       vreg_uw_afvdd_2p8: regulator-uw-afvdd-2p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "uw_afvdd_2p8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               startup-delay-us = <100>;
+
+               gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vreg_bob>;
+       };
+
+       vreg_uw_dvdd: regulator-uw-dvdd {
+               compatible = "regulator-fixed";
+               regulator-name = "uw_dvdd";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               startup-delay-us = <100>;
+
+               gpio = <&tlmm 28 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vreg_s1b>;
+       };
+
+       vreg_ois_avdd0_1p8: regulator-ois-avdd0-1p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "ois_avdd0_1p8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               startup-delay-us = <100>;
+
+               gpio = <&tlmm 27 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vreg_bob>;
+       };
+
+       vreg_ois_vdd: regulator-ois-vdd {
+               compatible = "regulator-fixed";
+               regulator-name = "ois_vdd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <100>;
+
+               gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vph_pwr>;
+       };
+
+       vreg_oled_dvdd_1p2: regulator-oled-dvdd-1p2 {
+               compatible = "regulator-fixed";
+               regulator-name = "oled_dvdd_1p2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+
+               gpio = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vreg_s2b>;
+
+               regulator-boot-on;
+       };
+
+       vreg_s1j: regulator-pm3001a-s1j {
+               compatible = "regulator-fixed";
+               regulator-name = "pm3001a_s1j";
+               regulator-min-microvolt = <2200000>;
+               regulator-max-microvolt = <2200000>;
+               startup-delay-us = <1000>;
+
+               gpio = <&pmr735b_gpios 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vph_pwr>;
+
+               pinctrl-0 = <&s1j_enable_default>;
+               pinctrl-names = "default";
+       };
+
+       vreg_vtof_ldo_3p3: regulator-vtof-ldo-3p3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vtof_ldo_3p3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <100>;
+
+               gpio = <&tlmm 76 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vph_pwr>;
+       };
+
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       thermal-zones {
+               pm8008-thermal {
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&pm8008>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm7550-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s1b>;
+               vdd-l2-l3-supply = <&vreg_s3b>;
+               vdd-l4-l5-supply = <&vreg_s2b>;
+               vdd-l6-supply = <&vreg_s2b>;
+               vdd-l7-supply = <&vreg_s1b>;
+               vdd-l8-supply = <&vreg_s1b>;
+               vdd-l9-l10-supply = <&vreg_s1b>;
+               vdd-l11-supply = <&vreg_s1b>;
+               vdd-l12-l14-supply = <&vreg_bob>;
+               vdd-l13-l16-supply = <&vreg_bob>;
+               vdd-l15-l17-l18-l19-l20-l21-l22-l23-supply = <&vreg_bob>;
+               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 = "b";
+
+               vreg_s1b: smps1 {
+                       regulator-name = "vreg_s1b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2080000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2b: smps2 {
+                       regulator-name = "vreg_s2b";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1408000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3b: smps3 {
+                       regulator-name = "vreg_s3b";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <1040000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b: ldo2 {
+                       regulator-name = "vreg_l2b";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b: ldo3 {
+                       regulator-name = "vreg_l3b";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b: ldo4 {
+                       regulator-name = "vreg_l4b";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b: ldo5 {
+                       regulator-name = "vreg_l5b";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b: ldo7 {
+                       regulator-name = "vreg_l7b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b: ldo8 {
+                       regulator-name = "vreg_l8b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b: ldo9 {
+                       regulator-name = "vreg_l9b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10b: ldo10 {
+                       regulator-name = "vreg_l10b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b: ldo11 {
+                       regulator-name = "vreg_l11b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b: ldo12 {
+                       regulator-name = "vreg_l12b";
+                       /*
+                        * Skip voltage voting for UFS VCC.
+                        */
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b: ldo13 {
+                       regulator-name = "vreg_l13b";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b: ldo14 {
+                       regulator-name = "vreg_l14b";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b: ldo15 {
+                       regulator-name = "vreg_l15b";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b: ldo16 {
+                       regulator-name = "vreg_l16b";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b: ldo17 {
+                       regulator-name = "vreg_l17b";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18b: ldo18 {
+                       regulator-name = "vreg_l18b";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19b: ldo19 {
+                       regulator-name = "vreg_l19b";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l20b: ldo20 {
+                       regulator-name = "vreg_l20b";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l21b: ldo21 {
+                       regulator-name = "vreg_l21b";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l22b: ldo22 {
+                       regulator-name = "vreg_l22b";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l23b: ldo23 {
+                       regulator-name = "vreg_l23b";
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob: bob {
+                       regulator-name = "vreg_bob";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3b>;
+               vdd-l3-supply = <&vreg_s3b>;
+
+               qcom,pmic-id = "c";
+
+               vreg_l2c: ldo2 {
+                       regulator-name = "vreg_l2c";
+                       regulator-min-microvolt = <320000>;
+                       regulator-max-microvolt = <650000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmr735b-rpmh-regulators";
+
+               vdd-l1-l2-supply= <&vreg_s3b>;
+               vdd-l3-supply= <&vreg_s3b>;
+               vdd-l4-supply= <&vreg_s1b>;
+               vdd-l5-supply= <&vreg_s2b>;
+               vdd-l6-supply= <&vreg_s2b>;
+               vdd-l7-l8-supply= <&vreg_s2b>;
+               vdd-l9-supply= <&vreg_s3b>;
+               vdd-l10-supply= <&vreg_s1b>;
+               vdd-l11-supply= <&vreg_s3b>;
+               vdd-l12-supply= <&vreg_s3b>;
+
+               qcom,pmic-id = "f";
+
+               vreg_l1f: ldo1 {
+                       regulator-name = "vreg_l1f";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f: ldo2 {
+                       regulator-name = "vreg_l2f";
+                       regulator-min-microvolt = <751000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f: ldo3 {
+                       regulator-name = "vreg_l3f";
+                       regulator-min-microvolt = <650000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4f: ldo4 {
+                       regulator-name = "vreg_l4f";
+                       regulator-min-microvolt = <1700000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5f: ldo5 {
+                       regulator-name = "vreg_l5f";
+                       regulator-min-microvolt = <1140000>;
+                       regulator-max-microvolt = <1260000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6f: ldo6 {
+                       regulator-name = "vreg_l6f";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7f: ldo7 {
+                       regulator-name = "vreg_l7f";
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1350000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8f: ldo8 {
+                       regulator-name = "vreg_l8f";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1320000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9f: ldo9 {
+                       regulator-name = "vreg_l9f";
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10f: ldo10 {
+                       regulator-name = "vreg_l10f";
+                       regulator-min-microvolt = <1500000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11f: ldo11 {
+                       regulator-name = "vreg_l11f";
+                       regulator-min-microvolt = <320000>;
+                       regulator-max-microvolt = <864000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gcc {
+       protected-clocks = <GCC_PCIE_1_AUX_CLK>, <GCC_PCIE_1_AUX_CLK_SRC>,
+                          <GCC_PCIE_1_CFG_AHB_CLK>, <GCC_PCIE_1_MSTR_AXI_CLK>,
+                          <GCC_PCIE_1_PHY_RCHNG_CLK>, <GCC_PCIE_1_PHY_RCHNG_CLK_SRC>,
+                          <GCC_PCIE_1_PIPE_CLK>, <GCC_PCIE_1_PIPE_CLK_SRC>,
+                          <GCC_PCIE_1_PIPE_DIV2_CLK>, <GCC_PCIE_1_PIPE_DIV2_CLK_SRC>,
+                          <GCC_PCIE_1_SLV_AXI_CLK>, <GCC_PCIE_1_SLV_Q2A_AXI_CLK>;
+};
+
+&i2c1 {
+       /* Samsung NFC @ 0x27 */
+
+       status = "okay";
+};
+
+&i2c3 {
+       /* AW88261FCR amplifier (top) @ 0x34 */
+       /* AW88261FCR amplifier (bottom) @ 0x35 */
+
+       status = "okay";
+};
+
+&i2c7 {
+       status = "okay";
+
+       pm8008: pmic@8 {
+               compatible = "qcom,pm8008";
+               reg = <0x8>;
+
+               interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_RISING>;
+               reset-gpios = <&pmr735b_gpios 3 GPIO_ACTIVE_LOW>;
+
+               vdd-l1-l2-supply = <&vreg_s2b>;
+               vdd-l3-l4-supply = <&vreg_bob>;
+               vdd-l5-supply = <&vreg_bob>;
+               vdd-l6-supply = <&vreg_s1b>;
+               vdd-l7-supply = <&vreg_bob>;
+
+               pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>;
+               pinctrl-names = "default";
+
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-ranges = <&pm8008 0 0 2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               #thermal-sensor-cells = <0>;
+
+               regulators {
+                       vreg_l1p: ldo1 {
+                               regulator-name = "vreg_l1p";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       vreg_l2p: ldo2 {
+                               regulator-name = "vreg_l2p";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1144000>;
+                       };
+
+                       vreg_l3p: ldo3 {
+                               regulator-name = "vreg_l3p";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+
+                       vreg_l4p: ldo4 {
+                               regulator-name = "vreg_l4p";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <2900000>;
+                       };
+
+                       vreg_l5p: ldo5 {
+                               regulator-name = "vreg_l5p";
+                               regulator-min-microvolt = <2704000>;
+                               regulator-max-microvolt = <2900000>;
+                       };
+
+                       vreg_l6p: ldo6 {
+                               regulator-name = "vreg_l6p";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <1896000>;
+                       };
+
+                       vreg_l7p: ldo7 {
+                               regulator-name = "vreg_l7p";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+               };
+       };
+
+       /* VL53L3 ToF @ 0x29 */
+       /* AW86938FCR vibrator @ 0x5a */
+};
+
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pmiv0104_eusb2_repeater {
+       vdd18-supply = <&vreg_l7b>;
+       vdd3-supply = <&vreg_l17b>;
+
+       qcom,tune-res-fsdif = /bits/ 8 <0x5>;
+       qcom,tune-usb2-amplitude = /bits/ 8 <0x8>;
+       qcom,tune-usb2-disc-thres = /bits/ 8 <0x7>;
+       qcom,tune-usb2-preem = /bits/ 8 <0x6>;
+};
+
+&pmr735b_gpios {
+       s1j_enable_default: s1j-enable-default-state {
+               pins = "gpio1";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <0>;
+               bias-disable;
+               output-low;
+       };
+
+       pm8008_reset_n_default: pm8008-reset-n-default-state {
+               pins = "gpio3";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               bias-pull-down;
+       };
+};
+
+&pm7550_gpios {
+       volume_up_default: volume-up-default-state {
+               pins = "gpio6";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <1>;
+               bias-pull-up;
+       };
+};
+
+&pm7550_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <1>, <4>;
+               led-max-microamp = <350000>;
+               flash-max-microamp = <1500000>;
+               flash-max-timeout-us = <400000>;
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/milos/fairphone/fp6/adsp.mbn",
+                       "qcom/milos/fairphone/fp6/adsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/milos/fairphone/fp6/cdsp.mbn",
+                       "qcom/milos/fairphone/fp6/cdsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/milos/fairphone/fp6/modem.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/milos/fairphone/fp6/wpss.mbn";
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       cd-gpios = <&tlmm 65 GPIO_ACTIVE_HIGH>;
+
+       vmmc-supply = <&vreg_l13b>;
+       vqmmc-supply = <&vreg_l23b>;
+       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";
+};
+
+&spi0 {
+       /* Eswin EPH8621 touchscreen @ 0 */
+};
+
+&tlmm {
+       gpio-reserved-ranges = <8 4>, /* Fingerprint SPI */
+                              <13 1>, /* NC */
+                              <63 2>; /* WLAN UART */
+
+       sdc2_card_det_n: sdc2-card-det-state {
+               pins = "gpio65";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       pm8008_int_default: pm8008-int-default-state {
+               pins = "gpio125";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&usb_1 {
+       dr_mode = "otg";
+
+       /* USB 2.0 only, HW does not support USB 3.x */
+       qcom,select-utmi-as-pipe-clk;
+
+       status = "okay";
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l2b>;
+       vdda12-supply = <&vreg_l4b>;
+
+       phys = <&pmiv0104_eusb2_repeater>;
+
+       status = "okay";
+};
diff --git a/src/arm64/qcom/milos.dtsi b/src/arm64/qcom/milos.dtsi
new file mode 100644 (file)
index 0000000..e1a51d4
--- /dev/null
@@ -0,0 +1,2633 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Luca Weiss <luca.weiss@fairphone.com>
+ */
+
+#include <dt-bindings/clock/qcom,milos-camcc.h>
+#include <dt-bindings/clock/qcom,milos-dispcc.h>
+#include <dt-bindings/clock/qcom,milos-gcc.h>
+#include <dt-bindings/clock/qcom,milos-gpucc.h>
+#include <dt-bindings/clock/qcom,rpmh.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,milos-rpmh.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/mailbox/qcom-ipcc.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-cells = <0>;
+                       clock-frequency = <76800000>;
+               };
+
+               sleep_clk: sleep-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32764>;
+               };
+       };
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a520";
+                       reg = <0x0 0x0>;
+
+                       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 = <0x0 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-a520";
+                       reg = <0x0 0x200>;
+
+                       clocks = <&cpufreq_hw 0>;
+
+                       power-domains = <&cpu_pd2>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&l2_2>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
+
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+
+                       #cooling-cells = <2>;
+
+                       l2_2: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&l3_0>;
+                       };
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a520";
+                       reg = <0x0 0x300>;
+
+                       clocks = <&cpufreq_hw 0>;
+
+                       power-domains = <&cpu_pd3>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&l2_2>;
+                       capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <100>;
+
+                       qcom,freq-domain = <&cpufreq_hw 0>;
+
+                       #cooling-cells = <2>;
+               };
+
+               cpu4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0x0 0x400>;
+
+                       clocks = <&cpufreq_hw 1>;
+
+                       power-domains = <&cpu_pd4>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&l2_4>;
+                       capacity-dmips-mhz = <1670>;
+                       dynamic-power-coefficient = <264>;
+
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+
+                       #cooling-cells = <2>;
+
+                       l2_4: 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 = <0x0 0x500>;
+
+                       clocks = <&cpufreq_hw 1>;
+
+                       power-domains = <&cpu_pd5>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&l2_5>;
+                       capacity-dmips-mhz = <1670>;
+                       dynamic-power-coefficient = <264>;
+
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+
+                       #cooling-cells = <2>;
+
+                       l2_5: 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 = <0x0 0x600>;
+
+                       clocks = <&cpufreq_hw 1>;
+
+                       power-domains = <&cpu_pd6>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&l2_6>;
+                       capacity-dmips-mhz = <1670>;
+                       dynamic-power-coefficient = <264>;
+
+                       qcom,freq-domain = <&cpufreq_hw 1>;
+
+                       #cooling-cells = <2>;
+
+                       l2_6: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-unified;
+                               next-level-cache = <&l3_0>;
+                       };
+               };
+
+               cpu7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a720";
+                       reg = <0x0 0x700>;
+
+                       clocks = <&cpufreq_hw 2>;
+
+                       power-domains = <&cpu_pd7>;
+                       power-domain-names = "psci";
+
+                       enable-method = "psci";
+                       next-level-cache = <&l2_7>;
+                       capacity-dmips-mhz = <1670>;
+                       dynamic-power-coefficient = <287>;
+
+                       qcom,freq-domain = <&cpufreq_hw 2>;
+
+                       #cooling-cells = <2>;
+
+                       l2_7: 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>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu4>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu5>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu6>;
+                               };
+                       };
+
+                       cluster2 {
+                               core0 {
+                                       cpu = <&cpu7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       silver_cpu_sleep_0: cpu-sleep-0-0 {
+                               compatible = "arm,idle-state";
+                               idle-state-name = "pc";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <250>;
+                               exit-latency-us = <700>;
+                               min-residency-us = <5200>;
+                               local-timer-stop;
+                       };
+
+                       silver_cpu_sleep_1: cpu-sleep-0-1 {
+                               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 = "silver-power-collapse";
+                               arm,psci-suspend-param = <0x40000003>;
+                               entry-latency-us = <400>;
+                               exit-latency-us = <900>;
+                               min-residency-us = <5511>;
+                               local-timer-stop;
+                       };
+
+                       gold_cpu_sleep_1: cpu-sleep-1-1 {
+                               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 = <600>;
+                               exit-latency-us = <1500>;
+                               min-residency-us = <8551>;
+                               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 = <0x41003344>;
+                               entry-latency-us = <2800>;
+                               exit-latency-us = <4400>;
+                               min-residency-us = <10150>;
+                       };
+               };
+       };
+
+       firmware {
+               scm: scm {
+                       compatible = "qcom,scm-milos", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x19000>;
+               };
+       };
+
+       clk_virt: interconnect-0 {
+               compatible = "qcom,milos-clk-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       mc_virt: interconnect-1 {
+               compatible = "qcom,milos-mc-virt";
+               #interconnect-cells = <2>;
+               qcom,bcm-voters = <&apps_bcm_voter>;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               /* We expect the bootloader to fill in the size */
+               reg = <0 0 0 0>;
+       };
+
+       pmu-a520 {
+               compatible = "arm,cortex-a520-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
+       };
+
+       pmu-a720 {
+               compatible = "arm,cortex-a720-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
+       };
+
+       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>, <&silver_cpu_sleep_1>;
+               };
+
+               cpu_pd1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&silver_cpu_sleep_0>, <&silver_cpu_sleep_1>;
+               };
+
+               cpu_pd2: power-domain-cpu2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&silver_cpu_sleep_0>, <&silver_cpu_sleep_1>;
+               };
+
+               cpu_pd3: power-domain-cpu3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&silver_cpu_sleep_0>, <&silver_cpu_sleep_1>;
+               };
+
+               cpu_pd4: power-domain-cpu4 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&gold_cpu_sleep_0>, <&gold_cpu_sleep_1>;
+               };
+
+               cpu_pd5: power-domain-cpu5 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&gold_cpu_sleep_0>, <&gold_cpu_sleep_1>;
+               };
+
+               cpu_pd6: power-domain-cpu6 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&cluster_pd>;
+                       domain-idle-states = <&gold_cpu_sleep_0>, <&gold_cpu_sleep_1>;
+               };
+
+               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 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gunyah_hyp_mem: gunyah-hyp-region@80000000 {
+                       reg = <0x0 0x80000000 0x0 0xe00000>;
+                       no-map;
+               };
+
+               xbl_sc_mem: xbl-sc-region@81800000 {
+                       reg = <0x0 0x81800000 0x0 0x40000>;
+                       no-map;
+               };
+
+               cpucp_fw_mem: cpucp-fw-region@81840000 {
+                       reg = <0x0 0x81840000 0x0 0x1c0000>;
+                       no-map;
+               };
+
+               xbl_dtlog_mem: xbl-dtlog-region@81a00000 {
+                       reg = <0x0 0x81a00000 0x0 0x40000>;
+                       no-map;
+               };
+
+               xbl_ramdump_mem: xbl-ramdump-region@81a40000 {
+                       reg = <0x0 0x81a40000 0x0 0x1c0000>;
+                       no-map;
+               };
+
+               aop_image_mem: aop-image-region@81c00000 {
+                       reg = <0x0 0x81c00000 0x0 0x60000>;
+                       no-map;
+               };
+
+               aop_cmd_db_mem: aop-cmd-db-region@81c60000 {
+                       compatible = "qcom,cmd-db";
+                       reg = <0x0 0x81c60000 0x0 0x20000>;
+                       no-map;
+               };
+
+               aop_config_mem: aop-config-region@81c80000 {
+                       reg = <0x0 0x81c80000 0x0 0x20000>;
+                       no-map;
+               };
+
+               tme_crash_dump_mem: tme-crash-dump-region@81ca0000 {
+                       reg = <0x0 0x81ca0000 0x0 0x40000>;
+                       no-map;
+               };
+
+               tme_log_mem: tme-log-region@81ce0000 {
+                       reg = <0x0 0x81ce0000 0x0 0x4000>;
+                       no-map;
+               };
+
+               uefi_log_mem: uefi-log-region@81ce4000 {
+                       reg = <0x0 0x81ce4000 0x0 0x10000>;
+                       no-map;
+               };
+
+               chipinfo_mem: chipinfo-region@81cf4000 {
+                       reg = <0x0 0x81cf4000 0x0 0x1000>;
+                       no-map;
+               };
+
+               secdata_apss_mem: secdata-apss-region@81cff000 {
+                       reg = <0x0 0x81cff000 0x0 0x1000>;
+                       no-map;
+               };
+
+               smem_mem: smem-region@81d00000 {
+                       compatible = "qcom,smem";
+                       reg = <0x0 0x81d00000 0x0 0x200000>;
+                       hwlocks = <&tcsr_mutex 3>;
+                       no-map;
+               };
+
+               adsp_mhi_mem: adsp-mhi-region@81f00000 {
+                       reg = <0x0 0x81f00000 0x0 0x20000>;
+                       no-map;
+               };
+
+               pvm_fw_mem: pvm-fw-region@824a0000 {
+                       reg = <0x0 0x824a0000 0x0 0x100000>;
+                       no-map;
+               };
+
+               hyp_mem_database_mem: hyp-mem-database-region@825a0000 {
+                       reg = <0x0 0x825a0000 0x0 0x60000>;
+                       no-map;
+               };
+
+               global_sync_mem: global-sync-region@82600000 {
+                       reg = <0x0 0x82600000 0x0 0x100000>;
+                       no-map;
+               };
+
+               tz_stat_mem: tz-stat-region@82700000 {
+                       reg = <0x0 0x82700000 0x0 0x100000>;
+                       no-map;
+               };
+
+               qdss_apps_mem: qdss-apps-region@82800000 {
+                       reg = <0x0 0x82800000 0x0 0x2000000>;
+                       reusable;
+               };
+
+               mpss_mem: mpss-region@8ac00000 {
+                       reg = <0x0 0x8ac00000 0x0 0xe600000>;
+                       no-map;
+               };
+
+               q6_mpss_dtb_mem: q6-mpss-dtb-region@99200000 {
+                       reg = <0x0 0x99200000 0x0 0x80000>;
+                       no-map;
+               };
+
+               q6_adsp_dtb_mem: q6-adsp-dtb-region@99280000 {
+                       reg = <0x0 0x99280000 0x0 0x80000>;
+                       no-map;
+               };
+
+               adspslpi_mem: adspslpi-region@99300000 {
+                       reg = <0x0 0x99300000 0x0 0x2800000>;
+                       no-map;
+               };
+
+               wpss_mem: wpss-region@9bb00000 {
+                       reg = <0x0 0x9bb00000 0x0 0x1900000>;
+                       no-map;
+               };
+
+               video_mem: video-region@9d400000 {
+                       reg = <0x0 0x9d400000 0x0 0x700000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp-region@9db00000 {
+                       reg = <0x0 0x9db00000 0x0 0xf00000>;
+                       no-map;
+               };
+
+               q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9ea00000 {
+                       reg = <0x0 0x9ea00000 0x0 0x80000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw-region@9ea80000 {
+                       reg = <0x0 0x9ea80000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: ipa-gsi-region@9ea90000 {
+                       reg = <0x0 0x9ea90000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_microcode_mem: gpu-microcode-region@9ea9a000 {
+                       reg = <0x0 0x9ea9a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               camera_mem: camera-region@9eb00000 {
+                       reg = <0x0 0x9eb00000 0x0 0x800000>;
+                       no-map;
+               };
+
+               wlan_msa_mem: wlan-msa-region@a6400000 {
+                       reg = <0x0 0xa6400000 0x0 0xc00000>;
+                       no-map;
+               };
+
+               cpusys_vm_mem: cpusys-vm-region@e0600000 {
+                       reg = <0x0 0xe0600000 0x0 0x400000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs@e1f00000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0xe1f00000 0x0 0x600000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
+               };
+
+               qtee_mem: qtee-region@e8900000 {
+                       reg = <0x0 0xe8900000 0x0 0x500000>;
+                       no-map;
+               };
+
+               tags_mem: tags-region@e8e00000 {
+                       reg = <0x0 0xe8e00000 0x0 0x700000>;
+                       no-map;
+               };
+
+               trusted_apps_mem: trusted-apps-region@e9500000 {
+                       reg = <0x0 0xe9500000 0x0 0x1200000>;
+                       no-map;
+               };
+       };
+
+       smp2p-adsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <443>, <429>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               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";
+               qcom,smem = <94>, <432>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               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";
+               qcom,smem = <435>, <428>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               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>;
+               };
+
+               smp2p_ipa_out: ipa-ap-to-modem {
+                       qcom,entry-name = "ipa";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_ipa_in: ipa-modem-to-ap {
+                       qcom,entry-name = "ipa";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smp2p-wpss {
+               compatible = "qcom,smp2p";
+               qcom,smem = <617>, <616>;
+               interrupts-extended = <&ipcc IPCC_CLIENT_WPSS
+                                            IPCC_MPROC_SIGNAL_SMP2P
+                                            IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&ipcc IPCC_CLIENT_WPSS
+                               IPCC_MPROC_SIGNAL_SMP2P>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <13>;
+
+               smp2p_wpss_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_wpss_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               smp2p_wlan_out: wlan-ap-to-wpss {
+                       qcom,entry-name = "wlan";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               smp2p_wlan_in: wlan-wpss-to-ap {
+                       qcom,entry-name = "wlan";
+                       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,milos-gcc";
+                       reg = <0x0 0x00100000 0x0 0x1f4200>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&sleep_clk>,
+                                <0>, /* pcie_0_pipe_clk */
+                                <0>, /* pcie_1_pipe_clk */
+                                <0>, /* ufs_phy_rx_symbol_0_clk */
+                                <0>, /* ufs_phy_rx_symbol_1_clk */
+                                <0>, /* ufs_phy_tx_symbol_0_clk */
+                                <0>; /* usb3_phy_wrapper_gcc_usb30_pipe_clk */
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               ipcc: mailbox@405000 {
+                       compatible = "qcom,milos-ipcc", "qcom,ipcc";
+                       reg = <0x0 0x00405000 0x0 0x1000>;
+
+                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+
+                       #mbox-cells = <2>;
+               };
+
+               gpi_dma1: dma-controller@800000 {
+                       compatible = "qcom,milos-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0x0 0x00800000 0x0 0x60000>;
+
+                       interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x3f>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0x36 0x0>;
+                       dma-coherent;
+               };
+
+               qupv3_id_1: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x008c0000 0x0 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 0x23 0>;
+
+                       dma-coherent;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       i2c7: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00880000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               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_ACTIVE_ONLY
+                                                &cnoc_cfg SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>,
+                                               <&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_i2c7_data_clk>;
+                               pinctrl-names = "default";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       uart11: serial@890000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x00890000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               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_ACTIVE_ONLY
+                                                &cnoc_cfg SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart11_default>, <&qup_uart11_cts_rts>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+               };
+
+               gpi_dma0: dma-controller@a00000 {
+                       compatible = "qcom,milos-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0x0 0x00a00000 0x0 0x60000>;
+
+                       interrupts = <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 437 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x3e>;
+                       #dma-cells = <3>;
+
+                       iommus = <&apps_smmu 0x576 0x0>;
+                       dma-coherent;
+               };
+
+               qupv3_id_0: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       clock-names = "m-ahb",
+                                     "s-ahb";
+
+                       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";
+
+                       iommus = <&apps_smmu 0x563 0>;
+
+                       dma-coherent;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       spi0: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a80000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 520 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               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_ACTIVE_ONLY
+                                                &cnoc_cfg SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>,
+                                               <&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@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a84000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 521 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               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_ACTIVE_ONLY
+                                                &cnoc_cfg SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>,
+                                               <&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";
+                       };
+
+                       i2c3: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a8c000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 523 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               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_ACTIVE_ONLY
+                                                &cnoc_cfg SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>,
+                                               <&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";
+                       };
+
+                       uart5: serial@a94000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0x0 0x00a94000 0x0 0x4000>;
+
+                               interrupts = <GIC_SPI 525 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               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_ACTIVE_ONLY
+                                                &cnoc_cfg SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                               interconnect-names = "qup-core",
+                                                    "qup-config";
+
+                               pinctrl-0 = <&qup_uart5_default>;
+                               pinctrl-names = "default";
+
+                               status = "disabled";
+                       };
+               };
+
+               rng: rng@10c3000 {
+                       compatible = "qcom,milos-trng", "qcom,trng";
+                       reg = <0x0 0x010c3000 0x0 0x1000>;
+               };
+
+               mmss_noc: interconnect@1400000 {
+                       compatible = "qcom,milos-mmss-noc";
+                       reg = <0x0 0x01400000 0x0 0xdb800>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               cnoc_main: interconnect@1500000 {
+                       compatible = "qcom,milos-cnoc-main";
+                       reg = <0x0 0x01500000 0x0 0x14400>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               cnoc_cfg: interconnect@1600000 {
+                       compatible = "qcom,milos-cnoc-cfg";
+                       reg = <0x0 0x01600000 0x0 0x6e00>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system_noc: interconnect@1680000 {
+                       compatible = "qcom,milos-system-noc";
+                       reg = <0x0 0x01680000 0x0 0x40000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               pcie_anoc: interconnect@16c0000 {
+                       compatible = "qcom,milos-pcie-anoc";
+                       reg = <0x0 0x016c0000 0x0 0x12400>;
+                       #interconnect-cells = <2>;
+                       clocks = <&gcc GCC_AGGRE_NOC_PCIE_AXI_CLK>,
+                                <&gcc GCC_CFG_NOC_PCIE_ANOC_AHB_CLK>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,milos-aggre1-noc";
+                       reg = <0x0 0x016e0000 0x0 0x16400>;
+                       #interconnect-cells = <2>;
+                       clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,milos-aggre2-noc";
+                       reg = <0x0 0x01700000 0x0 0x1f400>;
+                       #interconnect-cells = <2>;
+                       clocks = <&rpmhcc RPMH_IPA_CLK>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x0 0x01f40000 0x0 0x20000>;
+
+                       #hwlock-cells = <1>;
+               };
+
+               tcsr: clock-controller@1fc0000 {
+                       compatible = "qcom,milos-tcsr", "syscon";
+                       reg = <0x0 0x01fc0000 0x0 0xa0000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
+               remoteproc_adsp: remoteproc@3000000 {
+                       compatible = "qcom,milos-adsp-pas";
+                       reg = <0x0 0x03000000 0x0 0x10000>;
+
+                       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>,
+                                             <&smp2p_adsp_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 RPMHPD_LCX>,
+                                       <&rpmhpd RPMHPD_LMX>;
+                       power-domain-names = "lcx",
+                                            "lmx";
+
+                       interconnects = <&lpass_ag_noc MASTER_LPASS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+
+                       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";
+
+                       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>;
+                       };
+               };
+
+               lpass_ag_noc: interconnect@3c40000 {
+                       compatible = "qcom,milos-lpass-ag-noc";
+                       reg = <0x0 0x03c40000 0x0 0x17200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,milos-gpucc";
+                       reg = <0x0 0x03d90000 0x0 0x9800>;
+
+                       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,milos-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 0>,
+                                    <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 574 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 575 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 659 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 661 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 664 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 665 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 666 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 668 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 669 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 699 IRQ_TYPE_LEVEL_HIGH 0>;
+                       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;
+               };
+
+               remoteproc_mpss: remoteproc@4080000 {
+                       compatible = "qcom,milos-mpss-pas";
+                       reg = <0x0 0x04080000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING 0>,
+                                             <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack",
+                                         "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MSS>;
+                       power-domain-names = "cx",
+                                            "mss";
+
+                       interconnects = <&mc_virt MASTER_LLCC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+
+                       memory-region = <&mpss_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_modem_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "mpss";
+                               qcom,remote-pid = <1>;
+                       };
+               };
+
+               sdhc_2: mmc@8804000 {
+                       compatible = "qcom,milos-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x08804000 0x0 0x1000>;
+
+                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH 0>;
+                       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_ACTIVE_ONLY
+                                        &cnoc_cfg SLAVE_SDCC_2 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       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>;
+
+                       qcom,dll-config = <0x0007442c>;
+                       qcom,ddr-config = <0x80040868>;
+
+                       dma-coherent;
+
+                       status = "disabled";
+
+                       sdhc2_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                               };
+                       };
+               };
+
+               usb_1_hsphy: phy@88e3000 {
+                       compatible = "qcom,milos-snps-eusb2-phy",
+                                    "qcom,sm8550-snps-eusb2-phy";
+                       reg = <0x0 0x088e3000 0x0 0x154>;
+                       #phy-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+
+                       status = "disabled";
+               };
+
+               remoteproc_wpss: remoteproc@8a00000 {
+                       compatible = "qcom,milos-wpss-pas";
+                       reg = <0x0 0x08a00000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 579 IRQ_TYPE_EDGE_RISING 0>,
+                                             <&smp2p_wpss_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_wpss_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_wpss_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_wpss_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_wpss_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 RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MX>;
+                       power-domain-names = "cx",
+                                            "mx";
+
+                       memory-region = <&wpss_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_wpss_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_WPSS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_WPSS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "wpss";
+                               qcom,remote-pid = <13>;
+                       };
+               };
+
+               usb_1: usb@a600000 {
+                       compatible = "qcom,milos-dwc3", "qcom,snps-dwc3";
+                       reg = <0x0 0x0a600000 0x0 0xfc000>;
+
+                       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>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       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>;
+
+                       interrupts-extended = <&intc GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH 0>,
+                                             <&intc GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH 0>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 25 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dwc_usb3",
+                                         "pwr_event",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "ss_phy_irq";
+
+                       iommus = <&apps_smmu 0x40 0x0>;
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &cnoc_cfg SLAVE_USB3_0 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       phys = <&usb_1_hsphy>;
+                       phy-names = "usb2-phy";
+
+                       snps,dis-u1-entry-quirk;
+                       snps,dis-u2-entry-quirk;
+                       snps,dis_enblslpm_quirk;
+                       snps,dis_u2_susphy_quirk;
+                       snps,dis_u3_susphy_quirk;
+                       snps,has-lpm-erratum;
+                       snps,hird-threshold = /bits/ 8 <0x0>;
+                       snps,is-utmi-l1-suspend;
+                       snps,parkmode-disable-ss-quirk;
+                       tx-fifo-resize;
+                       dma-coherent;
+                       usb-role-switch;
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_dwc3_hs: endpoint {
+                                       };
+                               };
+                       };
+               };
+
+               videocc: clock-controller@aaf0000 {
+                       compatible = "qcom,milos-videocc";
+                       reg = <0x0 0x0aaf0000 0x0 0x10000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>,
+                                <&gcc GCC_VIDEO_AHB_CLK>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               camcc: clock-controller@adb0000 {
+                       compatible = "qcom,milos-camcc";
+                       reg = <0x0 0x0adb0000 0x0 0x40000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&sleep_clk>,
+                                <&gcc GCC_CAMERA_AHB_CLK>;
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               dispcc: clock-controller@af00000 {
+                       compatible = "qcom,milos-dispcc";
+                       reg = <0x0 0x0af00000 0x0 0x20000>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&sleep_clk>,
+                                <&gcc GCC_DISP_AHB_CLK>,
+                                <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
+                                <0>, /* dsi0_phy_pll_out_byteclk */
+                                <0>, /* dsi0_phy_pll_out_dsiclk */
+                                <0>, /* dp0_phy_pll_link_clk */
+                                <0>; /* dp0_phy_pll_vco_div_clk */
+
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,milos-pdc", "qcom,pdc";
+                       reg = <0x0 0x0b220000 0x0 0x30000>,
+                             <0x0 0x174000f0 0x0 0x64>;
+                       interrupt-parent = <&intc>;
+
+                       qcom,pdc-ranges = <0 480 40>, <40 140 11>, <51 527 47>,
+                                         <98 609 31>, <129 63 1>, <130 716 12>,
+                                         <142 251 5>;
+
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+               };
+
+               tsens0: thermal-sensor@c228000 {
+                       compatible = "qcom,milos-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c228000 0x0 0x1000>,
+                             <0x0 0x0c222000 0x0 0x1000>;
+
+                       interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <15>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c229000 {
+                       compatible = "qcom,milos-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c229000 0x0 0x1000>,
+                             <0x0 0x0c223000 0x0 0x1000>;
+
+                       interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <14>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               aoss_qmp: power-management@c300000 {
+                       compatible = "qcom,milos-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0x0 0x0c300000 0x0 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 = <0x0 0x0c3f0000 0x0 0x400>;
+               };
+
+               spmi_bus: spmi@c400000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0x0 0x0c400000 0x0 0x3000>,
+                             <0x0 0x0c500000 0x0 0x400000>,
+                             <0x0 0x0c440000 0x0 0x80000>,
+                             <0x0 0x0c4c0000 0x0 0x10000>,
+                             <0x0 0x0c42d000 0x0 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,milos-tlmm";
+                       reg = <0x0 0x0f100000 0x0 0x300000>;
+
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+
+                       gpio-ranges = <&tlmm 0 0 168>;
+
+                       wakeup-parent = <&pdc>;
+
+                       qup_i2c1_data_clk: qup-i2c1-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio4", "gpio5";
+                               function = "qup0_se1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c3_data_clk: qup-i2c3-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio15", "gpio16";
+                               function = "qup0_se3";
+                               drive-strength = <2>;
+                               bias-pull-up = <2200>;
+                       };
+
+                       qup_i2c7_data_clk: qup-i2c7-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio32", "gpio33";
+                               function = "qup1_se0";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       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_uart5_default: qup-uart5-default-state {
+                               /* TX, RX */
+                               pins = "gpio25", "gpio26";
+                               function = "qup0_se5";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_uart11_default: qup-uart11-default-state {
+                               /* TX, RX */
+                               pins = "gpio50", "gpio51";
+                               function = "qup1_se4";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_uart11_cts_rts: qup-uart11-cts-rts-state {
+                               /* CTS, RTS */
+                               pins = "gpio48", "gpio49";
+                               function = "qup1_se4";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       sdc2_default: sdc2-default-state {
+                               clk-pins {
+                                       pins = "gpio62";
+                                       function = "sdc2_clk";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               cmd-pins {
+                                       pins = "gpio61";
+                                       function = "sdc2_cmd";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+
+                               data-pins {
+                                       pins = "gpio58", "gpio57", "gpio35", "gpio34";
+                                       function = "sdc2_data";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       sdc2_sleep: sdc2-sleep-state {
+                               clk-pins {
+                                       pins = "gpio62";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               cmd-pins {
+                                       pins = "gpio61";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               data-pins {
+                                       pins = "gpio58", "gpio57", "gpio35", "gpio34";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,milos-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x15000000 0x0 0x100000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 706 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 689 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH 0>;
+                       dma-coherent;
+               };
+
+               intc: interrupt-controller@17100000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0x0 0x17100000 0x0 0x10000>,
+                             <0x0 0x17180000 0x0 0x200000>;
+
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       #interrupt-cells = <4>;
+                       interrupt-controller;
+
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0 0x40000>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       ppi-partitions {
+                               ppi_cluster0: interrupt-partition-0 {
+                                       affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
+                               };
+
+                               ppi_cluster1: interrupt-partition-1 {
+                                       affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
+                               };
+                       };
+
+                       gic_its: msi-controller@17140000 {
+                               compatible = "arm,gic-v3-its";
+                               reg = <0x0 0x17140000 0x0 0x20000>;
+
+                               msi-controller;
+                               #msi-cells = <1>;
+                       };
+               };
+
+               timer@17420000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x0 0x17420000 0x0 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 0>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <0>;
+                       };
+
+                       frame@17423000 {
+                               reg = <0x17423000 0x1000>;
+
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <1>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17425000 {
+                               reg = <0x17425000 0x1000>;
+
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <2>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17427000 {
+                               reg = <0x17427000 0x1000>;
+
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <3>;
+
+                               status = "disabled";
+                       };
+
+                       frame@17429000 {
+                               reg = <0x17429000 0x1000>;
+
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <4>;
+
+                               status = "disabled";
+                       };
+
+                       frame@1742b000 {
+                               reg = <0x1742b000 0x1000>;
+
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <5>;
+
+                               status = "disabled";
+                       };
+
+                       frame@1742d000 {
+                               reg = <0x1742d000 0x1000>;
+
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                               frame-number = <6>;
+
+                               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 0>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       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,milos-rpmh-clk";
+
+                               clocks = <&xo_board>;
+                               clock-names = "xo";
+
+                               #clock-cells = <1>;
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,milos-rpmhpd";
+                               #power-domain-cells = <1>;
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp-16 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_low_svs_d1: opp-56 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp-64 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp-128 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       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_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,milos-cpufreq-epss", "qcom,cpufreq-epss";
+                       reg = <0x0 0x17d91000 0x0 0x1000>,
+                             <0x0 0x17d92000 0x0 0x1000>,
+                             <0x0 0x17d93000 0x0 0x1000>;
+                       reg-names = "freq-domain0",
+                                   "freq-domain1",
+                                   "freq-domain2";
+
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupt-names = "dcvsh-irq-0",
+                                         "dcvsh-irq-1",
+                                         "dcvsh-irq-2";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_GPLL0>;
+                       clock-names = "xo",
+                                     "alternate";
+
+                       #freq-domain-cells = <1>;
+                       #clock-cells = <1>;
+               };
+
+               gem_noc: interconnect@24100000 {
+                       compatible = "qcom,milos-gem-noc";
+                       reg = <0x0 0x24100000 0x0 0xff080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               nsp_noc: interconnect@320c0000 {
+                       compatible = "qcom,milos-nsp-noc";
+                       reg = <0x0 0x320c0000 0x0 0xe080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               remoteproc_cdsp: remoteproc@32300000 {
+                       compatible = "qcom,milos-cdsp-pas";
+                       reg = <0x0 0x32300000 0x0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING 0>,
+                                             <&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>,
+                                             <&smp2p_cdsp_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 RPMHPD_CX>,
+                                       <&rpmhpd RPMHPD_MX>;
+                       power-domain-names = "cx",
+                                            "mx";
+
+                       interconnects = <&nsp_noc MASTER_CDSP_PROC QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+
+                       memory-region = <&cdsp_mem>, <&q6_cdsp_dtb_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_cdsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+                       };
+               };
+       };
+
+       thermal-zones {
+               aoss0-thermal {
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               aoss0-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               aoss0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss0-thermal {
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               cpuss0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss1-thermal {
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               cpuss1-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-left-thermal {
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               cpu4-left-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-right-thermal {
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               cpu4-right-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-left-thermal {
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               cpu5-left-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-right-thermal {
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               cpu5-right-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-left-thermal {
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               cpu6-left-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-right-thermal {
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               cpu6-right-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-left-thermal {
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               cpu7-left-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-right-thermal {
+                       thermal-sensors = <&tsens0 10>;
+
+                       trips {
+                               cpu7-right-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-thermal {
+                       thermal-sensors = <&tsens0 11>;
+
+                       trips {
+                               cpu0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       thermal-sensors = <&tsens0 12>;
+
+                       trips {
+                               cpu1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-thermal {
+                       thermal-sensors = <&tsens0 13>;
+
+                       trips {
+                               cpu2-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu3-thermal {
+                       thermal-sensors = <&tsens0 14>;
+
+                       trips {
+                               cpu3-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss1-thermal {
+                       thermal-sensors = <&tsens1 0>;
+
+                       trips {
+                               aoss1-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               aoss1-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphvx0-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens1 1>;
+
+                       trips {
+                               nsphvx0-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               nsphvx0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphmx1-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               nsphmx1-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               nsphmx1-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsphmx0-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               nsphmx0-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               nsphmx0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss0-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens1 4>;
+
+                       trips {
+                               gpu0_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               gpuss0-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss1-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens1 5>;
+
+                       trips {
+                               gpu1_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               gpuss1-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               video-thermal {
+                       thermal-sensors = <&tsens1 7>;
+
+                       trips {
+                               video-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               video-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               ddr-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens1 8>;
+
+                       trips {
+                               ddr-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               ddr-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camera0-thermal {
+                       thermal-sensors = <&tsens1 9>;
+
+                       trips {
+                               camera0-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               camera0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem0-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&tsens1 10>;
+
+                       trips {
+                               modem0-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               modem0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem1-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&tsens1 11>;
+
+                       trips {
+                               modem1-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               modem1-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem2-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&tsens1 12>;
+
+                       trips {
+                               modem2-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               modem2-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               modem3-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&tsens1 13>;
+
+                       trips {
+                               modem3-hot {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               modem3-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
+                            <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW 0>;
+       };
+};
index bb35893da73d141465a325dcfb5542fc032c95a1..565418b86b2ad9588d6200cd6765f9716d3e90df 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pwm/pwm.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 
        status = "okay";
 
+       fan_controller: fan@18 {
+               compatible = "ti,amc6821";
+               reg = <0x18>;
+               #pwm-cells = <2>;
+
+               fan {
+                       pwms = <&fan_controller 40000 PWM_POLARITY_INVERTED>;
+               };
+       };
+
        eeprom0: eeprom@50 {
                compatible = "atmel,24c256";
                reg = <0x50>;
        status = "okay";
 };
 
+&pcie0 {
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l6a>;
+       vdda-pll-supply = <&vreg_l5a>;
+
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-0 = <&pcie1_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l6a>;
+       vdda-pll-supply = <&vreg_l5a>;
+
+       status = "okay";
+};
+
+&pcieport0 {
+       reset-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+};
+
+&pcieport1 {
+       reset-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+};
+
 &qupv3_id_0 {
        firmware-name = "qcom/qcs8300/qupv3fw.elf";
        status = "okay";
        status = "okay";
 };
 
+&spi10 {
+       status = "okay";
+
+       tpm@0 {
+               compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <20000000>;
+       };
+};
+
 &tlmm {
+
+       pcie0_default_state: pcie0-default-state {
+               wake-pins {
+                       pins = "gpio0";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               clkreq-pins {
+                       pins = "gpio1";
+                       function = "pcie0_clkreq";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-pins {
+                       pins = "gpio2";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        ethernet0_default: ethernet0-default-state {
                ethernet0_mdc: ethernet0-mdc-pins {
                        pins = "gpio5";
                bias-pull-up;
        };
 
+       pcie1_default_state: pcie1-default-state {
+               wake-pins {
+                       pins = "gpio21";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               clkreq-pins {
+                       pins = "gpio22";
+                       function = "pcie1_clkreq";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-pins {
+                       pins = "gpio23";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        qup_i2c15_default: qup-i2c15-state {
                pins = "gpio91", "gpio92";
                function = "qup1_se7";
index 816fa2af8a9a663b8ad176f93d2f18284a08c3d1..0cb9fd154b684e61b2323fad5487216a03a0af2f 100644 (file)
@@ -55,6 +55,7 @@
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1946>;
                        dynamic-power-coefficient = <472>;
+                       #cooling-cells = <2>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
@@ -79,6 +80,7 @@
                        power-domains = <&cpu_pd1>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1946>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <472>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        power-domains = <&cpu_pd2>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1946>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <507>;
                        qcom,freq-domain = <&cpufreq_hw 2>;
                        operating-points-v2 = <&cpu2_opp_table>;
                        power-domains = <&cpu_pd3>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1946>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <507>;
                        qcom,freq-domain = <&cpufreq_hw 2>;
                        operating-points-v2 = <&cpu2_opp_table>;
                        power-domains = <&cpu_pd4>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        power-domains = <&cpu_pd5>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        power-domains = <&cpu_pd6>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        power-domains = <&cpu_pd7>;
                        power-domain-names = "psci";
                        capacity-dmips-mhz = <1024>;
+                       #cooling-cells = <2>;
                        dynamic-power-coefficient = <100>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        hwlocks = <&tcsr_mutex 3>;
                };
 
+               gunyah_md_mem: gunyah-md-region@91a80000 {
+                       reg = <0x0 0x91a80000 0x0 0x80000>;
+                       no-map;
+               };
+
                lpass_machine_learning_mem: lpass-machine-learning-region@93b00000 {
                        reg = <0x0 0x93b00000 0x0 0xf00000>;
                        no-map;
                        #power-domain-cells = <1>;
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
                                 <&sleep_clk>,
-                                <0>,
-                                <0>,
+                                <&pcie0_phy>,
+                                <&pcie1_phy>,
                                 <0>,
                                 <0>,
                                 <0>,
                        #address-cells = <1>;
                        #size-cells = <1>;
 
-                       gpu_speed_bin: gpu_speed_bin@240c {
+                       gpu_speed_bin: gpu-speed-bin@240c {
                                reg = <0x240c 0x1>;
                                bits = <0 8>;
                        };
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               pcie0: pci@1c00000 {
+                       device_type = "pci";
+                       compatible = "qcom,pcie-qcs8300", "qcom,pcie-sa8775p";
+                       reg = <0x0 0x01c00000 0x0 0x3000>,
+                             <0x0 0x40000000 0x0 0xf20>,
+                             <0x0 0x40000f20 0x0 0xa8>,
+                             <0x0 0x40001000 0x0 0x4000>,
+                             <0x0 0x40100000 0x0 0x100000>,
+                             <0x0 0x01c03000 0x0 0x1000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config",
+                                   "mhi";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
+                       bus-range = <0x00 0xff>;
+
+                       dma-coherent;
+
+                       linux,pci-domain = <0>;
+                       num-lanes = <2>;
+
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi0",
+                                         "msi1",
+                                         "msi2",
+                                         "msi3",
+                                         "msi4",
+                                         "msi5",
+                                         "msi6",
+                                         "msi7",
+                                         "global";
+
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>;
+
+                       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>;
+                       clock-names = "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a";
+
+                       assigned-clocks = <&gcc GCC_PCIE_0_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       interconnects = <&pcie_anoc MASTER_PCIE_0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_PCIE_0 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "pcie-mem",
+                                            "cpu-pcie";
+
+                       iommu-map = <0x0 &pcie_smmu 0x0000 0x1>,
+                                   <0x100 &pcie_smmu 0x0001 0x1>;
+
+                       resets = <&gcc GCC_PCIE_0_BCR>,
+                                <&gcc GCC_PCIE_0_LINK_DOWN_BCR>;
+                       reset-names = "pci",
+                                     "link_down";
+
+                       power-domains = <&gcc GCC_PCIE_0_GDSC>;
+
+                       eq-presets-8gts = /bits/ 16 <0x5555 0x5555>;
+                       eq-presets-16gts = /bits/ 8 <0x55 0x55>;
+
+                       operating-points-v2 = <&pcie0_opp_table>;
+
+                       status = "disabled";
+
+                       pcie0_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               /* GEN 1 x1 */
+                               opp-2500000 {
+                                       opp-hz = /bits/ 64 <2500000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <250000 1>;
+                               };
+
+                               /* GEN 1 x2 and GEN 2 x1 */
+                               opp-5000000 {
+                                       opp-hz = /bits/ 64 <5000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <500000 1>;
+                               };
+
+                               /* GEN 2 x2 */
+                               opp-10000000 {
+                                       opp-hz = /bits/ 64 <10000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <1000000 1>;
+                               };
+
+                               /* GEN 3 x1 */
+                               opp-8000000 {
+                                       opp-hz = /bits/ 64 <8000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <984500 1>;
+                               };
+
+                               /* GEN 3 x2 and GEN 4 x1 */
+                               opp-16000000 {
+                                       opp-hz = /bits/ 64 <16000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <1969000 1>;
+                               };
+
+                               /* GEN 4 x2 */
+                               opp-32000000 {
+                                       opp-hz = /bits/ 64 <32000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <3938000 1>;
+                               };
+                       };
+
+                       pcieport0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                               phys = <&pcie0_phy>;
+                       };
+               };
+
+               pcie0_phy: phy@1c04000 {
+                       compatible = "qcom,qcs8300-qmp-gen4x2-pcie-phy";
+                       reg = <0x0 0x01c04000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_PCIE_0_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_CLKREF_EN>,
+                                <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>,
+                                <&gcc GCC_PCIE_0_PIPE_CLK>,
+                                <&gcc GCC_PCIE_0_PIPEDIV2_CLK>;
+                       clock-names = "aux",
+                                     "cfg_ahb",
+                                     "ref",
+                                     "rchng",
+                                     "pipe",
+                                     "pipediv2";
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       #clock-cells = <0>;
+                       clock-output-names = "pcie_0_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               pcie1: pci@1c10000 {
+                       device_type = "pci";
+                       compatible = "qcom,pcie-qcs8300", "qcom,pcie-sa8775p";
+                       reg = <0x0 0x01c10000 0x0 0x3000>,
+                             <0x0 0x60000000 0x0 0xf20>,
+                             <0x0 0x60000f20 0x0 0xa8>,
+                             <0x0 0x60001000 0x0 0x4000>,
+                             <0x0 0x60100000 0x0 0x100000>,
+                             <0x0 0x01c13000 0x0 0x1000>;
+                       reg-names = "parf",
+                                   "dbi",
+                                   "elbi",
+                                   "atu",
+                                   "config",
+                                   "mhi";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x1fd00000>;
+                       bus-range = <0x00 0xff>;
+
+                       dma-coherent;
+
+                       linux,pci-domain = <1>;
+                       num-lanes = <4>;
+
+                       interrupts = <GIC_SPI 519 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 518 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi0",
+                                         "msi1",
+                                         "msi2",
+                                         "msi3",
+                                         "msi4",
+                                         "msi5",
+                                         "msi6",
+                                         "msi7",
+                                         "global";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &intc GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &intc GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
+
+                       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>;
+                       clock-names = "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       interconnects = <&pcie_anoc MASTER_PCIE_1 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_PCIE_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
+                       iommu-map = <0x0 &pcie_smmu 0x0080 0x1>,
+                                   <0x100 &pcie_smmu 0x0081 0x1>;
+
+                       resets = <&gcc GCC_PCIE_1_BCR>,
+                                <&gcc GCC_PCIE_1_LINK_DOWN_BCR>;
+                       reset-names = "pci",
+                                     "link_down";
+
+                       power-domains = <&gcc GCC_PCIE_1_GDSC>;
+
+                       eq-presets-8gts = /bits/ 16 <0x5555 0x5555 0x5555 0x5555>;
+                       eq-presets-16gts = /bits/ 8 <0x55 0x55 0x55 0x55>;
+
+                       operating-points-v2 = <&pcie1_opp_table>;
+
+                       status = "disabled";
+
+                       pcie1_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               /* GEN 1 x1 */
+                               opp-2500000 {
+                                       opp-hz = /bits/ 64 <2500000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <250000 1>;
+                               };
+
+                               /* GEN 1 x2 and GEN 2 x1 */
+                               opp-5000000 {
+                                       opp-hz = /bits/ 64 <5000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <500000 1>;
+                               };
+
+                               /* GEN 1 x4 and GEN 2 x2 */
+                               opp-10000000 {
+                                       opp-hz = /bits/ 64 <10000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <1000000 1>;
+                               };
+
+                               /* GEN 2 x4 */
+                               opp-20000000 {
+                                       opp-hz = /bits/ 64 <20000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                                       opp-peak-kBps = <2000000 1>;
+                               };
+
+                               /* GEN 3 x1 */
+                               opp-8000000 {
+                                       opp-hz = /bits/ 64 <8000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                                       opp-peak-kBps = <984500 1>;
+                               };
+
+                               /* GEN 3 x2 and GEN 4 x1 */
+                               opp-16000000 {
+                                       opp-hz = /bits/ 64 <16000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <1969000 1>;
+                               };
+
+                               /* GEN 3 x4 and GEN 4 x2 */
+                               opp-32000000 {
+                                       opp-hz = /bits/ 64 <32000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <3938000 1>;
+                               };
+
+                               /* GEN 4 x4 */
+                               opp-64000000 {
+                                       opp-hz = /bits/ 64 <64000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <7876000 1>;
+                               };
+                       };
+
+                       pcieport1: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                               phys = <&pcie1_phy>;
+                       };
+               };
+
+               pcie1_phy: phy@1c14000 {
+                       compatible = "qcom,sa8775p-qmp-gen4x4-pcie-phy";
+                       reg = <0x0 0x01c14000 0x0 0x4000>;
+
+                       clocks = <&gcc GCC_PCIE_1_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_CLKREF_EN>,
+                                <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>,
+                                <&gcc GCC_PCIE_1_PIPE_CLK>,
+                                <&gcc GCC_PCIE_1_PIPEDIV2_CLK>;
+                       clock-names = "aux",
+                                     "cfg_ahb",
+                                     "ref",
+                                     "rchng",
+                                     "pipe",
+                                     "pipediv2";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+                       reset-names = "phy";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "pcie_1_pipe_clk";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
                ufs_mem_hc: ufs@1d84000 {
                        compatible = "qcom,qcs8300-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
                        reg = <0x0 0x01d84000 0x0 0x3000>;
                        clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
                };
 
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,qcs8300-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0x0 0x01dfa000 0x0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x480 0x0>,
+                                <&apps_smmu 0x481 0x0>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO_CORE0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "memory";
+               };
+
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x20000>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               ctcu@4001000 {
+                       compatible = "qcom,qcs8300-ctcu", "qcom,sa8775p-ctcu";
+                       reg = <0x0 0x04001000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       ctcu_in0: endpoint {
+                                               remote-endpoint = <&etr0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       ctcu_in1: endpoint {
+                                               remote-endpoint = <&etr1_out>;
+                                       };
+                               };
+                       };
+               };
+
                stm@4002000 {
                        compatible = "arm,coresight-stm", "arm,primecell";
                        reg = <0x0 0x04002000 0x0 0x1000>,
                                #address-cells = <1>;
                                #size-cells = <0>;
 
+                               port@0 {
+                                       reg = <0>;
+
+                                       swao_rep_out0: endpoint {
+                                               remote-endpoint = <&qdss_rep_in>;
+                                       };
+                               };
+
                                port@1 {
                                        reg = <1>;
 
                        };
                };
 
+               replicator@4046000 {
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
+                       reg = <0x0 0x04046000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               port {
+                                       qdss_rep_in: endpoint {
+                                               remote-endpoint = <&swao_rep_out0>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       qdss_rep_out0: endpoint {
+                                               remote-endpoint = <&etr_rep_in>;
+                                       };
+                               };
+                       };
+               };
+
+               tmc@4048000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x0 0x04048000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       iommus = <&apps_smmu 0x04c0 0x00>;
+
+                       arm,scatter-gather;
+
+                       in-ports {
+                               port {
+                                       etr0_in: endpoint {
+                                               remote-endpoint = <&etr_rep_out0>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       etr0_out: endpoint {
+                                               remote-endpoint = <&ctcu_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               replicator@404e000 {
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
+                       reg = <0x0 0x0404e000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               port {
+                                       etr_rep_in: endpoint {
+                                               remote-endpoint = <&qdss_rep_out0>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       etr_rep_out0: endpoint {
+                                               remote-endpoint = <&etr0_in>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       etr_rep_out1: endpoint {
+                                               remote-endpoint = <&etr1_in>;
+                                       };
+                               };
+                       };
+               };
+
+               tmc@404f000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x0 0x0404f000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       iommus = <&apps_smmu 0x04a0 0x40>;
+
+                       arm,scatter-gather;
+                       arm,buffer-size = <0x400000>;
+
+                       in-ports {
+                               port {
+                                       etr1_in: endpoint {
+                                               remote-endpoint = <&etr_rep_out1>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       etr1_out: endpoint {
+                                               remote-endpoint = <&ctcu_in1>;
+                                       };
+                               };
+                       };
+               };
+
                tpdm@4841000 {
                        compatible = "qcom,coresight-tpdm", "arm,primecell";
                        reg = <0x0 0x04841000 0x0 0x1000>;
                        #power-domain-cells = <1>;
                };
 
-               camcc: clock-controller@ade0000 {
-                       compatible = "qcom,qcs8300-camcc";
-                       reg = <0x0 0x0ade0000 0x0 0x20000>;
-                       clocks = <&gcc GCC_CAMERA_AHB_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK_A>,
-                                <&sleep_clk>;
-                       power-domains = <&rpmhpd RPMHPD_MMCX>;
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-                       #power-domain-cells = <1>;
-               };
+               camss: isp@ac78000 {
+                       compatible = "qcom,qcs8300-camss";
+
+                       reg = <0x0 0xac78000 0x0 0x1000>,
+                             <0x0 0xac7a000 0x0 0xf00>,
+                             <0x0 0xac7c000 0x0 0xf00>,
+                             <0x0 0xac84000 0x0 0xf00>,
+                             <0x0 0xac88000 0x0 0xf00>,
+                             <0x0 0xac8c000 0x0 0xf00>,
+                             <0x0 0xac90000 0x0 0xf00>,
+                             <0x0 0xac94000 0x0 0xf00>,
+                             <0x0 0xac9c000 0x0 0x2000>,
+                             <0x0 0xac9e000 0x0 0x2000>,
+                             <0x0 0xaca0000 0x0 0x2000>,
+                             <0x0 0xacac000 0x0 0x400>,
+                             <0x0 0xacad000 0x0 0x400>,
+                             <0x0 0xacae000 0x0 0x400>,
+                             <0x0 0xac4d000 0x0 0xf000>,
+                             <0x0 0xac60000 0x0 0xf000>,
+                             <0x0 0xac85000 0x0 0xd00>,
+                             <0x0 0xac89000 0x0 0xd00>,
+                             <0x0 0xac8d000 0x0 0xd00>,
+                             <0x0 0xac91000 0x0 0xd00>,
+                             <0x0 0xac95000 0x0 0xd00>;
+                       reg-names = "csid_wrapper",
+                                   "csid0",
+                                   "csid1",
+                                   "csid_lite0",
+                                   "csid_lite1",
+                                   "csid_lite2",
+                                   "csid_lite3",
+                                   "csid_lite4",
+                                   "csiphy0",
+                                   "csiphy1",
+                                   "csiphy2",
+                                   "tpg0",
+                                   "tpg1",
+                                   "tpg2",
+                                   "vfe0",
+                                   "vfe1",
+                                   "vfe_lite0",
+                                   "vfe_lite1",
+                                   "vfe_lite2",
+                                   "vfe_lite3",
+                                   "vfe_lite4";
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_CORE_AHB_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CPAS_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_LITE_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_0_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_1_CLK>,
+                                <&camcc CAM_CC_CSID_CLK>,
+                                <&camcc CAM_CC_CSIPHY0_CLK>,
+                                <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY1_CLK>,
+                                <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY2_CLK>,
+                                <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSID_CSIPHY_RX_CLK>,
+                                <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                                <&gcc GCC_CAMERA_SF_AXI_CLK>,
+                                <&camcc CAM_CC_ICP_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_0_CLK>,
+                                <&camcc CAM_CC_IFE_0_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_1_CLK>,
+                                <&camcc CAM_CC_IFE_1_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CSID_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "core_ahb",
+                                     "cpas_ahb",
+                                     "cpas_fast_ahb_clk",
+                                     "cpas_vfe_lite",
+                                     "cpas_vfe0",
+                                     "cpas_vfe1",
+                                     "csid",
+                                     "csiphy0",
+                                     "csiphy0_timer",
+                                     "csiphy1",
+                                     "csiphy1_timer",
+                                     "csiphy2",
+                                     "csiphy2_timer",
+                                     "csiphy_rx",
+                                     "gcc_axi_hf",
+                                     "gcc_axi_sf",
+                                     "icp_ahb",
+                                     "vfe0",
+                                     "vfe0_fast_ahb",
+                                     "vfe1",
+                                     "vfe1_fast_ahb",
+                                     "vfe_lite",
+                                     "vfe_lite_ahb",
+                                     "vfe_lite_cphy_rx",
+                                     "vfe_lite_csid";
+
+                       interrupts = <GIC_SPI 565 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 564 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 359 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 759 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 758 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 604 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 545 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 546 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 547 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 360 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 761 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 760 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 605 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "csid0",
+                                         "csid1",
+                                         "csid_lite0",
+                                         "csid_lite1",
+                                         "csid_lite2",
+                                         "csid_lite3",
+                                         "csid_lite4",
+                                         "csiphy0",
+                                         "csiphy1",
+                                         "csiphy2",
+                                         "tpg0",
+                                         "tpg1",
+                                         "tpg2",
+                                         "vfe0",
+                                         "vfe1",
+                                         "vfe_lite0",
+                                         "vfe_lite1",
+                                         "vfe_lite2",
+                                         "vfe_lite3",
+                                         "vfe_lite4";
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_CAMERA_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+                                       <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "ahb",
+                                            "hf_0";
+
+                       iommus = <&apps_smmu 0x2400 0x20>;
+
+                       power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       power-domain-names = "top";
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                               };
+                       };
+               };
+
+               camcc: clock-controller@ade0000 {
+                       compatible = "qcom,qcs8300-camcc";
+                       reg = <0x0 0x0ade0000 0x0 0x20000>;
+                       clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>;
+                       power-domains = <&rpmhpd RPMHPD_MMCX>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               mdss: display-subsystem@ae00000 {
+                       compatible = "qcom,qcs8300-mdss";
+                       reg = <0x0 0x0ae00000 0x0 0x1000>;
+                       reg-names = "mdss";
+
+                       interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&dispcc MDSS_DISP_CC_MDSS_AHB_CLK>,
+                                <&gcc GCC_DISP_HF_AXI_CLK>,
+                                <&dispcc MDSS_DISP_CC_MDSS_MDP_CLK>;
+
+                       resets = <&dispcc MDSS_DISP_CC_MDSS_CORE_BCR>;
+
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&mmss_noc MASTER_MDP1 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "mdp0-mem",
+                                            "mdp1-mem",
+                                            "cpu-cfg";
+
+                       power-domains = <&dispcc MDSS_DISP_CC_MDSS_CORE_GDSC>;
+
+                       iommus = <&apps_smmu 0x1000 0x402>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdss_mdp: display-controller@ae01000 {
+                               compatible = "qcom,qcs8300-dpu", "qcom,sa8775p-dpu";
+                               reg = <0x0 0x0ae01000 0x0 0x8f000>,
+                                     <0x0 0x0aeb0000 0x0 0x2008>;
+                               reg-names = "mdp", "vbif";
+
+                               interrupts-extended = <&mdss 0>;
+
+                               clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_MDP_LUT_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_MDP_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_VSYNC_CLK>;
+                               clock-names = "nrt_bus",
+                                             "iface",
+                                             "lut",
+                                             "core",
+                                             "vsync";
+
+                               assigned-clocks = <&dispcc MDSS_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_intf0_out: endpoint {
+                                                       remote-endpoint = <&mdss_dp0_in>;
+                                               };
+                                       };
+                               };
+
+                               mdp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-375000000 {
+                                               opp-hz = /bits/ 64 <375000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-500000000 {
+                                               opp-hz = /bits/ 64 <500000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+
+                                       opp-575000000 {
+                                               opp-hz = /bits/ 64 <575000000>;
+                                               required-opps = <&rpmhpd_opp_turbo>;
+                                       };
+
+                                       opp-650000000 {
+                                               opp-hz = /bits/ 64 <650000000>;
+                                               required-opps = <&rpmhpd_opp_turbo_l1>;
+                                       };
+                               };
+                       };
+
+                       mdss_dp0_phy: phy@aec2a00 {
+                               compatible = "qcom,qcs8300-edp-phy", "qcom,sa8775p-edp-phy";
+
+                               reg = <0x0 0x0aec2a00 0x0 0x19c>,
+                                     <0x0 0x0aec2200 0x0 0xec>,
+                                     <0x0 0x0aec2600 0x0 0xec>,
+                                     <0x0 0x0aec2000 0x0 0x1c8>;
+
+                               clocks = <&dispcc MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_AHB_CLK>;
+                               clock-names = "aux",
+                                             "cfg_ahb";
+
+                               power-domains = <&rpmhpd RPMHPD_MX>;
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               status = "disabled";
+                       };
+
+                       mdss_dp0: displayport-controller@af54000 {
+                               compatible = "qcom,qcs8300-dp", "qcom,sa8775p-dp";
+
+                               reg = <0x0 0x0af54000 0x0 0x200>,
+                                     <0x0 0x0af54200 0x0 0x200>,
+                                     <0x0 0x0af55000 0x0 0xc00>,
+                                     <0x0 0x0af56000 0x0 0x09c>,
+                                     <0x0 0x0af57000 0x0 0x09c>,
+                                     <0x0 0x0af58000 0x0 0x09c>,
+                                     <0x0 0x0af59000 0x0 0x09c>,
+                                     <0x0 0x0af5a000 0x0 0x23c>,
+                                     <0x0 0x0af5b000 0x0 0x23c>;
+
+                               interrupts-extended = <&mdss 12>;
+
+                               clocks = <&dispcc MDSS_DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_LINK_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL0_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL1_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL2_CLK>,
+                                        <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL3_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel",
+                                             "stream_1_pixel",
+                                             "stream_2_pixel",
+                                             "stream_3_pixel";
+                               assigned-clocks = <&dispcc MDSS_DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>,
+                                                 <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>,
+                                                 <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL1_CLK_SRC>,
+                                                 <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL2_CLK_SRC>,
+                                                 <&dispcc MDSS_DISP_CC_MDSS_DPTX0_PIXEL3_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dp0_phy 0>,
+                                                        <&mdss_dp0_phy 1>,
+                                                        <&mdss_dp0_phy 1>,
+                                                        <&mdss_dp0_phy 1>,
+                                                        <&mdss_dp0_phy 1>;
+                               phys = <&mdss_dp0_phy>;
+                               phy-names = "dp";
+
+                               operating-points-v2 = <&dp_opp_table>;
+                               power-domains = <&rpmhpd RPMHPD_MMCX>;
+
+                               #sound-dai-cells = <0>;
+
+                               status = "disabled";
+
+                               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 { };
+                                       };
+                               };
+
+                               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>;
+                                       };
+                               };
+                       };
+               };
 
                dispcc: clock-controller@af00000 {
                        compatible = "qcom,sa8775p-dispcc0";
                                 <&rpmhcc RPMH_CXO_CLK>,
                                 <&rpmhcc RPMH_CXO_CLK_A>,
                                 <&sleep_clk>,
-                                <0>, <0>, <0>, <0>,
+                                <&mdss_dp0_phy 0>,
+                                <&mdss_dp0_phy 1>,
+                                <0>, <0>,
                                 <0>, <0>, <0>, <0>;
                        power-domains = <&rpmhpd RPMHPD_MMCX>;
                        #clock-cells = <1>;
                                          <235 723 5>;
                };
 
+               tsens2: thermal-sensor@c251000 {
+                       compatible = "qcom,qcs8300-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c251000 0x0 0x1000>,
+                             <0x0 0x0c224000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 572 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 609 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #qcom,sensors = <10>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens3: thermal-sensor@c252000 {
+                       compatible = "qcom,qcs8300-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c252000 0x0 0x1000>,
+                             <0x0 0x0c225000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 573 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 610 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #qcom,sensors = <10>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens0: thermal-sensor@c263000 {
+                       compatible = "qcom,qcs8300-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c263000 0x0 0x1000>,
+                             <0x0 0x0c222000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #qcom,sensors = <10>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c265000 {
+                       compatible = "qcom,qcs8300-tsens", "qcom,tsens-v2";
+                       reg = <0x0 0x0c265000 0x0 0x1000>,
+                             <0x0 0x0c223000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #qcom,sensors = <10>;
+                       #thermal-sensor-cells = <1>;
+               };
+
                aoss_qmp: power-management@c300000 {
                        compatible = "qcom,qcs8300-aoss-qmp", "qcom,aoss-qmp";
                        reg = <0x0 0x0c300000 0x0 0x400>;
                        };
 
                        qup_uart10_rts: qup-uart10-rts-state {
-                               pins = "gpio84";
+                               pins = "gpio85";
                                function = "qup1_se2";
                        };
 
                        qup_uart10_tx: qup-uart10-tx-state {
-                               pins = "gpio85";
+                               pins = "gpio86";
                                function = "qup1_se2";
                        };
 
                };
        };
 
+       thermal_zones: thermal-zones {
+               aoss-0-thermal {
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               aoss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-0-0-thermal {
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-1-0-thermal {
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-2-0-thermal {
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-3-0-thermal {
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-0-thermal {
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               gpuss0_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               gpuss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss0_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               audio-thermal {
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               audio-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camss-0-thermal {
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               camss-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               pcie-0-thermal {
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               pcie-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss-0-0-thermal {
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               cpuss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss-1-thermal {
+                       thermal-sensors = <&tsens1 0>;
+
+                       trips {
+                               aoss1-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-0-1-thermal {
+                       thermal-sensors = <&tsens1 1>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-1-1-thermal {
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-2-1-thermal {
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-0-3-1-thermal {
+                       thermal-sensors = <&tsens1 4>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-1-thermal {
+                       thermal-sensors = <&tsens1 5>;
+
+                       trips {
+                               gpuss1_alert0: trip-point0 {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               gpuss1-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpuss1_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               video-thermal {
+                       thermal-sensors = <&tsens1 6>;
+
+                       trips {
+                               video-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camss-1-thermal {
+                       thermal-sensors = <&tsens1 7>;
+
+                       trips {
+                               camss1-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               pcie-1-thermal {
+                       thermal-sensors = <&tsens1 8>;
+
+                       trips {
+                               pcie-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss-0-1-thermal {
+                       thermal-sensors = <&tsens1 9>;
+
+                       trips {
+                               cpuss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss-2-thermal {
+                       thermal-sensors = <&tsens2 0>;
+
+                       trips {
+                               aoss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-0-0-thermal {
+                       thermal-sensors = <&tsens2 1>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-1-0-thermal {
+                       thermal-sensors = <&tsens2 2>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-2-0-thermal {
+                       thermal-sensors = <&tsens2 3>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-3-0-thermal {
+                       thermal-sensors = <&tsens2 4>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp-0-0-0-thermal {
+                       thermal-sensors = <&tsens2 5>;
+
+                       trips {
+                               nsp-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp-0-1-0-thermal {
+                       thermal-sensors = <&tsens2 6>;
+
+                       trips {
+                               nsp-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp-0-2-0-thermal {
+                       thermal-sensors = <&tsens2 7>;
+
+                       trips {
+                               nsp-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               ddrss-0-thermal {
+                       thermal-sensors = <&tsens2 8>;
+
+                       trips {
+                               ddrss-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss-1-0-thermal {
+                       thermal-sensors = <&tsens2 9>;
+
+                       trips {
+                               cpuss1-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss-3-thermal {
+                       thermal-sensors = <&tsens3 0>;
+
+                       trips {
+                               aoss3-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-0-1-thermal {
+                       thermal-sensors = <&tsens3 1>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-1-1-thermal {
+                       thermal-sensors = <&tsens3 2>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-2-1-thermal {
+                       thermal-sensors = <&tsens3 3>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu-1-3-1-thermal {
+                       thermal-sensors = <&tsens3 4>;
+
+                       trips {
+                               cpu-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp-0-0-1-thermal {
+                       thermal-sensors = <&tsens3 5>;
+
+                       trips {
+                               nsp-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp-0-1-1-thermal {
+                       thermal-sensors = <&tsens3 6>;
+
+                       trips {
+                               nsp-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp-0-2-1-thermal {
+                       thermal-sensors = <&tsens3 7>;
+
+                       trips {
+                               nsp-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               ddrss-1-thermal {
+                       thermal-sensors = <&tsens3 8>;
+
+                       trips {
+                               ddrss-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss-1-1-thermal {
+                       thermal-sensors = <&tsens3 9>;
+
+                       trips {
+                               cpuss1-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
index d3a25a837488c940f7f9dd08d0aa4054aeed014c..e39743e22043894955fddc17f04ed859fede5aa9 100644 (file)
                        interrupt-names = "wdog", "fatal", "ready",
                                          "handover", "stop-ack";
 
-                       power-domains = <&rpmpd MSM8916_VDDCX>,
-                                       <&rpmpd MSM8916_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx", "mx";
 
                        clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
                                              <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
 
-                       power-domains = <&rpmpd MSM8916_VDDCX>,
-                                       <&rpmpd MSM8916_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx", "mx";
 
                        qcom,smem-states = <&wcnss_smp2p_out 0>;
index 8a642fce2e40d6d252a1cfbdfed602e6789ef09a..a2907f8a6376c52116dc8f8a26e4d4db89512edb 100644 (file)
                        clock-names = "iface",
                                      "bus",
                                      "vsync";
-
+                       resets = <&gcc GCC_MDSS_BCR>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
 
                        interrupt-controller;
                                phys = <&mdss_dsi0_phy>;
 
                                operating-points-v2 = <&mdss_dsi0_opp_table>;
-                               power-domains = <&rpmpd MSM8917_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                #address-cells = <1>;
                                #size-cells = <0>;
                        pinctrl-0 = <&sdc1_default>;
                        pinctrl-1 = <&sdc1_sleep>;
                        pinctrl-names = "default", "sleep";
-                       power-domains = <&rpmpd MSM8917_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        mmc-hs200-1_8v;
                        mmc-hs400-1_8v;
                        mmc-ddr-1_8v;
                        pinctrl-0 = <&sdc2_default>;
                        pinctrl-1 = <&sdc2_sleep>;
                        pinctrl-names = "default", "sleep";
-                       power-domains = <&rpmpd MSM8917_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        bus-width = <4>;
                        status = "disabled";
                };
                                              <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
 
-                       power-domains = <&rpmpd MSM8917_VDDCX>,
-                                       <&rpmpd MSM8917_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx", "mx";
 
                        qcom,smem-states = <&wcnss_smp2p_out 0>;
index b936210809894ddfd4b58fa1d48091361ce2f54f..7de6447de48fe704e7854a9bf3b019d263b999fa 100644 (file)
                        clock-names = "iface",
                                      "bus",
                                      "vsync";
+                       resets = <&gcc GCC_MDSS_BCR>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
 
                        interrupt-controller;
                                phys = <&mdss_dsi0_phy>;
 
                                operating-points-v2 = <&mdss_dsi0_opp_table>;
-                               power-domains = <&rpmpd MSM8937_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                #address-cells = <1>;
                                #size-cells = <0>;
                                phys = <&mdss_dsi1_phy>;
 
                                operating-points-v2 = <&mdss_dsi1_opp_table>;
-                               power-domains = <&rpmpd MSM8937_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                #address-cells = <1>;
                                #size-cells = <0>;
                        pinctrl-1 = <&sdc1_sleep>;
                        pinctrl-names = "default",
                                        "sleep";
-                       power-domains = <&rpmpd MSM8937_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        mmc-hs200-1_8v;
                        mmc-hs400-1_8v;
                        mmc-ddr-1_8v;
                        pinctrl-1 = <&sdc2_sleep>;
                        pinctrl-names = "default",
                                        "sleep";
-                       power-domains = <&rpmpd MSM8937_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        bus-width = <4>;
                        status = "disabled";
                };
                                          "handover",
                                          "stop-ack";
 
-                       power-domains = <&rpmpd MSM8937_VDDCX>,
-                                       <&rpmpd MSM8937_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx",
                                             "mx";
 
index ebb548e62e02b9bb9ff65633099b87dbabd1bb7c..ea90b00a2c8a4954242502143e7ba4a496b9b259 100644 (file)
                serial0 = &blsp_uart2;
        };
 
+       battery: battery {
+               compatible = "simple-battery";
+               device-chemistry = "lithium-ion-polymer";
+               voltage-min-design-microvolt = <3400000>;
+               voltage-max-design-microvolt = <4400000>;
+               energy-full-design-microwatt-hours = <11500000>;
+               charge-full-design-microamp-hours = <3000000>;
+
+               ocv-capacity-celsius = <(-20) 0 25 40 60>;
+               ocv-capacity-table-0 = <4378000 100>, <4220000 95>, <4125000 90>,
+                       <4071000 85>, <3977000 80>, <3916000 75>, <3866000 70>,
+                       <3838000 65>, <3822000 60>, <3809000 55>, <3797000 50>,
+                       <3784000 45>, <3771000 40>, <3757000 35>, <3743000 30>,
+                       <3726000 25>, <3707000 20>, <3688000 16>, <3670000 13>,
+                       <3655000 11>, <3648000 10>, <3636000 9>, <3624000 8>,
+                       <3612000 7>, <3592000 6>, <3569000 5>, <3540000 4>,
+                       <3494000 3>, <3418000 2>, <3289000 1>, <3000000 0>;
+
+               ocv-capacity-table-1 = <4378000 100>, <4292000 95>, <4226000 90>,
+                       <4166000 85>, <4109000 80>, <4064000 75>, <3992000 70>,
+                       <3942000 65>, <3898000 60>, <3859000 55>, <3826000 50>,
+                       <3802000 45>, <3788000 40>, <3779000 35>, <3768000 30>,
+                       <3752000 25>, <3732000 20>, <3712000 16>, <3696000 13>,
+                       <3688000 11>, <3684000 10>, <3680000 9>, <3675000 8>,
+                       <3669000 7>, <3658000 6>, <3636000 5>, <3599000 4>,
+                       <3544000 3>, <3466000 2>, <3341000 1>, <3000000 0>;
+
+               ocv-capacity-table-2 = <4372000 100>, <4306000 95>, <4247000 90>,
+                       <4190000 85>, <4134000 80>, <4081000 75>, <4030000 70>,
+                       <3984000 65>, <3930000 60>, <3884000 55>, <3850000 50>,
+                       <3826000 45>, <3804000 40>, <3786000 35>, <3770000 30>,
+                       <3753000 25>, <3734000 20>, <3712000 16>, <3693000 13>,
+                       <3686000 11>, <3684000 10>, <3682000 9>, <3680000 8>,
+                       <3676000 7>, <3668000 6>, <3643000 5>, <3600000 4>,
+                       <3542000 3>, <3462000 2>, <3340000 1>, <3000000 0>;
+
+               ocv-capacity-table-3 = <4365000 100>, <4304000 95>, <4246000 90>,
+                       <4189000 85>, <4133000 80>, <4080000 75>, <4030000 70>,
+                       <3985000 65>, <3933000 60>, <3886000 55>, <3852000 50>,
+                       <3827000 45>, <3806000 40>, <3789000 35>, <3769000 30>,
+                       <3746000 25>, <3726000 20>, <3706000 16>, <3688000 13>,
+                       <3681000 11>, <3678000 10>, <3676000 9>, <3676000 8>,
+                       <3672000 7>, <3660000 6>, <3634000 5>, <3588000 4>,
+                       <3528000 3>, <3448000 2>, <3322000 1>, <3000000 0>;
+
+               ocv-capacity-table-4 = <4358000 100>, <4298000 95>, <4240000 90>,
+                       <4183000 85>, <4128000 80>, <4076000 75>, <4027000 70>,
+                       <3983000 65>, <3935000 60>, <3887000 55>, <3852000 50>,
+                       <3827000 45>, <3806000 40>, <3789000 35>, <3764000 30>,
+                       <3738000 25>, <3715000 20>, <3695000 16>, <3677000 13>,
+                       <3672000 11>, <3669000 10>, <3667000 9>, <3666000 8>,
+                       <3662000 7>, <3652000 6>, <3622000 5>, <3577000 4>,
+                       <3518000 3>, <3440000 2>, <3321000 1>, <3000000 0>;
+       };
+
        chosen {
                stdout-path = "serial0";
        };
@@ -27,7 +82,7 @@
        gpio-keys {
                compatible = "gpio-keys";
 
-               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-0 = <&gpio_hall_sensor_default>, <&gpio_keys_default>;
                pinctrl-names = "default";
 
                button-volume-up {
                        linux,code = <KEY_VOLUMEDOWN>;
                        debounce-interval = <15>;
                };
+
+               event-hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+                       debounce-interval = <150>;
+               };
        };
 
        reg_sd_vmmc: regulator-sdcard-vmmc {
        reg = <0x0 0x86800000 0x0 0x5500000>;
 };
 
+&pm8916_bms {
+       monitored-battery = <&battery>;
+
+       status = "okay";
+};
+
 &pm8916_codec {
        qcom,micbias-lvl = <2800>;
        qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
                bias-pull-up;
        };
 
+       gpio_hall_sensor_default: gpio-hall-sensor-default-state {
+               pins = "gpio108";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        usb_id_default: usb-id-default-state {
                pins = "gpio110";
                function = "gpio";
index adb96cd8d643e5fde1ac95c0fc3c9c3c3efb07e8..659d127b1bc3570d137ca986e4eacf600c183e5e 100644 (file)
 #include "msm8939.dtsi"
 #include "pm8916.dtsi"
 
+&camss {
+       vdda-supply = <&pm8916_l2>;
+};
+
 &mdss_dsi0 {
        vdda-supply = <&pm8916_l2>;
        vddio-supply = <&pm8916_l6>;
index eb64ec35e7f0e1c63b0b96f68d30006c2e440998..d4d7b0c9206c3f66ed8317d73ab959b68575886d 100644 (file)
                        };
                };
 
+               camss: isp@1b0ac00 {
+                       compatible = "qcom,msm8939-camss";
+                       reg = <0x01b0ac00 0x200>,
+                             <0x01b00030 0x4>,
+                             <0x01b0b000 0x200>,
+                             <0x01b00038 0x4>,
+                             <0x01b08000 0x100>,
+                             <0x01b08400 0x100>,
+                             <0x01b0a000 0x500>,
+                             <0x01b00020 0x10>,
+                             <0x01b10000 0x1000>,
+                             <0x01b08800 0x100>,
+                             <0x01b40000 0x200>;
+                       reg-names = "csiphy0",
+                                   "csiphy0_clk_mux",
+                                   "csiphy1",
+                                   "csiphy1_clk_mux",
+                                   "csid0",
+                                   "csid1",
+                                   "ispif",
+                                   "csi_clk_mux",
+                                   "vfe0",
+                                   "csid2",
+                                   "vfe0_vbif";
+
+                       clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
+                                <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
+                                <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
+                                <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CSI0_CLK>,
+                                <&gcc GCC_CAMSS_CSI0PHY_CLK>,
+                                <&gcc GCC_CAMSS_CSI0PIX_CLK>,
+                                <&gcc GCC_CAMSS_CSI0RDI_CLK>,
+                                <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CSI1_CLK>,
+                                <&gcc GCC_CAMSS_CSI1PHY_CLK>,
+                                <&gcc GCC_CAMSS_CSI1PIX_CLK>,
+                                <&gcc GCC_CAMSS_CSI1RDI_CLK>,
+                                <&gcc GCC_CAMSS_AHB_CLK>,
+                                <&gcc GCC_CAMSS_VFE0_CLK>,
+                                <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
+                                <&gcc GCC_CAMSS_VFE_AHB_CLK>,
+                                <&gcc GCC_CAMSS_VFE_AXI_CLK>,
+                                <&gcc GCC_CAMSS_CSI2_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CSI2_CLK>,
+                                <&gcc GCC_CAMSS_CSI2PHY_CLK>,
+                                <&gcc GCC_CAMSS_CSI2PIX_CLK>,
+                                <&gcc GCC_CAMSS_CSI2RDI_CLK>;
+                       clock-names = "top_ahb",
+                                     "ispif_ahb",
+                                     "csiphy0_timer",
+                                     "csiphy1_timer",
+                                     "csi0_ahb",
+                                     "csi0",
+                                     "csi0_phy",
+                                     "csi0_pix",
+                                     "csi0_rdi",
+                                     "csi1_ahb",
+                                     "csi1",
+                                     "csi1_phy",
+                                     "csi1_pix",
+                                     "csi1_rdi",
+                                     "ahb",
+                                     "vfe0",
+                                     "csi_vfe0",
+                                     "vfe_ahb",
+                                     "vfe_axi",
+                                     "csi2_ahb",
+                                     "csi2",
+                                     "csi2_phy",
+                                     "csi2_pix",
+                                     "csi2_rdi";
+
+                       interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "csiphy0",
+                                         "csiphy1",
+                                         "csid0",
+                                         "csid1",
+                                         "ispif",
+                                         "vfe0",
+                                         "csid2";
+
+                       iommus = <&apps_iommu 3>;
+
+                       power-domains = <&gcc VFE_GDSC>;
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                               };
+                       };
+               };
+
+               cci: cci@1b0c000 {
+                       compatible = "qcom,msm8916-cci", "qcom,msm8226-cci";
+                       reg = <0x01b0c000 0x1000>;
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CCI_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CCI_CLK>,
+                                <&gcc GCC_CAMSS_AHB_CLK>;
+                       clock-names = "camss_top_ahb",
+                                     "cci_ahb",
+                                     "cci",
+                                     "camss_ahb";
+                       assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
+                                         <&gcc GCC_CAMSS_CCI_CLK>;
+                       assigned-clock-rates = <80000000>,
+                                              <19200000>;
+                       pinctrl-0 = <&cci0_default>;
+                       pinctrl-names = "default";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       cci_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <400000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                gpu: gpu@1c00000 {
                        compatible = "qcom,adreno-405.0", "qcom,adreno";
                        reg = <0x01c00000 0x10000>;
                        #iommu-cells = <1>;
                        qcom,iommu-secure-id = <17>;
 
+                       /* vfe */
+                       iommu-ctx@3000 {
+                               compatible = "qcom,msm-iommu-v1-sec";
+                               reg = <0x3000 0x1000>;
+                               interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
                        /* mdp_0: */
                        iommu-ctx@4000 {
                                compatible = "qcom,msm-iommu-v1-ns";
index 76317c5783496675a549815bbed71fd214590dd1..753167c3f861903dfe6168ea672b8e487f7e6813 100644 (file)
                        interrupt-controller;
                        #interrupt-cells = <2>;
 
-                       uart_console_active: uart-console-active-state {
-                               pins = "gpio4", "gpio5";
-                               function = "blsp_uart2";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       uart_console_sleep: uart-console-sleep-state {
-                               pins = "gpio4", "gpio5";
-                               function = "blsp_uart2";
-                               drive-strength = <2>;
-                               bias-pull-down;
-                       };
-
-                       sdc1_clk_on: sdc1-clk-on-state {
-                               pins = "sdc1_clk";
-                               bias-disable;
-                               drive-strength = <16>;
-                       };
-
-                       sdc1_clk_off: sdc1-clk-off-state {
-                               pins = "sdc1_clk";
-                               bias-disable;
-                               drive-strength = <2>;
-                       };
-
-                       sdc1_cmd_on: sdc1-cmd-on-state {
-                               pins = "sdc1_cmd";
-                               bias-disable;
-                               drive-strength = <10>;
-                       };
-
-                       sdc1_cmd_off: sdc1-cmd-off-state {
-                               pins = "sdc1_cmd";
-                               bias-disable;
-                               drive-strength = <2>;
-                       };
-
-                       sdc1_data_on: sdc1-data-on-state {
-                               pins = "sdc1_data";
-                               bias-pull-up;
-                               drive-strength = <10>;
-                       };
-
-                       sdc1_data_off: sdc1-data-off-state {
-                               pins = "sdc1_data";
-                               bias-pull-up;
-                               drive-strength = <2>;
-                       };
-
-                       sdc1_rclk_on: sdc1-rclk-on-state {
-                               pins = "sdc1_rclk";
-                               bias-pull-down;
-                       };
-
-                       sdc1_rclk_off: sdc1-rclk-off-state {
-                               pins = "sdc1_rclk";
-                               bias-pull-down;
-                       };
-
-                       sdc2_clk_on: sdc2-clk-on-state {
-                               pins = "sdc2_clk";
-                               drive-strength = <16>;
-                               bias-disable;
-                       };
-
-                       sdc2_clk_off: sdc2-clk-off-state {
-                               pins = "sdc2_clk";
-                               bias-disable;
-                               drive-strength = <2>;
-                       };
-
-                       sdc2_cmd_on: sdc2-cmd-on-state {
-                               pins = "sdc2_cmd";
-                               bias-pull-up;
-                               drive-strength = <10>;
-                       };
-
-                       sdc2_cmd_off: sdc2-cmd-off-state {
-                               pins = "sdc2_cmd";
-                               bias-pull-up;
-                               drive-strength = <2>;
-                       };
-
-                       sdc2_data_on: sdc2-data-on-state {
-                               pins = "sdc2_data";
-                               bias-pull-up;
-                               drive-strength = <10>;
-                       };
-
-                       sdc2_data_off: sdc2-data-off-state {
-                               pins = "sdc2_data";
-                               bias-pull-up;
-                               drive-strength = <2>;
-                       };
-
-                       sdc2_cd_on: cd-on-state {
-                               pins = "gpio133";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
-                       sdc2_cd_off: cd-off-state {
-                               pins = "gpio133";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       gpio_key_default: gpio-key-default-state {
-                               pins = "gpio85";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
                        i2c_1_default: i2c-1-default-state {
                                pins = "gpio2", "gpio3";
                                function = "blsp_i2c1";
                                bias-disable;
                        };
 
-                       i2c_2_default: i2c-2-default-state {
-                               pins = "gpio6", "gpio7";
-                               function = "blsp_i2c2";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_2_sleep: i2c-2-sleep-state {
-                               pins = "gpio6", "gpio7";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_3_default: i2c-3-default-state {
-                               pins = "gpio10", "gpio11";
-                               function = "blsp_i2c3";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_3_sleep: i2c-3-sleep-state {
-                               pins = "gpio10", "gpio11";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_4_default: i2c-4-default-state {
-                               pins = "gpio14", "gpio15";
-                               function = "blsp_i2c4";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_4_sleep: i2c-4-sleep-state {
-                               pins = "gpio14", "gpio15";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_5_default: i2c-5-default-state {
-                               pins = "gpio18", "gpio19";
-                               function = "blsp_i2c5";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_5_sleep: i2c-5-sleep-state {
-                               pins = "gpio18", "gpio19";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_6_default: i2c-6-default-state {
-                               pins = "gpio22", "gpio23";
-                               function = "blsp_i2c6";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_6_sleep: i2c-6-sleep-state {
-                               pins = "gpio22", "gpio23";
-                               function = "gpio";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       i2c_7_default: i2c-7-default-state {
-                               pins = "gpio135", "gpio136";
-                               function = "blsp_i2c7";
+                       uart_console_active: uart-console-active-state {
+                               pins = "gpio4", "gpio5";
+                               function = "blsp_uart2";
                                drive-strength = <2>;
                                bias-disable;
                        };
 
-                       i2c_7_sleep: i2c-7-sleep-state {
-                               pins = "gpio135", "gpio136";
-                               function = "gpio";
+                       uart_console_sleep: uart-console-sleep-state {
+                               pins = "gpio4", "gpio5";
+                               function = "blsp_uart2";
                                drive-strength = <2>;
-                               bias-disable;
+                               bias-pull-down;
                        };
 
-                       i2c_8_default: i2c-8-default-state {
-                               pins = "gpio98", "gpio99";
-                               function = "blsp_i2c8";
+                       i2c_2_default: i2c-2-default-state {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
                                drive-strength = <2>;
                                bias-disable;
                        };
 
-                       i2c_8_sleep: i2c-8-sleep-state {
-                               pins = "gpio98", "gpio99";
+                       i2c_2_sleep: i2c-2-sleep-state {
+                               pins = "gpio6", "gpio7";
                                function = "gpio";
                                drive-strength = <2>;
                                bias-disable;
                                };
                        };
 
+                       i2c_3_default: i2c-3-default-state {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_i2c3";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_3_sleep: i2c-3-sleep-state {
+                               pins = "gpio10", "gpio11";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_4_default: i2c-4-default-state {
+                               pins = "gpio14", "gpio15";
+                               function = "blsp_i2c4";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_4_sleep: i2c-4-sleep-state {
+                               pins = "gpio14", "gpio15";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
                        spi_5_default: spi-5-default-state {
                                cs-pins {
                                        pins = "gpio18";
                                };
                        };
 
+                       uart_5_default: uart-5-default-state {
+                               pins = "gpio16", "gpio17", "gpio18", "gpio19";
+                               function = "blsp_uart5";
+                               drive-strength = <16>;
+                               bias-disable;
+                       };
+
+                       uart_5_sleep: uart-5-sleep-state {
+                               pins = "gpio16", "gpio17", "gpio18", "gpio19";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_5_default: i2c-5-default-state {
+                               pins = "gpio18", "gpio19";
+                               function = "blsp_i2c5";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_5_sleep: i2c-5-sleep-state {
+                               pins = "gpio18", "gpio19";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
                        spi_6_default: spi-6-default-state {
                                cs-pins {
                                        pins = "gpio22";
                                };
                        };
 
+                       i2c_6_default: i2c-6-default-state {
+                               pins = "gpio22", "gpio23";
+                               function = "blsp_i2c6";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_6_sleep: i2c-6-sleep-state {
+                               pins = "gpio22", "gpio23";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cci0_default: cci0-default-state {
+                               pins = "gpio29", "gpio30";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cci1_default: cci1-default-state {
+                               pins = "gpio31", "gpio32";
+                               function = "cci_i2c";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       wcnss_pin_a: wcnss-active-state {
+                               wcss-wlan2-pins {
+                                       pins = "gpio76";
+                                       function = "wcss_wlan2";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+
+                               wcss-wlan1-pins {
+                                       pins = "gpio77";
+                                       function = "wcss_wlan1";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+
+                               wcss-wlan0-pins {
+                                       pins = "gpio78";
+                                       function = "wcss_wlan0";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+
+                               wcss-wlan-pins {
+                                       pins = "gpio79", "gpio80";
+                                       function = "wcss_wlan";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       gpio_key_default: gpio-key-default-state {
+                               pins = "gpio85";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       i2c_8_default: i2c-8-default-state {
+                               pins = "gpio98", "gpio99";
+                               function = "blsp_i2c8";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_8_sleep: i2c-8-sleep-state {
+                               pins = "gpio98", "gpio99";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       sdc2_cd_on: cd-on-state {
+                               pins = "gpio133";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       sdc2_cd_off: cd-off-state {
+                               pins = "gpio133";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_7_default: i2c-7-default-state {
+                               pins = "gpio135", "gpio136";
+                               function = "blsp_i2c7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       i2c_7_sleep: i2c-7-sleep-state {
+                               pins = "gpio135", "gpio136";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
                        spi_7_default: spi-7-default-state {
                                cs-pins {
                                        pins = "gpio136";
                                };
                        };
 
-                       uart_5_default: uart-5-default-state {
-                               pins = "gpio16", "gpio17", "gpio18", "gpio19";
-                               function = "blsp_uart5";
+                       sdc1_clk_on: sdc1-clk-on-state {
+                               pins = "sdc1_clk";
+                               bias-disable;
                                drive-strength = <16>;
+                       };
+
+                       sdc1_clk_off: sdc1-clk-off-state {
+                               pins = "sdc1_clk";
                                bias-disable;
+                               drive-strength = <2>;
                        };
 
-                       uart_5_sleep: uart-5-sleep-state {
-                               pins = "gpio16", "gpio17", "gpio18", "gpio19";
-                               function = "gpio";
+                       sdc1_cmd_on: sdc1-cmd-on-state {
+                               pins = "sdc1_cmd";
+                               bias-disable;
+                               drive-strength = <10>;
+                       };
+
+                       sdc1_cmd_off: sdc1-cmd-off-state {
+                               pins = "sdc1_cmd";
+                               bias-disable;
                                drive-strength = <2>;
+                       };
+
+                       sdc1_data_on: sdc1-data-on-state {
+                               pins = "sdc1_data";
+                               bias-pull-up;
+                               drive-strength = <10>;
+                       };
+
+                       sdc1_data_off: sdc1-data-off-state {
+                               pins = "sdc1_data";
+                               bias-pull-up;
+                               drive-strength = <2>;
+                       };
+
+                       sdc1_rclk_on: sdc1-rclk-on-state {
+                               pins = "sdc1_rclk";
+                               bias-pull-down;
+                       };
+
+                       sdc1_rclk_off: sdc1-rclk-off-state {
+                               pins = "sdc1_rclk";
+                               bias-pull-down;
+                       };
+
+                       sdc2_clk_on: sdc2-clk-on-state {
+                               pins = "sdc2_clk";
+                               drive-strength = <16>;
                                bias-disable;
                        };
 
-                       wcnss_pin_a: wcnss-active-state {
+                       sdc2_clk_off: sdc2-clk-off-state {
+                               pins = "sdc2_clk";
+                               bias-disable;
+                               drive-strength = <2>;
+                       };
 
-                               wcss-wlan2-pins {
-                                       pins = "gpio76";
-                                       function = "wcss_wlan2";
-                                       drive-strength = <6>;
-                                       bias-pull-up;
-                               };
+                       sdc2_cmd_on: sdc2-cmd-on-state {
+                               pins = "sdc2_cmd";
+                               bias-pull-up;
+                               drive-strength = <10>;
+                       };
 
-                               wcss-wlan1-pins {
-                                       pins = "gpio77";
-                                       function = "wcss_wlan1";
-                                       drive-strength = <6>;
-                                       bias-pull-up;
-                               };
+                       sdc2_cmd_off: sdc2-cmd-off-state {
+                               pins = "sdc2_cmd";
+                               bias-pull-up;
+                               drive-strength = <2>;
+                       };
 
-                               wcss-wlan0-pins {
-                                       pins = "gpio78";
-                                       function = "wcss_wlan0";
-                                       drive-strength = <6>;
-                                       bias-pull-up;
-                               };
+                       sdc2_data_on: sdc2-data-on-state {
+                               pins = "sdc2_data";
+                               bias-pull-up;
+                               drive-strength = <10>;
+                       };
 
-                               wcss-wlan-pins {
-                                       pins = "gpio79", "gpio80";
-                                       function = "wcss_wlan";
-                                       drive-strength = <6>;
-                                       bias-pull-up;
-                               };
+                       sdc2_data_off: sdc2-data-off-state {
+                               pins = "sdc2_data";
+                               bias-pull-up;
+                               drive-strength = <2>;
                        };
                };
 
                        };
                };
 
+               cci: cci@1b0c000 {
+                       compatible = "qcom,msm8953-cci";
+                       reg = <0x1b0c000 0x4000>;
+
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
+
+                       clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CCI_AHB_CLK>,
+                                <&gcc GCC_CAMSS_CCI_CLK>,
+                                <&gcc GCC_CAMSS_AHB_CLK>;
+                       clock-names = "camss_top_ahb",
+                                     "cci_ahb",
+                                     "cci",
+                                     "camss_ahb";
+
+                       assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
+                                         <&gcc GCC_CAMSS_CCI_CLK>;
+                       assigned-clock-rates = <80000000>,
+                                              <19200000>;
+
+                       pinctrl-0 = <&cci0_default &cci1_default>;
+                       pinctrl-names = "default";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+
+                       cci_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <400000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <400000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                gpu: gpu@1c00000 {
                        compatible = "qcom,adreno-506.0", "qcom,adreno";
                        reg = <0x01c00000 0x40000>;
index f9962512f243d6c1af4931787f4602554c63bb39..80a0a09e055d79c5e56f89e5d67baf9971d87069 100644 (file)
                                          "handover",
                                          "stop-ack";
 
-                       power-domains = <&rpmpd MSM8976_VDDCX>,
-                                       <&rpmpd MSM8976_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx", "mx";
 
                        qcom,smem-states = <&wcnss_smp2p_out 0>;
index b8f2a01bcb96c678aa1cd2917452e54b1ff0827e..1e718accf8f5c08a0fa0e7fd1eb2a822a12d373c 100644 (file)
@@ -24,7 +24,7 @@
        chassis-type = "handset";
 
        qcom,msm-id = <251 0>, <252 0>;
-       qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>;
+       qcom,pmic-id = <0x10009 0x1000a 0x0 0x0>;
 
        /* Bullhead firmware doesn't support PSCI */
        /delete-node/ psci;
index 1aca11daf83c0018d3fe41a40240bc0e8f07b743..7775532f154e552fcfe5adf4b03deebad6815d8c 100644 (file)
@@ -16,7 +16,7 @@
        chassis-type = "handset";
        /* required for bootloader to select correct board */
        qcom,msm-id = <207 0x20000>;
-       qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>;
+       qcom,pmic-id = <0x10009 0x1000a 0x0 0x0>;
        qcom,board-id = <8026 0>;
 
        aliases {
index 4c983b10dd925213401396828ef189a38708b369..7ace3540ef0a0e01920e0ce055e65a321568c4e5 100644 (file)
        status = "okay";
 
        sideinteraction: touch@2c {
-               compatible = "ad,ad7147_captouch";
+               compatible = "adi,ad7147_captouch";
                reg = <0x2c>;
 
                pinctrl-names = "default", "sleep";
index 5c75fba16ce2c8afaebd63ca951b002bda123bf4..d41b5c470c485d18d93886ae7f6972443755dd56 100644 (file)
 
                        qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
 
-                       power-domains = <&rpmpd MSM8998_VDDCX>,
-                                       <&rpmpd MSM8998_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx", "mx";
 
                        status = "disabled";
                        interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
                        iommus = <&adreno_smmu 0>;
                        operating-points-v2 = <&gpu_opp_table>;
-                       power-domains = <&rpmpd MSM8998_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDMX>;
                        status = "disabled";
 
                        gpu_opp_table: opp-table {
                        qcom,smem-states = <&slpi_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
-                       power-domains = <&rpmpd MSM8998_SSCCX>;
+                       power-domains = <&rpmpd RPMPD_SSCCX>;
                        power-domain-names = "ssc_cx";
 
                        status = "disabled";
                                assigned-clock-rates = <19200000>;
 
                                operating-points-v2 = <&mdp_opp_table>;
-                               power-domains = <&rpmpd MSM8998_VDDMX>;
+                               power-domains = <&rpmpd RPMPD_VDDMX>;
 
                                mdp_opp_table: opp-table {
                                        compatible = "operating-points-v2";
                                                         <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
 
                                operating-points-v2 = <&dsi_opp_table>;
-                               power-domains = <&rpmpd MSM8998_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                phys = <&mdss_dsi0_phy>;
                                phy-names = "dsi";
                                                         <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>;
 
                                operating-points-v2 = <&dsi_opp_table>;
-                               power-domains = <&rpmpd MSM8998_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                phys = <&mdss_dsi1_phy>;
                                phy-names = "dsi";
                        qcom,smem-states = <&adsp_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
-                       power-domains = <&rpmpd MSM8998_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        power-domain-names = "cx";
 
                        status = "disabled";
diff --git a/src/arm64/qcom/pm7550.dtsi b/src/arm64/qcom/pm7550.dtsi
new file mode 100644 (file)
index 0000000..b886c23
--- /dev/null
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Luca Weiss <luca.weiss@fairphone.com>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+       thermal-zones {
+               pm7550_thermal: pm7550-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm7550_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       /*
+                                        * Current Linux driver currently only supports up to
+                                        * 125°C, should be updated to 145°C once available.
+                                        */
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
+&spmi_bus {
+       pm7550: pmic@1 {
+               compatible = "qcom,pm7550", "qcom,spmi-pmic";
+               reg = <0x1 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm7550_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pm7550_gpios: gpio@8800 {
+                       compatible = "qcom,pm7550-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pm7550_gpios 0 0 12>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               pm7550_flash: led-controller@ee00 {
+                       compatible = "qcom,pm7550-flash-led", "qcom,spmi-flash-led";
+                       reg = <0xee00>;
+                       status = "disabled";
+               };
+       };
+};
index 6426b431616bde2d960780be2bed4c623af246c2..7b5898c263ad8a687e8c914fbb0072c58799b6b2 100644 (file)
@@ -98,6 +98,8 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
+               status = "disabled";
+
                pm8550vs_c_temp_alarm: temp-alarm@a00 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0xa00>;
                #address-cells = <1>;
                #size-cells = <0>;
 
+               status = "disabled";
+
                pm8550vs_d_temp_alarm: temp-alarm@a00 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0xa00>;
                #address-cells = <1>;
                #size-cells = <0>;
 
+               status = "disabled";
+
                pm8550vs_e_temp_alarm: temp-alarm@a00 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0xa00>;
                #address-cells = <1>;
                #size-cells = <0>;
 
+               status = "disabled";
+
                pm8550vs_g_temp_alarm: temp-alarm@a00 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0xa00>;
diff --git a/src/arm64/qcom/pmiv0104.dtsi b/src/arm64/qcom/pmiv0104.dtsi
new file mode 100644 (file)
index 0000000..85ee891
--- /dev/null
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Luca Weiss <luca.weiss@fairphone.com>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+       thermal-zones {
+               pmiv0104-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmiv0104_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+
+                               trip2 {
+                                       /*
+                                        * Current Linux driver currently only supports up to
+                                        * 125°C, should be updated to 145°C once available.
+                                        */
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
+&spmi_bus {
+       pmic@PMIV0104_SID {
+               compatible = "qcom,pmiv0104", "qcom,spmi-pmic";
+               reg = <PMIV0104_SID SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmiv0104_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <PMIV0104_SID 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmiv0104_gpios: gpio@8800 {
+                       compatible = "qcom,pmiv0104-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pmiv0104_gpios 0 0 10>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               pmiv0104_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,pmiv0104-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+};
index 089a027c57d5caed103f41f20c01fe1294b4c950..b2f00e107643dcc79da89e40206f86a834da9e33 100644 (file)
                pinctrl-0 = <&wcd_default>;
                pinctrl-names = "default";
 
-               reset-gpios = <&tlmm 83 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
 
                vdd-buck-supply = <&vreg_l17b_1p7>;
                vdd-rxtx-supply = <&vreg_l18b_1p8>;
index be67eb173046f9e4ac58157f282c3af41e53d374..5a24c19c415e3fa92e3b543ed48b2fcd6b20c6ca 100644 (file)
                };
        };
 
+       dp0-connector {
+               compatible = "dp-connector";
+               label = "DP0";
+               type = "mini";
+
+               hpd-gpios = <&io_expander 8 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       dp0_connector_in: endpoint {
+                               remote-endpoint = <&mdss_dp0_out>;
+                       };
+               };
+       };
+
        dp-dsi0-connector {
                compatible = "dp-connector";
                label = "DSI0";
        status = "okay";
 };
 
+&mdss_dp0 {
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
+       remote-endpoint = <&dp0_connector_in>;
+};
+
 &mdss_dsi0 {
        vdda-supply = <&vreg_l11a>;
        status = "okay";
        status = "okay";
 };
 
+&usb_qmpphy_2 {
+       vdda-phy-supply = <&vreg_l5a>;
+       vdda-pll-supply = <&vreg_l12a>;
+
+       status = "okay";
+};
+
 &usb_1 {
        status = "okay";
 };
index f29a352b0288e9ef554ecfff59820ba39bf2cdb1..e3d2f01881ae05f17796f9c97f10b53cea50daff 100644 (file)
                };
        };
 
+       vdd_ntn_0p9: regulator-vdd-ntn-0p9 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_NTN_0P9";
+               gpio = <&pm8350c_gpios 2 GPIO_ACTIVE_HIGH>;
+               regulator-min-microvolt = <899400>;
+               regulator-max-microvolt = <899400>;
+               enable-active-high;
+               pinctrl-0 = <&ntn_0p9_en>;
+               pinctrl-names = "default";
+               regulator-enable-ramp-delay = <4300>;
+       };
+
+       vdd_ntn_1p8: regulator-vdd-ntn-1p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_NTN_1P8";
+               gpio = <&pm8350c_gpios 3 GPIO_ACTIVE_HIGH>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               enable-active-high;
+               pinctrl-0 = <&ntn_1p8_en>;
+               pinctrl-names = "default";
+               regulator-enable-ramp-delay = <10000>;
+       };
+
        wcn6750-pmu {
                compatible = "qcom,wcn6750-pmu";
                pinctrl-0 = <&bt_en>;
        status = "okay";
 };
 
+&pcie1_port0 {
+       pcie@0,0 {
+               compatible = "pci1179,0623";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+               #address-cells = <3>;
+               #size-cells = <2>;
+
+               device_type = "pci";
+               ranges;
+               bus-range = <0x2 0xff>;
+
+               vddc-supply = <&vdd_ntn_0p9>;
+               vdd18-supply = <&vdd_ntn_1p8>;
+               vdd09-supply = <&vdd_ntn_0p9>;
+               vddio1-supply = <&vdd_ntn_1p8>;
+               vddio2-supply = <&vdd_ntn_1p8>;
+               vddio18-supply = <&vdd_ntn_1p8>;
+
+               i2c-parent = <&i2c0 0x77>;
+
+               resx-gpios = <&pm8350c_gpios 1 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&tc9563_resx_n>;
+               pinctrl-names = "default";
+
+               pcie@1,0 {
+                       reg = <0x20800 0x0 0x0 0x0 0x0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       device_type = "pci";
+                       ranges;
+                       bus-range = <0x3 0xff>;
+               };
+
+               pcie@2,0 {
+                       reg = <0x21000 0x0 0x0 0x0 0x0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       device_type = "pci";
+                       ranges;
+                       bus-range = <0x4 0xff>;
+               };
+
+               pcie@3,0 {
+                       reg = <0x21800 0x0 0x0 0x0 0x0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       ranges;
+                       bus-range = <0x5 0xff>;
+
+                       pci@0,0 {
+                               reg = <0x50000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               ranges;
+                       };
+
+                       pci@0,1 {
+                               reg = <0x50100 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
+                               ranges;
+                       };
+               };
+       };
+};
+
 &pm7325_gpios {
        kypd_vol_up_n: kypd-vol-up-n-state {
                pins = "gpio6";
        };
 };
 
+&pm8350c_gpios {
+       ntn_0p9_en: ntn-0p9-en-state {
+               pins = "gpio2";
+               function = "normal";
+
+               bias-disable;
+               input-disable;
+               output-enable;
+               power-source = <0>;
+       };
+
+       ntn_1p8_en: ntn-1p8-en-state {
+               pins = "gpio3";
+               function = "normal";
+
+               bias-disable;
+               input-disable;
+               output-enable;
+               power-source = <0>;
+       };
+
+       tc9563_resx_n: tc9563-resx-state {
+               pins = "gpio1";
+               function = "normal";
+
+               bias-disable;
+               input-disable;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
 &tlmm {
        gpio-reserved-ranges = <32 2>, /* ADSP */
                               <48 4>; /* NFC */
diff --git a/src/arm64/qcom/qcs6490-thundercomm-rubikpi3.dts b/src/arm64/qcom/qcs6490-thundercomm-rubikpi3.dts
new file mode 100644 (file)
index 0000000..0b64a0b
--- /dev/null
@@ -0,0 +1,1410 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025, Thundercomm All rights reserved.
+ */
+
+/dts-v1/;
+
+/* PM7250B is configured to use SID8/9 */
+#define PM7250B_SID 8
+#define PM7250B_SID1 9
+
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "kodiak.dtsi"
+#include "pm7250b.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi" /* PM7350C */
+#include "pmk8350.dtsi" /* PMK7325 */
+
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &ipa_fw_mem;
+/delete-node/ &mpss_mem;
+/delete-node/ &remoteproc_mpss;
+/delete-node/ &remoteproc_wpss;
+/delete-node/ &rmtfs_mem;
+/delete-node/ &video_mem;
+/delete-node/ &wifi;
+/delete-node/ &wlan_ce_mem;
+/delete-node/ &wlan_fw_mem;
+/delete-node/ &wpss_mem;
+/delete-node/ &xbl_mem;
+
+/ {
+       model = "Thundercomm RUBIK Pi 3";
+       compatible = "thundercomm,rubikpi3", "qcom,qcm6490";
+       chassis-type = "embedded";
+
+       aliases {
+               serial0 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&kypd_vol_up_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       linux,can-disable;
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&lt9611_out>;
+                       };
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 140 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_dp_qmpphy_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu_in: endpoint {
+                                               remote-endpoint = <&usb1_sbu_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+
+               /* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */
+               cooling-levels = <0 64 128 255>;
+               #cooling-cells = <2>;
+               pwms = <&pm8350c_pwm 3 1000000>;
+
+               pinctrl-0 = <&fan_pwm_out_default>;
+               pinctrl-names = "default";
+       };
+
+       vreg_eth_1v8: regulator-eth-1v8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg_eth_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <50000>;
+
+               gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb_eth_power>;
+               pinctrl-names = "default";
+
+               vin-supply = <&vreg_usbhub_pwr_1v8>;
+       };
+
+       vreg_lt9611_3v3: regulator-lt9611-3v3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg_lt9611_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&lt9611_vcc_pin>;
+               pinctrl-names = "default";
+       };
+
+       vreg_m2_1v8: regulator-m2-1v8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg_m2_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <50000>;
+
+               gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&m2_vcc_pin>;
+               pinctrl-names = "default";
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vreg_usbhub_pwr_1v8: regulator-usbhub-pwr-1v8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg_usbhub_pwr_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <50000>;
+
+               gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usbhub_power>;
+               pinctrl-names = "default";
+
+               regulator-always-on;
+       };
+
+       vreg_usbhub_rest_1v8: regulator-usbhub-rest-1v8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg_usbhub_rest_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <50000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usbhub_rest>;
+               pinctrl-names = "default";
+
+               vin-supply = <&vreg_eth_1v8>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       vreg_wifi_1v8: regulator-wifi-1v8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg_wifi_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-enable-ramp-delay = <50000>;
+
+               gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wifi_reset_active>,
+                           <&wifi_host_wake>,
+                           <&wifi_power_on>;
+               pinctrl-names = "default";
+
+               regulator-always-on;
+       };
+
+       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;
+               };
+
+               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;
+               };
+
+               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;
+               };
+       };
+
+       thermal-zones {
+               quiet-thermal {
+                       thermal-sensors = <&pmk8350_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               sdm-skin-thermal {
+                       thermal-sensors = <&pmk8350_adc_tm 3>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               xo-thermal {
+                       thermal-sensors = <&pmk8350_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+       };
+
+       usb1-sbu-mux {
+               compatible = "pericom,pi3usb102", "gpio-sbu-mux";
+
+               enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
+               select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&usb1_sbu_default>;
+               pinctrl-names = "default";
+
+               mode-switch;
+               orientation-switch;
+
+               port {
+                       usb1_sbu_mux: endpoint {
+                               remote-endpoint = <&pmic_glink_sbu_in>;
+                       };
+               };
+       };
+};
+
+&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-name = "vreg_s1b_1p872";
+                       regulator-min-microvolt = <1840000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               vreg_s2b_0p876: smps2 {
+                       regulator-name = "vreg_s2b_0p876";
+                       regulator-min-microvolt = <570070>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               vreg_s7b_0p972: smps7 {
+                       regulator-name = "vreg_s7b_0p972";
+                       regulator-min-microvolt = <535000>;
+                       regulator-max-microvolt = <1120000>;
+               };
+
+               vreg_s8b_1p272: smps8 {
+                       regulator-name = "vreg_s8b_1p272";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+               };
+
+               vreg_l1b_0p912: ldo1 {
+                       regulator-name = "vreg_l1b_0p912";
+                       regulator-min-microvolt = <825000>;
+                       regulator-max-microvolt = <925000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p072: ldo2 {
+                       regulator-name = "vreg_l2b_3p072";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b_0p504: ldo3 {
+                       regulator-name = "vreg_l3b_0p504";
+                       regulator-min-microvolt = <312000>;
+                       regulator-max-microvolt = <910000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4b_0p752: ldo4 {
+                       regulator-name = "vreg_l4b_0p752";
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <820000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               reg_l5b_0p752: ldo5 {
+                       regulator-name = "reg_l5b_0p752";
+                       regulator-min-microvolt = <552000>;
+                       regulator-max-microvolt = <832000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
+                       regulator-min-microvolt = <1140000>;
+                       regulator-max-microvolt = <1260000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_2p952: ldo7 {
+                       regulator-name = "vreg_l7b_2p952";
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <2952000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_0p904: ldo8 {
+                       regulator-name = "vreg_l8b_0p904";
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p504: ldo11 {
+                       regulator-name = "vreg_l11b_1p504";
+                       regulator-min-microvolt = <1504000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_0p751: ldo12 {
+                       regulator-name = "vreg_l12b_0p751";
+                       regulator-min-microvolt = <751000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_0p53: ldo13 {
+                       regulator-name = "vreg_l13b_0p53";
+                       regulator-min-microvolt = <530000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_1p08: ldo14 {
+                       regulator-name = "vreg_l14b_1p08";
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_0p765: ldo15 {
+                       regulator-name = "vreg_l15b_0p765";
+                       regulator-min-microvolt = <765000>;
+                       regulator-max-microvolt = <1020000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_1p1: ldo16 {
+                       regulator-name = "vreg_l16b_1p1";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_1p7: ldo17 {
+                       regulator-name = "vreg_l17b_1p7";
+                       regulator-min-microvolt = <1700000>;
+                       regulator-max-microvolt = <1900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18b_1p8: ldo18 {
+                       regulator-name = "vreg_l18b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19b_1p8: ldo19 {
+                       regulator-name = "vreg_l19b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       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-name = "vreg_s1c_2p19";
+                       regulator-min-microvolt = <2190000>;
+                       regulator-max-microvolt = <2210000>;
+               };
+
+               vreg_s2c_0p752: smps2 {
+                       regulator-name = "vreg_s2c_0p752";
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_s5c_0p752: smps5 {
+                       regulator-name = "vreg_s5c_0p752";
+                       regulator-min-microvolt = <465000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               vreg_s7c_0p752: smps7 {
+                       regulator-name = "vreg_s7c_0p752";
+                       regulator-min-microvolt = <465000>;
+                       regulator-max-microvolt = <800000>;
+               };
+
+               vreg_s9c_1p084: smps9 {
+                       regulator-name = "vreg_s9c_1p084";
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1170000>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_1p62: ldo2 {
+                       regulator-name = "vreg_l2c_1p62";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_2p8: ldo3 {
+                       regulator-name = "vreg_l3c_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3540000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_1p62: ldo4 {
+                       regulator-name = "vreg_l4c_1p62";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c_1p62: ldo5 {
+                       regulator-name = "vreg_l5c_1p62";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_2p96: ldo6 {
+                       regulator-name = "vreg_l6c_2p96";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p62: ldo8 {
+                       regulator-name = "vreg_l8c_1p62";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_0p88: ldo10 {
+                       regulator-name = "vreg_l10c_0p88";
+                       regulator-min-microvolt = <720000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_2p8: ldo11 {
+                       regulator-name = "vreg_l11c_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c_1p65: ldo12 {
+                       regulator-name = "vreg_l12c_1p65";
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c_2p7: ldo13 {
+                       regulator-name = "vreg_l13c_2p7";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob_3p296: bob {
+                       regulator-name = "vreg_bob_3p296";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+               };
+       };
+};
+
+&gcc {
+       protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
+                          <GCC_MSS_CFG_AHB_CLK>,
+                          <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
+                          <GCC_MSS_OFFLINE_AXI_CLK>,
+                          <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
+                          <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+                          <GCC_MSS_SNOC_AXI_CLK>,
+                          <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+                          <GCC_QSPI_CORE_CLK>,
+                          <GCC_QSPI_CORE_CLK_SRC>,
+                          <GCC_SEC_CTRL_CLK_SRC>,
+                          <GCC_WPSS_AHB_BDG_MST_CLK>,
+                          <GCC_WPSS_AHB_CLK>,
+                          <GCC_WPSS_RSCP_CLK>;
+};
+
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+};
+
+&gpu_zap_shader {
+       firmware-name = "qcom/qcs6490/a660_zap.mbn";
+};
+
+/* Pin 3, 5 in 40-pin connector */
+&i2c1 {
+       status = "okay";
+};
+
+&i2c9 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       lt9611_codec: hdmi-bridge@39 {
+               compatible = "lontium,lt9611";
+               reg = <0x39>;
+
+               interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+               vdd-supply = <&vreg_lt9611_3v3>;
+               vcc-supply = <&vreg_lt9611_3v3>;
+
+               pinctrl-0 = <&lt9611_irq_pin>,
+                           <&lt9611_rst_pin>;
+               pinctrl-names = "default";
+
+               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>;
+                               };
+                       };
+               };
+       };
+};
+
+&lpass_audiocc {
+       compatible = "qcom,qcm6490-lpassaudiocc";
+       /delete-property/ power-domains;
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp {
+       status = "okay";
+};
+
+&mdss_dp_out {
+       data-lanes = <0 1>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
+&mdss_dsi {
+       vdda-supply = <&vreg_l6b_1p2>;
+
+       status = "okay";
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&lt9611_a>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi_phy {
+       vdds-supply = <&vreg_l10c_0p88>;
+
+       status = "okay";
+};
+
+&pcie0 {
+       perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
+
+       pinctrl-0 = <&pcie0_clkreq_n>,
+                   <&pcie0_reset_n>,
+                   <&pcie0_wake_n>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l10c_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+
+       status = "okay";
+};
+
+&pcie1 {
+       perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie1_clkreq_n>,
+                   <&pcie1_reset_n>,
+                   <&pcie1_wake_n>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l10c_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+
+       status = "okay";
+};
+
+&pm7325_gpios {
+       kypd_vol_up_n: kypd-vol-up-n-state {
+               pins = "gpio6";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pm7325_temp_alarm {
+       io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
+       io-channel-names = "thermal";
+};
+
+&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>;
+       };
+
+       sdm-skin-therm@3 {
+               reg = <3>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
+&pm8350c_pwm {
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_INDICATOR;
+
+               #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>;
+               };
+       };
+};
+
+&pmk8350_rtc {
+       allow-set-time;
+
+       status = "okay";
+};
+
+&pmk8350_vadc {
+       channel@3 {
+               reg = <PMK8350_ADC7_DIE_TEMP>;
+               label = "pmk8350_die_temp";
+               qcom,pre-scaling = <1 1>;
+       };
+
+       channel@44 {
+               reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
+               label = "xo_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@103 {
+               reg = <PM7325_ADC7_DIE_TEMP>;
+               label = "pm7325_die_temp";
+               qcom,pre-scaling = <1 1>;
+       };
+
+       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@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";
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       firmware-name = "qcom/qcm6490/qupv3fw.elf";
+
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       firmware-name = "qcom/qcm6490/qupv3fw.elf";
+
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/qcs6490/Thundercomm/RubikPi3/adsp.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcs6490/cdsp.mbn";
+
+       status = "okay";
+};
+
+/* WIFI part of the AP6256 connected with SDIO */
+&sdhc_2 {
+       vmmc-supply = <&vreg_l9c_2p96>;
+       vqmmc-supply = <&vreg_l6c_2p96>;
+
+       non-removable;
+       keep-power-in-suspend;
+       /delete-property/ cd-gpios;
+
+       status = "okay";
+};
+
+/* Pin 19, 21, 23, 24 in 40-pin connector */
+&spi12 {
+       status = "okay";
+};
+
+&thermal_zones {
+       cpu0-thermal {
+               trips {
+                       cpu_tepid: cpu-tepid {
+                               temperature = <65000>;
+                               hysteresis = <5000>;
+                               type = "active";
+                       };
+
+                       cpu_warm: cpu-warm {
+                               temperature = <80000>;
+                               hysteresis = <5000>;
+                               type = "active";
+                       };
+               };
+
+               cooling-maps {
+                       map-cpu-tepid {
+                               cooling-device = <&fan0 1 1>;
+                               trip = <&cpu_tepid>;
+                       };
+
+                       map-cpu-warm {
+                               cooling-device = <&fan0 2 2>;
+                               trip = <&cpu_warm>;
+                       };
+
+                       map-cpu-hot {
+                               cooling-device = <&fan0 3 3>;
+                               trip = <&cpu0_alert0>;
+                       };
+               };
+       };
+};
+
+/* Pin 8, 10 in 40-pin connector */
+&uart2 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+/* BT part of the AP6256 connected with UART */
+&uart7 {
+       /delete-property/ interrupts;
+       interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
+                             <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+       pinctrl-1 = <&qup_uart7_sleep_cts>,
+                   <&qup_uart7_sleep_rts>,
+                   <&qup_uart7_sleep_tx>,
+                   <&qup_uart7_sleep_rx>;
+       pinctrl-names = "default",
+                       "sleep";
+
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               clocks = <&sleep_clk>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&bt_device_wake>,
+                           <&bt_host_wake>,
+                           <&bt_reset>;
+               pinctrl-names = "default";
+               vbat-supply = <&vreg_wifi_1v8>;
+               vddio-supply = <&vreg_wifi_1v8>;
+               max-speed = <3000000>;
+       };
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&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";
+};
+
+&usb_2 {
+       dr_mode = "host";
+
+       status = "okay";
+};
+
+&usb_2_hsphy {
+       vdda-pll-supply = <&vreg_l10c_0p88>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+       vdda33-supply = <&vreg_l2b_3p072>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l7b_2p952>;
+       vcc-max-microamp = <800000>;
+       vccq-supply = <&vreg_l9b_1p2>;
+       vccq-max-microamp = <900000>;
+       vccq2-supply = <&vreg_l9b_1p2>;
+       vccq2-max-microamp = <900000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l10c_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+
+       status = "okay";
+};
+
+&venus {
+       status = "okay";
+};
+
+/* PINCTRL - additions to nodes defined in kodiak.dtsi */
+&pcie0_clkreq_n {
+       bias-pull-up;
+       drive-strength = <8>;
+};
+
+&pcie1_clkreq_n {
+       bias-pull-up;
+       drive-strength = <8>;
+};
+
+&pm8350c_gpios {
+       fan_pwm_out_default: fan-pwm-out-default-state {
+               pins = "gpio8";
+               function = "func1";
+               power-source = <1>;
+               drive-push-pull;
+               output-high;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+};
+
+&qup_uart7_cts {
+       /*
+        * Configure a bias-bus-hold on CTS to lower power
+        * usage when Bluetooth is turned off. Bus hold will
+        * maintain a low power state regardless of whether
+        * the Bluetooth module drives the pin in either
+        * direction or leaves the pin fully unpowered.
+        */
+       bias-bus-hold;
+};
+
+&qup_uart7_rts {
+       /* We'll drive RTS, so no pull */
+       bias-disable;
+       drive-strength = <2>;
+};
+
+&qup_uart7_rx {
+       /*
+        * Configure a pull-up on RX. This is needed to avoid
+        * garbage data when the TX pin of the Bluetooth module is
+        * in tri-state (module powered off or not driving the
+        * signal yet).
+        */
+       bias-pull-up;
+};
+
+&qup_uart7_tx {
+       /* We'll drive TX, so no pull */
+       bias-disable;
+       drive-strength = <2>;
+};
+
+&sdc2_clk {
+       bias-disable;
+       drive-strength = <16>;
+};
+
+&sdc2_cmd {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
+&sdc2_data {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
+&tlmm {
+       pcie1_reset_n: pcie1-reset-n-state {
+               pins = "gpio2";
+               function = "gpio";
+               drive-strength = <8>;
+               output-low;
+               bias-disable;
+       };
+
+       pcie1_wake_n: pcie1-wake-n-state {
+               pins = "gpio3";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       usb_eth_power: usb-eth-power-state {
+               pins = "gpio7";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       wifi_reset_active: wifi-reset-active-state {
+               pins = "gpio16";
+               function = "gpio";
+               drive-strength = <8>;
+               output-high;
+               bias-disable;
+       };
+
+       bt_reset: bt-reset-state {
+               pins = "gpio17";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       lt9611_irq_pin: lt9611-irq-state {
+               pins = "gpio20";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       lt9611_rst_pin: lt9611-rst-state {
+               pins = "gpio21";
+               function = "gpio";
+               drive-strength = <8>;
+               output-high;
+               input-disable;
+       };
+
+       qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
+               pins = "gpio28";
+               function = "gpio";
+               /*
+                * Configure a bias-bus-hold on CTS to lower power
+                * usage when Bluetooth is turned off. Bus hold will
+                * maintain a low power state regardless of whether
+                * the Bluetooth module drives the pin in either
+                * direction or leaves the pin fully unpowered.
+                */
+               bias-bus-hold;
+       };
+
+       qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
+               pins = "gpio29";
+               function = "gpio";
+               /*
+                * Configure pull-down on RTS. As RTS is active low
+                * signal, pull it low to indicate the BT SoC that it
+                * can wakeup the system anytime from suspend state by
+                * pulling RX low (by sending wakeup bytes).
+                */
+               bias-pull-down;
+       };
+
+       qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
+               pins = "gpio30";
+               function = "gpio";
+               /*
+                * Configure pull-up on TX when it isn't actively driven
+                * to prevent BT SoC from receiving garbage during sleep.
+                */
+               bias-pull-up;
+       };
+
+       qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
+               pins = "gpio31";
+               function = "gpio";
+               /*
+                * Configure a pull-up on RX. This is needed to avoid
+                * garbage data when the TX pin of the Bluetooth module
+                * is floating which may cause spurious wakeups.
+                */
+               bias-pull-up;
+       };
+
+       wifi_host_wake: wifi-host-wake-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       bt_device_wake: bt-device-wake-state {
+               pins = "gpio39";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       usb1_sbu_default: usb1-sbu-state {
+               sel-pins {
+                       pins = "gpio52";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+
+               oe-n-pins {
+                       pins = "gpio53";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       output-high;
+                       bias-disable;
+               };
+       };
+
+       m2_vcc_pin: m2-vcc-state {
+               pins = "gpio56";
+               function = "gpio";
+               drive-strength = <8>;
+               output-high;
+               input-disable;
+       };
+
+       lt9611_vcc_pin: lt9611-vcc-pin-state {
+               pins = "gpio83";
+               function = "gpio";
+               drive-strength = <8>;
+               output-high;
+               input-disable;
+       };
+
+       usbhub_power: usbhub-power-state {
+               pins = "gpio86";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       pcie0_reset_n: pcie0-reset-n-state {
+               pins = "gpio87";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       pcie0_wake_n: pcie0-wake-n-state {
+               pins = "gpio89";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       wifi_power_on: wifi-power-on-state {
+               pins = "gpio125";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       usbhub_rest: usbhub-reset-state {
+               pins = "gpio136";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       bt_host_wake: bt-host-wake-state {
+               pins = "gpio137";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
index 9bcb869dd270603a34221b905f0946e8af028433..c04e0ad53eecf520484584f5a3f8187b8b2cf28a 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       dp0-connector {
+               compatible = "dp-connector";
+               label = "DP0";
+               type = "full-size";
+
+               port {
+                       dp0_connector_in: endpoint {
+                               remote-endpoint = <&mdss_dp0_out>;
+                       };
+               };
+       };
+
        regulator-usb2-vbus {
                compatible = "regulator-fixed";
                regulator-name = "USB2_VBUS";
        status = "okay";
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp0 {
+       pinctrl-0 = <&dp_hot_plug_det>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       data-lanes = <0 1 2 3>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+       remote-endpoint = <&dp0_connector_in>;
+};
+
+&mdss_dp0_phy {
+       vdda-phy-supply = <&vreg_l5a>;
+       vdda-pll-supply = <&vreg_l4a>;
+
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcieport0 {
+       reset-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l6a>;
+       vdda-pll-supply = <&vreg_l5a>;
+
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-0 = <&pcie1_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcieport1 {
+       reset-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l6a>;
+       vdda-pll-supply = <&vreg_l5a>;
+
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 };
 
 &tlmm {
+       pcie0_default_state: pcie0-default-state {
+               wake-pins {
+                       pins = "gpio0";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               clkreq-pins {
+                       pins = "gpio1";
+                       function = "pcie0_clkreq";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-pins {
+                       pins = "gpio2";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+       };
+
        ethernet0_default: ethernet0-default-state {
                ethernet0_mdc: ethernet0-mdc-pins {
                        pins = "gpio5";
                        bias-pull-up;
                };
        };
+
+       pcie1_default_state: pcie1-default-state {
+               wake-pins {
+                       pins = "gpio21";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               clkreq-pins {
+                       pins = "gpio22";
+                       function = "pcie1_clkreq";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-pins {
+                       pins = "gpio23";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+       };
+
+       dp_hot_plug_det: dp-hot-plug-det-state {
+               pins = "gpio94";
+               function = "edp0_hot";
+               bias-disable;
+       };
 };
 
 &uart7 {
index e6ac529e6b7216ac4b9e10900c5ddc9a06c9011c..e6ebb643203b62ba0050d11930576023207a2e35 100644 (file)
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &sleep_clk {
        clock-frequency = <32764>;
 };
index 846e5e5899aa3797d030898f0ff7d373889e96ae..cdfe40da5d33329794d0813171e4d1e0313bd415 100644 (file)
 
                gem_noc: interconnect@19100000 {
                        compatible = "qcom,qdu1000-gem-noc";
-                       reg = <0x0 0x19100000 0x0 0xB8080>;
+                       reg = <0x0 0x19100000 0x0 0xb8080>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                        #interconnect-cells = <2>;
                };
diff --git a/src/arm64/qcom/qrb2210-arduino-imola.dts b/src/arm64/qcom/qrb2210-arduino-imola.dts
new file mode 100644 (file)
index 0000000..197ab6e
--- /dev/null
@@ -0,0 +1,459 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2025, Arduino SRL
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "agatti.dtsi"
+#include "pm4125.dtsi"
+
+/delete-node/ &cont_splash_memory;
+
+/ {
+       model = "Arduino UnoQ";
+       compatible = "arduino,imola", "qcom,qrb2210", "qcom,qcm2290";
+       chassis-type = "embedded";
+
+       aliases {
+               serial0 = &uart4;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               sdhc1 = &sdhc_1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               label = "gpio-keys";
+               pinctrl-0 = <&key_volp_n>, <&key_vold_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&tlmm 36 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       leds: leds {
+               compatible = "gpio-leds";
+
+               led-bt {
+                       label = "unoq:bt-blue2";
+                       function = LED_FUNCTION_BLUETOOTH;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "bluetooth-power";
+                       default-state = "off";
+               };
+
+               led-panic {
+                       label = "unoq:panic-red2";
+                       function = LED_FUNCTION_INDICATOR;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "none";
+                       default-state = "off";
+                       panic-indicator;
+               };
+
+               led-wlan {
+                       label = "unoq:wlan-green2";
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tx";
+                       default-state = "off";
+               };
+
+               ledb: led-user-blue {
+                       label = "unoq:user-blue1";
+                       gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+
+               ledg: led-user-green {
+                       label = "unoq:user-green1";
+                       gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               ledr: led-user-red {
+                       label = "unoq:user-red1";
+                       gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
+
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_INDICATOR;
+               leds = <&ledr>, <&ledg>, <&ledb>;
+       };
+
+       /* PM4125 charger out, supplied by VBAT */
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+};
+
+&gpu_zap_shader {
+       firmware-name = "qcom/qcm2290/a702_zap.mbn";
+};
+
+&i2c0 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+};
+
+&pm4125_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <500000>;
+
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/qcm2290/adsp.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcm2290/modem.mbn";
+
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm2250-regulators";
+               vdd_s3-supply = <&vph_pwr>;
+               vdd_s4-supply = <&vph_pwr>;
+               vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>;
+               vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
+               vdd_l13_l14_l15_l16-supply = <&pm4125_s4>;
+
+               pm4125_s3: s3 {
+                       /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
+                       regulator-min-microvolt = <1352000>;
+                       regulator-max-microvolt = <1352000>;
+                       regulator-boot-on;
+               };
+
+               pm4125_s4: s4 {
+                       /* 1.2V-2.35V -> 2.05V (Power tree requirements) */
+                       regulator-min-microvolt = <2072000>;
+                       regulator-max-microvolt = <2072000>;
+                       regulator-boot-on;
+               };
+
+               pm4125_l2: l2 {
+                       /* LPDDR4X VDD2 */
+                       regulator-min-microvolt = <1136000>;
+                       regulator-max-microvolt = <1136000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm4125_l3: l3 {
+                       /* LPDDR4X VDDQ */
+                       regulator-min-microvolt = <616000>;
+                       regulator-max-microvolt = <616000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm4125_l4: l4 {
+                       /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2700000>;
+                       regulator-allow-set-load;
+               };
+
+               pm4125_l5: l5 {
+                       /* CSI/DSI */
+                       regulator-min-microvolt = <1232000>;
+                       regulator-max-microvolt = <1232000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm4125_l6: l6 {
+                       /* DRAM PLL */
+                       regulator-min-microvolt = <928000>;
+                       regulator-max-microvolt = <928000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm4125_l7: l7 {
+                       /* Wi-Fi CX */
+                       regulator-min-microvolt = <664000>;
+                       regulator-max-microvolt = <664000>;
+               };
+
+               pm4125_l10: l10 {
+                       /* Wi-Fi RFA */
+                       regulator-min-microvolt = <1304000>;
+                       regulator-max-microvolt = <1304000>;
+               };
+
+               pm4125_l11: l11 {
+                       /* ANX7625 DVDD1P0V/AVDD1P0V */
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               pm4125_l12: l12 {
+                       /* USB PHYs */
+                       regulator-min-microvolt = <928000>;
+                       regulator-max-microvolt = <928000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm4125_l13: l13 {
+                       /* USB/QFPROM/PLLs */
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm4125_l14: l14 {
+                       /* SDHCI1 EMMC VCCQ */
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-allow-set-load;
+                       /* Broken hardware, never turn it off! */
+                       regulator-always-on;
+               };
+
+               pm4125_l15: l15 {
+                       /* VDDIO */
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-allow-set-load;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm4125_l20: l20 {
+                       /* SDHCI1 EMMC */
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3600000>;
+                       regulator-allow-set-load;
+               };
+
+               pm4125_l21: l21 {
+                       /* USB HS */
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm4125_l22: l22 {
+                       /* Wi-Fi VDD */
+                       regulator-min-microvolt = <3312000>;
+                       regulator-max-microvolt = <3312000>;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm4125_l20>;
+       vqmmc-supply = <&pm4125_l14>;
+       pinctrl-0 = <&sdc1_state_on>;
+       pinctrl-1 = <&sdc1_state_off>;
+       pinctrl-names = "default", "sleep";
+       mmc-hs400-1_8v;
+       mmc-hs200-1_8v;
+       non-removable;
+       supports-cqe;
+       no-sdio;
+       no-sd;
+
+       status = "okay";
+};
+
+&spi5 {
+       status = "okay";
+
+       spidev@0 {
+               reg = <0>;
+               compatible = "arduino,unoq-mcu";
+               pinctrl-0 = <&spidev_cs>;
+               pinctrl-names = "default";
+       };
+};
+
+&tlmm {
+       spidev_cs: spidev-cs-state {
+               pins = "gpio17";
+               function = "gpio";
+               drive-strength = <16>;
+       };
+
+       jmisc_gpio18: jmisc-gpio18-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       jmisc_gpio28: jmisc-gpio28-state {
+               pins = "gpio28";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       key_vold_n: key-vold-n-state {
+               pins = "gpio36";
+               function = "gpio";
+               bias-pull-up;
+               output-disable;
+       };
+
+       key_volp_n: key-volp-n-state {
+               pins = "gpio96";
+               function = "gpio";
+               bias-pull-up;
+               output-disable;
+       };
+
+       jmisc_gpio98: jmisc-gpio98-state {
+               pins = "gpio98";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       jmisc_gpio99: jmisc-gpio99-state {
+               pins = "gpio99";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       jmisc_gpio100: jmisc-gpio100-state {
+               pins = "gpio100";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       jmisc_gpio101: jmisc-gpio101-state {
+               pins = "gpio101";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+/* UART connected to Bluetooth */
+&uart3 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn3988-bt";
+
+               vddio-supply = <&pm4125_l15>;
+               vddxo-supply = <&pm4125_l13>;
+               vddrf-supply = <&pm4125_l10>;
+               vddch0-supply = <&pm4125_l22>;
+               enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
+               max-speed = <3000000>;
+       };
+};
+
+/* UART exposed in JCTL */
+&uart4 {
+       compatible = "qcom,geni-debug-uart";
+
+       status = "okay";
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb_hsphy {
+       vdd-supply = <&pm4125_l12>;
+       vdda-pll-supply = <&pm4125_l13>;
+       vdda-phy-dpdm-supply = <&pm4125_l21>;
+
+       status = "okay";
+};
+
+&usb_qmpphy {
+       vdda-phy-supply = <&pm4125_l12>;
+       vdda-pll-supply = <&pm4125_l13>;
+
+       status = "okay";
+};
+
+&wifi {
+       vdd-0.8-cx-mx-supply = <&pm4125_l7>;
+       vdd-1.8-xo-supply = <&pm4125_l13>;
+       vdd-1.3-rfa-supply = <&pm4125_l10>;
+       vdd-3.3-ch0-supply = <&pm4125_l22>;
+       qcom,ath10k-calibration-variant = "ArduinoImola";
+       firmware-name = "qcm2290";
+
+       status = "okay";
+};
+
+&xo_board {
+       clock-frequency = <38400000>;
+};
diff --git a/src/arm64/qcom/qrb2210-rb1-vision-mezzanine.dtso b/src/arm64/qcom/qrb2210-rb1-vision-mezzanine.dtso
new file mode 100644 (file)
index 0000000..c314cd6
--- /dev/null
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
+#include <dt-bindings/gpio/gpio.h>
+
+&pm8008 {
+       status = "okay";
+};
+
+&camss {
+       status = "okay";
+
+       vdd-csiphy-1p2-supply = <&pm4125_l5>;
+       vdd-csiphy-1p8-supply = <&pm4125_l13>;
+
+       ports {
+               port@0 {
+                       csiphy0_ep: endpoint {
+                               data-lanes = <0 1>;
+                               remote-endpoint = <&ov9282_ep>;
+                       };
+               };
+       };
+};
+
+&cci {
+       status = "okay";
+};
+
+&cci_i2c1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       /* Vision Mezzanine DIP3-1 must be ON (Selects camera CAM0A&B) */
+       camera@60 {
+               compatible = "ovti,ov9282";
+               reg = <0x60>;
+
+               /* Reset is active-low, but driver applies inverted reset logic */
+               reset-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&mclk3_default>;
+               pinctrl-names = "default";
+
+               clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
+               assigned-clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
+               assigned-clock-rates = <24000000>;
+
+               avdd-supply = <&vreg_l3p>;
+               dvdd-supply = <&vreg_l1p>;
+               dovdd-supply = <&vreg_l7p>;
+
+               port {
+                       ov9282_ep: endpoint {
+                               link-frequencies = /bits/ 64 <400000000>;
+                               data-lanes = <1 2>;
+                               remote-endpoint = <&csiphy0_ep>;
+                        };
+                };
+       };
+};
index 1b9ca957a94b671953a83705d3793d36eaa07929..9814ac4896c5e2255f003565d4e22f80d7bb0193 100644 (file)
        firmware-name = "qcom/qcm2290/a702_zap.mbn";
 };
 
+&i2c1 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       pm8008: pmic@8 {
+               compatible = "qcom,pm8008";
+               reg = <0x8>;
+
+               interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>;
+               reset-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
+
+               vdd-l1-l2-supply = <&pm4125_s3>;
+               vdd-l3-l4-supply = <&vph_pwr>;
+               vdd-l5-supply = <&vph_pwr>;
+               vdd-l6-supply = <&vph_pwr>;
+               vdd-l7-supply = <&vph_pwr>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-ranges = <&pm8008 0 0 2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               #thermal-sensor-cells = <0>;
+
+               status = "disabled";
+
+               regulators {
+                       vreg_l1p: ldo1 {
+                               regulator-name = "vreg_l1p";
+                               regulator-min-microvolt = <528000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       vreg_l2p: ldo2 {
+                               regulator-name = "vreg_l2p";
+                               regulator-min-microvolt = <528000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       vreg_l3p: ldo3 {
+                               regulator-name = "vreg_l3p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       vreg_l4p: ldo4 {
+                               regulator-name = "vreg_l4p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <3404000>;
+                       };
+
+                       vreg_l5p: ldo5 {
+                               regulator-name = "vreg_l5p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       vreg_l6p: ldo6 {
+                               regulator-name = "vreg_l6p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       vreg_l7p: ldo7 {
+                               regulator-name = "vreg_l7p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+               };
+       };
+};
+
 &i2c2_gpio {
        clock-frequency = <400000>;
        status = "okay";
index 0cd36c54632fa32353e679193f25a12c6e5c4a49..5f8613150bdd2913d5517cca4356f5ab14735b2a 100644 (file)
 
 &uart3 {
        interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
-                             <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
+                             <&tlmm 11 IRQ_TYPE_EDGE_FALLING>;
        pinctrl-0 = <&uart3_default>;
        pinctrl-1 = <&uart3_sleep>;
        pinctrl-names = "default", "sleep";
index 84c6d662b54f8c87de56c02100e2b491094f90b3..617a39d32488027f436c3b4e417dbf0c043fa2ea 100644 (file)
        status = "okay";
 };
 
+&lpass_tlmm {
+       /delete-property/ clocks;
+       /delete-property/ clock-names;
+};
+
 &lpasscc {
        status = "okay";
 };
index b9e0d9c7c0657ab949a6d5ade2aa4ac84e4b8fce..706eb1309d3f084462c14a3a715936ca25e0f14d 100644 (file)
                        qcom,dout-ports = <5>;
 
                        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>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x01 0x00>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
                        qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0x00 0xff 0xff>;
                        qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0x0f 0xff 0xff>;
                        qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
index 8b1a45a4e56ed1ae02e5bb6e78ca6255d87add1c..f4b8e8f468f2479d1c353315a146e29d28a85019 100644 (file)
                        pwr_cluster_sleep_0: cluster-sleep-0-0 {
                                compatible = "arm,idle-state";
                                idle-state-name = "pwr-cluster-dynamic-retention";
-                               arm,psci-suspend-param = <0x400000F2>;
+                               arm,psci-suspend-param = <0x400000f2>;
                                entry-latency-us = <284>;
                                exit-latency-us = <384>;
                                min-residency-us = <9987>;
                        pwr_cluster_sleep_1: cluster-sleep-0-1 {
                                compatible = "arm,idle-state";
                                idle-state-name = "pwr-cluster-retention";
-                               arm,psci-suspend-param = <0x400000F3>;
+                               arm,psci-suspend-param = <0x400000f3>;
                                entry-latency-us = <338>;
                                exit-latency-us = <423>;
                                min-residency-us = <9987>;
                        pwr_cluster_sleep_2: cluster-sleep-0-2 {
                                compatible = "arm,idle-state";
                                idle-state-name = "pwr-cluster-retention";
-                               arm,psci-suspend-param = <0x400000F4>;
+                               arm,psci-suspend-param = <0x400000f4>;
                                entry-latency-us = <515>;
                                exit-latency-us = <1821>;
                                min-residency-us = <9987>;
                        perf_cluster_sleep_0: cluster-sleep-1-0 {
                                compatible = "arm,idle-state";
                                idle-state-name = "perf-cluster-dynamic-retention";
-                               arm,psci-suspend-param = <0x400000F2>;
+                               arm,psci-suspend-param = <0x400000f2>;
                                entry-latency-us = <272>;
                                exit-latency-us = <329>;
                                min-residency-us = <9987>;
                        perf_cluster_sleep_1: cluster-sleep-1-1 {
                                compatible = "arm,idle-state";
                                idle-state-name = "perf-cluster-retention";
-                               arm,psci-suspend-param = <0x400000F3>;
+                               arm,psci-suspend-param = <0x400000f3>;
                                entry-latency-us = <332>;
                                exit-latency-us = <368>;
                                min-residency-us = <9987>;
                        perf_cluster_sleep_2: cluster-sleep-1-2 {
                                compatible = "arm,idle-state";
                                idle-state-name = "perf-cluster-retention";
-                               arm,psci-suspend-param = <0x400000F4>;
+                               arm,psci-suspend-param = <0x400000f4>;
                                entry-latency-us = <545>;
                                exit-latency-us = <1609>;
                                min-residency-us = <9987>;
                };
        };
 
-       soc@0 {
+       soc: soc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                        };
 
                        gpu_speed_bin: gpu-speed-bin@41a0 {
-                               reg = <0x41a2 0x1>;
-                               bits = <5 7>;
+                               reg = <0x41a2 0x2>;
+                               bits = <5 8>;
                        };
                };
 
 
                        qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
 
-                       power-domains = <&rpmpd SDM660_VDDCX>,
-                                       <&rpmpd SDM660_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>,
+                                       <&rpmpd RPMPD_VDDMX>;
                        power-domain-names = "cx", "mx";
 
                        memory-region = <&mba_region>, <&mpss_region>, <&mdata_mem>;
                                "rbcpr",
                                "core";
 
-                       power-domains = <&rpmpd SDM660_VDDMX>;
+                       power-domains = <&rpmpd RPMPD_VDDMX>;
                        iommus = <&kgsl_smmu 0>;
 
                        nvmem-cells = <&gpu_speed_bin>;
                        reg = <0x05100000 0x40000>;
                        #iommu-cells = <1>;
 
+                       clocks = <&gcc GCC_HLOS1_VOTE_LPASS_ADSP_SMMU_CLK>;
+                       clock-names = "bus";
+
+                       power-domains = <&gcc HLOS1_VOTE_LPASS_ADSP_GDSC>;
+
                        #global-interrupts = <2>;
                        interrupts =
                                <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&sdc2_state_on>;
                        pinctrl-1 = <&sdc2_state_off>;
-                       power-domains = <&rpmpd SDM660_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
 
                        status = "disabled";
 
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&sdc1_state_on>;
                        pinctrl-1 = <&sdc1_state_off>;
-                       power-domains = <&rpmpd SDM660_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
 
                        bus-width = <8>;
                        non-removable;
                        reg-names = "mdss_phys", "vbif_phys";
 
                        power-domains = <&mmcc MDSS_GDSC>;
+                       resets = <&mmcc MDSS_BCR>;
 
                        clocks = <&mmcc MDSS_AHB_CLK>,
                                 <&mmcc MDSS_AXI_CLK>,
                                                     "rotator-mem";
                                iommus = <&mmss_smmu 0>;
                                operating-points-v2 = <&mdp_opp_table>;
-                               power-domains = <&rpmpd SDM660_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                ports {
                                        #address-cells = <1>;
                                reg-names = "dsi_ctrl";
 
                                operating-points-v2 = <&dsi_opp_table>;
-                               power-domains = <&rpmpd SDM660_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                interrupt-parent = <&mdss>;
                                interrupts = <4>;
                        status = "disabled";
                };
 
+               lpi_tlmm: pinctrl@15070000 {
+                       compatible = "qcom,sdm660-lpass-lpi-pinctrl";
+                       reg = <0x15070000 0x20000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&lpi_tlmm 0 0 32>;
+
+                       cdc_pdm_default: cdc-pdm-default-state {
+                               clk-pins {
+                                       pins = "gpio18";
+                                       function = "pdm_clk";
+                                       drive-strength = <8>;
+                                       output-high;
+                               };
+
+                               sync-pins {
+                                       pins = "gpio19";
+                                       function = "pdm_sync";
+                                       drive-strength = <4>;
+                                       output-high;
+                               };
+
+                               tx-pins {
+                                       pins = "gpio20";
+                                       function = "pdm_tx";
+                                       drive-strength = <8>;
+                               };
+
+                               rx-pins {
+                                       pins = "gpio21", "gpio23", "gpio25";
+                                       function = "pdm_rx";
+                                       drive-strength = <4>;
+                                       output-high;
+                               };
+                       };
+
+                       cdc_comp_default: cdc-comp-default-state {
+                               pins = "gpio22", "gpio24";
+                               function = "comp_rx";
+                               drive-strength = <8>;
+                       };
+
+                       cdc_dmic_default: cdc-dmic-default-state {
+                               dmic1-clk-pins {
+                                       pins = "gpio26";
+                                       function = "dmic1_clk";
+                                       drive-strength = <8>;
+                                       output-high;
+                               };
+
+                               dmic1-data-pins {
+                                       pins = "gpio27";
+                                       function = "dmic1_data";
+                                       drive-strength = <8>;
+                                       output-high;
+                               };
+
+                               dmic2-clk-pins {
+                                       pins = "gpio28";
+                                       function = "dmic2_clk";
+                                       drive-strength = <8>;
+                                       input-enable;
+                               };
+
+                               dmic2-data-pins {
+                                       pins = "gpio29";
+                                       function = "dmic2_data";
+                                       drive-strength = <8>;
+                                       input-enable;
+                               };
+                       };
+               };
+
                adsp_pil: remoteproc@15700000 {
                        compatible = "qcom,sdm660-adsp-pas";
                        reg = <0x15700000 0x4040>;
                        clock-names = "xo";
 
                        memory-region = <&adsp_region>;
-                       power-domains = <&rpmpd SDM660_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
                        power-domain-names = "cx";
 
                        qcom,smem-states = <&adsp_smp2p_out 0>;
                                                };
                                        };
                                };
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&lpass_smmu 3>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&lpass_smmu 7>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&lpass_smmu 8>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&lpass_smmu 9>;
+                                       };
+                               };
                        };
                };
 
index 55a45b528bd3f1bf9b6fe7882753338b43c62271..0edb2992b902ec1bee3f80aa75e50f3514091f28 100644 (file)
                };
        };
 
+       vreg_cam_af_2p85: regulator-cam-af-2p85 {
+               compatible = "regulator-fixed";
+               regulator-name = "cam_af_2p85";
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+
+               gpio = <&tlmm 128 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vph_pwr>;
+       };
+
+       vreg_cam_io_1p8: regulator-cam-io-1p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "cam_io_1p8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 130 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vph_pwr>;
+       };
+
+       vreg_cam2_dig_1p2: regulator-cam2-dig-1p2 {
+               compatible = "regulator-fixed";
+               regulator-name = "cam2_dig_1p2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+
+               gpio = <&tlmm 46 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               vin-supply = <&vph_pwr>;
+       };
+
        /* Dummy regulator until PMI632 has LCDB VSP/VSN support */
        lcdb_dummy: regulator-lcdb-dummy {
                compatible = "regulator-fixed";
        };
 };
 
+&cci {
+       status = "okay";
+};
+
+&cci_i2c0 {
+       /* Sony IMX363 (rear) @ 0x10 */
+
+       eeprom@50 {
+               compatible = "belling,bl24s64", "atmel,24c64";
+               reg = <0x50>;
+               vcc-supply = <&vreg_cam_io_1p8>;
+               read-only;
+       };
+
+       /* ON Semi LC898217 VCM @ 0x72 */
+};
+
+&cci_i2c1 {
+       /* Samsung S5K4H7YX (front) @ 0x10 */
+};
+
 &gpu {
        status = "okay";
 };
index ae15d81fa3f9f2aa48f1b90abb625162026746e4..38e6e3bfc3ce1245e1aee24eadc442368d19eab6 100644 (file)
@@ -7,15 +7,20 @@
 
 #include "sdm660.dtsi"
 
-/*
- * According to the downstream DTS,
- * 636 is basically a 660 except for
- * different CPU frequencies, Adreno
- * 509 instead of 512 and lack of
- * turing IP. These differences will
- * be addressed when the aforementioned
- * peripherals will be enabled upstream.
- */
+/delete-node/ &remoteproc_cdsp;
+/delete-node/ &cdsp_smmu;
+/delete-node/ &cdsp_region;
+
+/ {
+       /delete-node/ smp2p-cdsp;
+
+       reserved-memory {
+               buffer_mem: tzbuffer@94a00000 {
+                       reg = <0x0 0x94a00000 0x00 0x100000>;
+                       no-map;
+               };
+       };
+};
 
 &adreno_gpu {
        compatible = "qcom,adreno-509.0", "qcom,adreno";
index ef4a563c0feba7cd651158cdfa1b4d3cb7503c7c..3fd6dd82a9927dc80b961c5b8f09e95870fbc8c3 100644 (file)
@@ -9,6 +9,37 @@
 
 #include "sdm630.dtsi"
 
+/delete-node/ &buffer_mem;
+
+/ {
+       smp2p-cdsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <94>, <432>;
+               interrupts = <GIC_SPI 514 IRQ_TYPE_EDGE_RISING>;
+               mboxes = <&apcs_glb 30>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <5>;
+
+               cdsp_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               cdsp_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       reserved-memory {
+               cdsp_region: cdsp@94a00000 {
+                       reg = <0x0 0x94a00000 0x00 0x600000>;
+                       no-map;
+               };
+       };
+};
+
 &adreno_gpu {
        compatible = "qcom,adreno-512.0", "qcom,adreno";
        operating-points-v2 = <&gpu_sdm660_opp_table>;
 
                /* DSI1 shares the OPP table with DSI0 */
                operating-points-v2 = <&dsi_opp_table>;
-               power-domains = <&rpmpd SDM660_VDDCX>;
+               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                interrupt-parent = <&mdss>;
                interrupts = <5>;
                        <0>;
 };
 
+&soc {
+       cdsp_smmu: iommu@5180000 {
+               compatible = "qcom,sdm630-smmu-v2", "qcom,smmu-v2";
+               reg = <0x5180000 0x40000>;
+               #iommu-cells = <1>;
+
+               #global-interrupts = <2>;
+               interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 546 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 549 IRQ_TYPE_LEVEL_HIGH>;
+
+               clocks = <&gcc GCC_HLOS1_VOTE_TURING_ADSP_SMMU_CLK>;
+               clock-names = "bus";
+
+               power-domains = <&gcc HLOS1_VOTE_TURING_ADSP_GDSC>;
+
+       };
+
+       remoteproc_cdsp: remoteproc@1a300000 {
+               compatible = "qcom,sdm660-cdsp-pas";
+               reg = <0x1a300000 0x00100>;
+               interrupts-extended = <&intc GIC_SPI 518 IRQ_TYPE_EDGE_RISING>,
+                                     <&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>;
+               interrupt-names = "wdog",
+                                 "fatal",
+                                 "ready",
+                                 "handover",
+                                 "stop-ack";
+
+               clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
+               clock-names = "xo";
+
+               memory-region = <&cdsp_region>;
+               power-domains = <&rpmpd SDM660_VDDCX>;
+               power-domain-names = "cx";
+
+               qcom,smem-states = <&cdsp_smp2p_out 0>;
+               qcom,smem-state-names = "stop";
+
+               glink-edge {
+                       interrupts = <GIC_SPI 513 IRQ_TYPE_EDGE_RISING>;
+
+                       label = "cdsp";
+                       mboxes = <&apcs_glb 29>;
+                       qcom,remote-pid = <5>;
+
+                       fastrpc {
+                               compatible = "qcom,fastrpc";
+                               qcom,glink-channels = "fastrpcglink-apps-dsp";
+                               label = "cdsp";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               compute-cb@5 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <5>;
+                                       iommus = <&cdsp_smmu 3>;
+                               };
+
+                               compute-cb@6 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <6>;
+                                       iommus = <&cdsp_smmu 4>;
+                               };
+
+                               compute-cb@7 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <7>;
+                                       iommus = <&cdsp_smmu 5>;
+                               };
+
+                               compute-cb@8 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <8>;
+                                       iommus = <&cdsp_smmu 6>;
+                               };
+
+                               compute-cb@9 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <9>;
+                                       iommus = <&cdsp_smmu 7>;
+                               };
+
+                               compute-cb@10 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <10>;
+                                       iommus = <&cdsp_smmu 8>;
+                               };
+
+                               compute-cb@11 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <11>;
+                                       iommus = <&cdsp_smmu 9>;
+                               };
+
+                               compute-cb@12 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <12>;
+                                       iommus = <&cdsp_smmu 10>;
+                               };
+
+                               compute-cb@13 {
+                                       compatible = "qcom,fastrpc-compute-cb";
+                                       reg = <13>;
+                                       iommus = <&cdsp_smmu 11>;
+                               };
+                       };
+               };
+       };
+};
+
 &tlmm {
        compatible = "qcom,sdm660-pinctrl";
 };
index b8a8dcbdfbe33e72cb259d6a4011fc9b3d6144a8..746e9deba526015764e7d299f84667d6f0e06f13 100644 (file)
                        #address-cells = <1>;
                        #size-cells = <1>;
 
-                       gpu_speed_bin: gpu_speed_bin@1a2 {
+                       gpu_speed_bin: gpu-speed-bin@1a2 {
                                reg = <0x1a2 0x2>;
                                bits = <5 8>;
                        };
index ce23f87e0316b6bfb50b387f4832cc4c35178071..5118b776a9bb37d262b7e73d3da7abe234922d7e 100644 (file)
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l23a_3p3: ldo23 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l24a_3p075: ldo24 {
                        regulator-min-microvolt = <3088000>;
                        regulator-max-microvolt = <3088000>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&qup_spi0_default>;
-       cs-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
 
        can@0 {
                compatible = "microchip,mcp2517fd";
        vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
        vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
        vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+       vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
 
        qcom,snoc-host-cap-8bit-quirk;
        qcom,calibration-variant = "Thundercomm_DB845C";
diff --git a/src/arm64/qcom/sdm845-google-blueline.dts b/src/arm64/qcom/sdm845-google-blueline.dts
new file mode 100644 (file)
index 0000000..fa89be5
--- /dev/null
@@ -0,0 +1,89 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "sdm845-google-common.dtsi"
+
+/ {
+       model = "Google Pixel 3";
+       compatible = "google,blueline", "qcom,sdm845";
+};
+
+&battery {
+       charge-full-design-microamp-hours = <2970000>;
+       voltage-min-design-microvolt = <3600000>;
+       voltage-max-design-microvolt = <4400000>;
+};
+
+&framebuffer0 {
+       width = <1080>;
+       height = <2160>;
+       stride = <(1080 * 4)>;
+};
+
+&i2c2 {
+       clock-frequency = <1000000>;
+
+       status = "okay";
+
+       /* ST,FTS @ 49 */
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vdda_mipi_dsi0_1p2>;
+
+       status = "okay";
+
+       panel@0 {
+               compatible = "lg,sw43408-lh546wf1-ed01", "lg,sw43408";
+               reg = <0>;
+
+               vddi-supply = <&vreg_l14a_1p8>;
+               vpnl-supply = <&vreg_l28a_3p0>;
+
+               reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&panel_default>;
+               pinctrl-names = "default";
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       data-lanes = <0 1 2 3>;
+       remote-endpoint = <&panel_in>;
+       qcom,te-source = "mdp_vsync_e";
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vdda_mipi_dsi0_pll>;
+
+       status = "okay";
+};
+
+&tlmm {
+       panel_default: panel-default-state {
+               reset-pins {
+                       pins = "gpio6";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+
+               te-pins {
+                       pins = "gpio12";
+                       function = "mdp_vsync";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+       };
+};
+
+&wifi {
+       qcom,calibration-variant = "Google_blueline";
+};
diff --git a/src/arm64/qcom/sdm845-google-common.dtsi b/src/arm64/qcom/sdm845-google-common.dtsi
new file mode 100644 (file)
index 0000000..fd9788d
--- /dev/null
@@ -0,0 +1,536 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "sdm845.dtsi"
+#include "pm8998.dtsi"
+#include "pmi8998.dtsi"
+
+/delete-node/ &mpss_region;
+/delete-node/ &venus_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &mba_region;
+/delete-node/ &slpi_mem;
+/delete-node/ &spss_mem;
+/delete-node/ &rmtfs_mem;
+
+/ {
+       chassis-type = "handset";
+       qcom,board-id = <0x00021505 0>;
+       qcom,msm-id = <QCOM_ID_SDM845 0x20001>;
+
+       aliases {
+               serial0 = &uart9;
+               serial1 = &uart6;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+       };
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               stdout-path = "serial0:115200n8";
+
+               /* Use display framebuffer as setup by bootloader */
+               framebuffer0: framebuffer-0 {
+                       compatible = "simple-framebuffer";
+                       memory-region = <&cont_splash_mem>;
+
+                       format = "a8r8g8b8";
+               };
+       };
+
+       reserved-memory {
+               cont_splash_mem: splash@9d400000 {
+                       reg = <0 0x9d400000 0 0x02400000>;
+                       no-map;
+               };
+
+               mpss_region: memory@8e000000 {
+                       reg = <0 0x8e000000 0 0x9800000>;
+                       no-map;
+               };
+
+               venus_mem: venus@97800000 {
+                       reg = <0 0x97800000 0 0x500000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp-mem@97D00000 {
+                       reg = <0 0x97D00000 0 0x800000>;
+                       no-map;
+               };
+
+               mba_region: mba@98500000 {
+                       reg = <0 0x98500000 0 0x200000>;
+                       no-map;
+               };
+
+               slpi_mem: slpi@98700000 {
+                       reg = <0 0x98700000 0 0x1400000>;
+                       no-map;
+               };
+
+               spss_mem: spss@99B00000 {
+                       reg = <0 0x99B00000 0 0x100000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs-region@f2700000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0 0xf2700000 0 0x202000>;
+                       qcom,use-guard-pages;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               label = "Volume keys";
+               autorepeat;
+
+               pinctrl-0 = <&volume_up_gpio>;
+               pinctrl-names = "default";
+
+               key-vol-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       vreg_s4a_1p8: regulator-vreg-s4a-1p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_s4a_1p8";
+
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+
+               vin-supply = <&vph_pwr>;
+       };
+};
+
+&adsp_pas {
+       firmware-name = "qcom/sdm845/Google/blueline/adsp.mbn";
+
+       status = "okay";
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8998-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-s11-supply = <&vph_pwr>;
+               vdd-s12-supply = <&vph_pwr>;
+               vdd-s13-supply = <&vph_pwr>;
+               vdd-l1-l27-supply = <&vreg_s7a_1p025>;
+               vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
+               vdd-l3-l11-supply = <&vreg_s7a_1p025>;
+               vdd-l4-l5-supply = <&vreg_s7a_1p025>;
+               vdd-l6-supply = <&vph_pwr>;
+               vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
+               vdd-l9-supply = <&vreg_bob>;
+               vdd-l10-l23-l25-supply = <&vreg_bob>;
+               vdd-l13-l19-l21-supply = <&vreg_bob>;
+               vdd-l16-l28-supply = <&vreg_bob>;
+               vdd-l18-l22-supply = <&vreg_bob>;
+               vdd-l20-l24-supply = <&vreg_bob>;
+               vdd-l26-supply = <&vreg_s3a_1p35>;
+               vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
+
+               vreg_s3a_1p35: smps3 {
+                       regulator-min-microvolt = <1352000>;
+                       regulator-max-microvolt = <1352000>;
+               };
+
+               vreg_s5a_2p04: smps5 {
+                       regulator-min-microvolt = <1904000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               vreg_s7a_1p025: smps7 {
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <1028000>;
+               };
+
+               vdda_mipi_dsi0_pll:
+               vreg_l1a_0p875: ldo1 {
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-boot-on;
+               };
+
+               vreg_l5a_0p8: ldo5 {
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12a_1p8: ldo12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7a_1p8: ldo7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13a_2p95: ldo13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14a_1p8: ldo14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-boot-on;
+                       /*
+                        * We can't properly bring the panel back if it gets turned off
+                        * so keep it's regulators always on for now.
+                        */
+                       regulator-always-on;
+               };
+
+               vreg_l17a_1p3: ldo17 {
+                       regulator-min-microvolt = <1304000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19a_3p3: ldo19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       /*
+                        * The touchscreen needs this to be 3.3v, which is apparently
+                        * quite close to the hardware limit for this LDO (3.312v)
+                        * It must be kept in high power mode to prevent TS brownouts
+                        */
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l20a_2p95: ldo20 {
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2968000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l21a_2p95: ldo21 {
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2968000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l24a_3p075: ldo24 {
+                       regulator-min-microvolt = <3088000>;
+                       regulator-max-microvolt = <3088000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l25a_3p3: ldo25 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vdda_mipi_dsi0_1p2:
+               vreg_l26a_1p2: ldo26 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-boot-on;
+               };
+
+               vreg_l28a_3p0: ldo28 {
+                       regulator-min-microvolt = <2856000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+                       regulator-boot-on;
+                       /*
+                        * We can't properly bring the panel back if it gets turned off
+                        * so keep it's regulators always on for now.
+                        */
+                       regulator-always-on;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmi8998-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_bob: bob {
+                       regulator-min-microvolt = <3312000>;
+                       regulator-max-microvolt = <3600000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+                       regulator-allow-bypass;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8005-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>;
+
+               vreg_s3c_0p6: smps3 {
+                       regulator-min-microvolt = <600000>;
+                       regulator-max-microvolt = <600000>;
+               };
+       };
+};
+
+&cci {
+       status = "okay";
+};
+
+&cci_i2c1 {
+       /* actuator @0c */
+
+       /* front camera, imx355 @1a */
+
+       /* eeprom @50, at24 driver says 8K */
+};
+
+&cdsp_pas {
+       firmware-name = "qcom/sdm845/Google/blueline/cdsp.mbn";
+
+       status = "okay";
+};
+
+&gcc {
+       protected-clocks = <GCC_QSPI_CORE_CLK>,
+                          <GCC_QSPI_CORE_CLK_SRC>,
+                          <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
+};
+
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+};
+
+&gpu_zap_shader {
+       firmware-name = "qcom/sdm845/Google/blueline/a630_zap.mbn";
+};
+
+&i2c12 {
+       /* Bottom spkr (right) CS35L36 @ 40 */
+
+       /* Top spkr (left) CS35L36 @ 41 */
+};
+
+&ipa {
+       firmware-name = "qcom/sdm845/Google/blueline/ipa_fws.mbn";
+       memory-region = <&ipa_fw_mem>;
+
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mss_pil {
+       firmware-name = "qcom/sdm845/Google/blueline/mba.mbn",
+                       "qcom/sdm845/Google/blueline/modem.mbn";
+
+       status = "okay";
+};
+
+&pm8998_gpios {
+       volume_up_gpio: vol-up-active-state {
+               pins = "gpio6";
+               function = "normal";
+               input-enable;
+               bias-pull-up;
+               qcom,drive-strength = <0>;
+       };
+};
+
+&pm8998_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+
+       status = "okay";
+};
+
+&pmi8998_charger {
+       monitored-battery = <&battery>;
+
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&qup_uart9_rx {
+       drive-strength = <2>;
+       bias-pull-up;
+};
+
+&qup_uart9_tx {
+       drive-strength = <2>;
+       bias-disable;
+};
+
+&tlmm {
+       gpio-reserved-ranges = < 0 4>, /* SPI (Intel MNH Pixel Visual Core) */
+                              <81 4>; /* SPI (most likely Fingerprint Cards FPC1075) */
+
+       touchscreen_reset: ts-reset-state {
+               pins = "gpio99";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       touchscreen_pins: ts-pins-gpio-state {
+               pins = "gpio125";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       touchscreen_i2c_pins: qup-i2c2-gpio-state {
+               pins = "gpio27", "gpio28";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&uart6 {
+       pinctrl-0 = <&qup_uart6_4pin>;
+
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn3990-bt";
+
+               vddio-supply = <&vreg_s4a_1p8>;
+               vddxo-supply = <&vreg_l7a_1p8>;
+               vddrf-supply = <&vreg_l17a_1p3>;
+               vddch0-supply = <&vreg_l25a_3p3>;
+               max-speed = <3200000>;
+       };
+};
+
+&uart9 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l20a_2p95>;
+       vcc-max-microamp = <800000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l1a_0p875>;
+       vdda-pll-supply = <&vreg_l26a_1p2>;
+
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l1a_0p875>;
+       vdda-pll-supply = <&vreg_l12a_1p8>;
+       vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
+
+       qcom,imp-res-offset-value = <8>;
+       qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
+       qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
+       qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l26a_1p2>;
+       vdda-pll-supply = <&vreg_l1a_0p875>;
+
+       status = "okay";
+};
+
+&venus {
+       firmware-name = "qcom/sdm845/Google/blueline/venus.mbn";
+
+       status = "okay";
+};
+
+&wifi {
+       vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
+       vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+
+       qcom,snoc-host-cap-8bit-quirk;
+
+       status = "okay";
+};
diff --git a/src/arm64/qcom/sdm845-google-crosshatch.dts b/src/arm64/qcom/sdm845-google-crosshatch.dts
new file mode 100644 (file)
index 0000000..2a81ca1
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "sdm845-google-common.dtsi"
+
+/ {
+       model = "Google Pixel 3 XL";
+       compatible = "google,crosshatch", "qcom,sdm845";
+};
+
+&battery {
+       charge-full-design-microamp-hours = <3480000>;
+       voltage-min-design-microvolt = <3600000>;
+       voltage-max-design-microvolt = <4400000>;
+};
+
+&dispcc {
+       /* Disable for now so simple-framebuffer continues working */
+       status = "disabled";
+};
+
+&framebuffer0 {
+       width = <1440>;
+       height = <2960>;
+       stride = <(1440 * 4)>;
+};
+
+&mdss {
+       /* Disable for now so simple-framebuffer continues working */
+       status = "disabled";
+};
+
+&wifi {
+       qcom,calibration-variant = "Google_crosshatch";
+};
index db6dd04c51bb5f5b3a9c1e627359593de6a2f071..5b121ea5520f5f80c06c5c4558310c1518563fab 100644 (file)
        };
 
        chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
                stdout-path = "serial0:115200n8";
+
+               framebuffer: framebuffer@9d400000 {
+                       compatible = "simple-framebuffer";
+                       memory-region = <&cont_splash_mem>;
+
+                       format = "a8r8g8b8";
+                       stride = <(1080 * 4)>;
+                       width = <1080>;
+               };
        };
 
        gpio-hall-sensor {
        };
 
        reserved-memory {
+               cont_splash_mem: splash@9d400000 {
+                       reg = <0 0x9d400000 0 0x02400000>;
+                       no-map;
+               };
+
                /*
                 * The rmtfs memory region in downstream is 'dynamically allocated'
                 * but given the same address every time. Hard code it as this address is
 
                gpio = <&tlmm 88 0>;
                enable-active-high;
-               regulator-boot-on;
        };
 
        panel_vci_3v3: panel-vci-3v3-regulator {
 };
 
 &adsp_pas {
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/adsp.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/oneplus6/adsp.mbn";
 };
 
 &apps_rsc {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-always-on;
+                       regulator-boot-on;
                };
 
                vreg_l17a_1p3: ldo17 {
 };
 
 &cdsp_pas {
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/cdsp.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/oneplus6/cdsp.mbn";
 };
 
 &gcc {
 };
 
 &gpu_zap_shader {
-       firmware-name = "qcom/sdm845/oneplus6/a630_zap.mbn";
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/a630_zap.mbn";
 };
 
 &i2c10 {
 &ipa {
        qcom,gsi-loader = "self";
        memory-region = <&ipa_fw_mem>;
-       firmware-name = "qcom/sdm845/oneplus6/ipa_fws.mbn";
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/ipa_fws.mbn";
+
        status = "okay";
 };
 
 
 /* Modem/wifi */
 &mss_pil {
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/mba.mbn",
+                       "qcom/sdm845/OnePlus/enchilada/modem.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/oneplus6/mba.mbn", "qcom/sdm845/oneplus6/modem.mbn";
 };
 
 &pm8998_gpios {
 };
 
 &slpi_pas {
-       firmware-name = "qcom/sdm845/oneplus6/slpi.mbn";
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/slpi.mbn";
+
        status = "okay";
 };
 
                 * This path is relative to the qca/
                 * subdir under lib/firmware.
                 */
-               firmware-name = "oneplus6/crnv21.bin";
+               firmware-name = "OnePlus/enchilada/crnv21.bin";
 
                vddio-supply = <&vreg_s4a_1p8>;
                vddxo-supply = <&vreg_l7a_1p8>;
 };
 
 &venus {
+       firmware-name = "qcom/sdm845/OnePlus/enchilada/venus.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/oneplus6/venus.mbn";
 };
 
 &wcd9340 {
        vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
        vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
 
+       qcom,calibration-variant = "oneplus_sdm845";
        qcom,snoc-host-cap-8bit-quirk;
 };
index 8aead6dc25e007c84f5fc32e77b4407c9ec40766..3b30d79706fe71f676d98eb0ea88a1fe206c0386 100644 (file)
        };
 };
 
+&bq27441_fg {
+       monitored-battery = <&battery>;
+};
+
 &display_panel {
        compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
 
        status = "okay";
 };
 
-&bq27441_fg {
-       monitored-battery = <&battery>;
+&framebuffer {
+       height = <2280>;
 };
 
 &i2c4 {
+       clock-frequency = <100000>;
+
        status = "okay";
 
        max98927_codec: max98927@3a {
index d6cd873aef0de2b401b6bfe124a22c267dbb60db..0542333a835798d1bd79ef045c00ed0e5c81f839 100644 (file)
        compatible = "samsung,s6e3fc2x01-ams641rw", "samsung,s6e3fc2x01";
 };
 
+&framebuffer {
+       height = <2340>;
+};
+
 &i2c4 {
        /* nxp,tfa9894 @ 0x34 */
 };
index 5d41a92cfebffe0f843dd387de473f0942f9e5a8..77f5872de6f193a4b0dec862e8a75d631854649e 100644 (file)
 };
 
 &gpu_zap_shader {
-       firmware-name = "qcom/sdm845/starqltechn/a630_zap.mbn";
+       firmware-name = "qcom/sdm845/Samsung/starqltechn/a630_zap.mbn";
 };
 
 &mdss {
 };
 
 &adsp_pas {
-       firmware-name = "qcom/sdm845/starqltechn/adsp.mbn";
+       firmware-name = "qcom/sdm845/Samsung/starqltechn/adsp.mbn";
+
        status = "okay";
 };
 
 };
 
 &mss_pil {
-       firmware-name = "qcom/sdm845/starqltechn/mba.mbn",
-                       "qcom/sdm845/starqltechn/modem.mbn";
+       firmware-name = "qcom/sdm845/Samsung/starqltechn/mba.mbn",
+                       "qcom/sdm845/Samsung/starqltechn/modem.mbn";
+
        status = "okay";
 };
 
 &ipa {
        qcom,gsi-loader = "self";
        memory-region = <&ipa_fw_mem>;
-       firmware-name = "qcom/sdm845/starqltechn/ipa_fws.mbn";
+       firmware-name = "qcom/sdm845/Samsung/starqltechn/ipa_fws.mbn";
+
        status = "okay";
 };
 
 &slpi_pas {
-       firmware-name = "qcom/sdm845/starqltechn/slpi.mbn";
+       firmware-name = "qcom/sdm845/Samsung/starqltechn/slpi.mbn";
        cx-supply = <&slpi_regulator>;
 
        status = "okay";
index ddc2b3ca3bc576d0548e2ecd43dd16196b81f38d..51b041f91d3e21d214ffbb042de8daf6c84ff112 100644 (file)
 };
 
 &adsp_pas {
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/adsp.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/axolotl/adsp.mbn";
 };
 
 &apps_rsc {
 };
 
 &cdsp_pas {
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/cdsp.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/axolotl/cdsp.mbn";
 };
 
 &gcc {
 };
 
 &gpu_zap_shader {
-       firmware-name = "qcom/sdm845/axolotl/a630_zap.mbn";
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/a630_zap.mbn";
 };
 
 &i2c5 {
 &ipa {
        qcom,gsi-loader = "self";
        memory-region = <&ipa_fw_mem>;
-       firmware-name = "qcom/sdm845/axolotl/ipa_fws.mbn";
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/ipa_fws.mbn";
+
        status = "okay";
 };
 
 };
 
 &mss_pil {
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/mba.mbn", "qcom/sdm845/SHIFT/axolotl/modem.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/axolotl/mba.mbn", "qcom/sdm845/axolotl/modem.mbn";
 };
 
 &pm8998_gpios {
 };
 
 &slpi_pas {
-       firmware-name = "qcom/sdm845/axolotl/slpi.mbn";
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/slpi.mbn";
+
        status = "okay";
 };
 
                 * This path is relative to the qca/
                 * subdir under lib/firmware.
                 */
-               firmware-name = "axolotl/crnv21.bin";
+               firmware-name = "SHIFT/axolotl/crnv21.bin";
 
                vddio-supply = <&vreg_s4a_1p8>;
                vddxo-supply = <&vreg_l7a_1p8>;
 };
 
 &venus {
+       firmware-name = "qcom/sdm845/SHIFT/axolotl/venus.mbn";
+
        status = "okay";
-       firmware-name = "qcom/sdm845/axolotl/venus.mbn";
 };
 
 &wifi {
        vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
        vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
 
+       qcom,calibration-variant = "shift_axolotl";
        qcom,snoc-host-cap-8bit-quirk;
 };
index 785006a15e9795db1605c3bb5a5861142d78458c..01b570d0880d6dce4fbc456dbbec85bbb3c3ca91 100644 (file)
 
 &adsp_pas {
        status = "okay";
-       firmware-name = "qcom/sdm845/beryllium/adsp.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/beryllium/adsp.mbn";
 };
 
 &apps_rsc {
        };
 };
 
+&cci_i2c0 {
+       status = "okay";
+
+       /* IMX363 @ 10 */
+};
+
 &cdsp_pas {
        status = "okay";
-       firmware-name = "qcom/sdm845/beryllium/cdsp.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/beryllium/cdsp.mbn";
 };
 
 &gcc {
 };
 
 &gpu_zap_shader {
-       firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/beryllium/a630_zap.mbn";
 };
 
 &ibb {
        qcom,discharge-resistor-kohms = <300>;
 };
 
+&ipa {
+       qcom,gsi-loader = "self";
+       memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn";
+
+       status = "okay";
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* TAS2559 @ 4C */
+};
+
 &lab {
        regulator-min-microvolt = <4600000>;
        regulator-max-microvolt = <6000000>;
 
 &mss_pil {
        status = "okay";
-       firmware-name = "qcom/sdm845/beryllium/mba.mbn", "qcom/sdm845/beryllium/modem.mbn";
-};
-
-&ipa {
-       qcom,gsi-loader = "self";
-       memory-region = <&ipa_fw_mem>;
-       firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn";
-       status = "okay";
+       firmware-name = "qcom/sdm845/Xiaomi/beryllium/mba.mbn",
+       "qcom/sdm845/Xiaomi/beryllium/modem.mbn";
 };
 
 &pm8998_gpios {
        cd-gpios = <&tlmm 126 GPIO_ACTIVE_HIGH>;
 };
 
+&slpi_pas {
+       firmware-name = "qcom/sdm845/Xiaomi/beryllium/slpi.mbn";
+
+       status = "okay";
+};
+
 &sound {
        compatible = "qcom,db845c-sndcard", "qcom,sdm845-sndcard";
        pinctrl-0 = <&quat_mi2s_active
 
 &venus {
        status = "okay";
-       firmware-name = "qcom/sdm845/beryllium/venus.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/beryllium/venus.mbn";
 };
 
 &wcd9340 {
        vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
        vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
        vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
+
+       qcom,calibration-variant = "xiaomi_beryllium";
 };
+
index 30e88ff010a39738c5c88ef23899189f5c4dd01a..a44d6e776c82ef1ec5c5b482b46e281f32d4988c 100644 (file)
 };
 
 &cdsp_pas {
-       firmware-name = "qcom/sdm845/polaris/cdsp.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/polaris/cdsp.mbn";
+
        status = "okay";
 };
 
 };
 
 &gpu_zap_shader {
-       firmware-name = "qcom/sdm845/polaris/a630_zap.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/polaris/a630_zap.mbn";
 };
 
 &ibb {
 &ipa {
        qcom,gsi-loader = "self";
        memory-region = <&ipa_fw_mem>;
-       firmware-name = "qcom/sdm845/polaris/ipa_fws.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/polaris/ipa_fws.mbn";
+
        status = "okay";
 };
 
 };
 
 &mss_pil {
-       firmware-name = "qcom/sdm845/polaris/mba.mbn", "qcom/sdm845/polaris/modem.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/polaris/mba.mbn",
+                       "qcom/sdm845/Xiaomi/polaris/modem.mbn";
+
        status = "okay";
 };
 
                compatible = "qcom,wcn3990-bt";
 
                /* This path is relative to the qca/ subdir under lib/firmware. */
-               firmware-name = "polaris/crnv21.bin";
+               firmware-name = "Xiaomi/polaris/crnv21.bin";
 
                vddio-supply = <&vreg_s4a_1p8>;
                vddxo-supply = <&vreg_l7a_1p8>;
 };
 
 &venus {
-       firmware-name = "qcom/sdm845/polaris/venus.mbn";
+       firmware-name = "qcom/sdm845/Xiaomi/polaris/venus.mbn";
+
        status = "okay";
 };
 
index 0ef9ea38a424a520362665265a25acf66d1c44b8..f048653818702a0e4ca2868626f52b0a4ab7e9e0 100644 (file)
@@ -30,9 +30,7 @@
 /delete-node/ &ipa_fw_mem;
 /delete-node/ &ipa_gsi_mem;
 /delete-node/ &gpu_mem;
-/delete-node/ &adsp_mem;
 /delete-node/ &wlan_msa_mem;
-/delete-node/ &slpi_mem;
 
 / {
        model = "Huawei MateBook E 2019";
                        no-map;
                };
 
-               adsp_mem: adsp@8c500000 {
-                       reg = <0 0x8c500000 0 0x1a00000>;
-                       no-map;
-               };
-
                ipa_fw_mem: ipa-fw@8df00000 {
-                       reg = <0 0x8df00000 0 0x100000>;
+                       reg = <0 0x8df00000 0 0x5a000>;
                        no-map;
                };
 
-               slpi_mem: slpi@96700000 {
-                       reg = <0 0x96700000 0 0x1200000>;
-               };
-
-               gpu_mem: gpu@97900000 {
-                       reg = <0 0x97900000 0 0x5000>;
+               gpu_mem: gpu@8df5a000 {
+                       reg = <0 0x8df5a000 0 0x5000>;
                        no-map;
                };
 
index 5e2032c26ea388eadf4bf41535ff4b2ebf8e472d..e9336adbc39184374eb7e2d38eb5c01b7be4c947 100644 (file)
                                 <&apps_smmu 0x94 0x11>,
                                 <&apps_smmu 0x96 0x11>,
                                 <&apps_smmu 0x98 0x1>,
-                                <&apps_smmu 0x9F 0>;
+                                <&apps_smmu 0x9f 0>;
                };
 
                crypto: crypto@1b3a000 {
                                 <&apps_smmu 0x94 0x11>,
                                 <&apps_smmu 0x96 0x11>,
                                 <&apps_smmu 0x98 0x1>,
-                                <&apps_smmu 0x9F 0>;
+                                <&apps_smmu 0x9f 0>;
                };
 
                usb_qmpphy: phy@1615000 {
 
                gpu: gpu@5900000 {
                        compatible = "qcom,adreno-610.0", "qcom,adreno";
-                       reg = <0x0 0x05900000 0x0 0x40000>;
-                       reg-names = "kgsl_3d0_reg_memory";
+                       reg = <0x0 0x05900000 0x0 0x40000>,
+                             <0x0 0x0599e000 0x0 0x1000>,
+                             <0x0 0x05961000 0x0 0x800>;
+                       reg-names = "kgsl_3d0_reg_memory",
+                                   "cx_mem",
+                                   "cx_dbgc";
 
                        /* There's no (real) GMU, so we have to handle quite a bunch of clocks! */
                        clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
index 68a237215bd1f65a398e582f2bb8ce4942958a75..6b68e391cf3ea1c2d37bfff3cf84eb624f41dd5f 100644 (file)
@@ -19,7 +19,7 @@
        chassis-type = "handset";
 
        /* required for bootloader to select correct board */
-       qcom,msm-id = <QCOM_ID_SM6125>;
+       qcom,msm-id = <QCOM_ID_SM6125 0x10000>;
        qcom,board-id = <22 0>;
 
        chosen {
index 8f2d65543373e70b48b4015478e21e8e74fd23c9..80c42dff5399b7c60576c2b6cf79afdbd8b9b1d4 100644 (file)
                        clock-names = "iface", "core", "xo";
                        iommus = <&apps_smmu 0x160 0x0>;
 
-                       power-domains = <&rpmpd SM6125_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
 
                        qcom,dll-config = <0x000f642c>;
                        qcom,ddr-config = <0x80040873>;
                        pinctrl-1 = <&sdc2_off_state>;
                        pinctrl-names = "default", "sleep";
 
-                       power-domains = <&rpmpd SM6125_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
 
                        qcom,dll-config = <0x0007642c>;
                        qcom,ddr-config = <0x80040873>;
                                assigned-clock-rates = <19200000>;
 
                                operating-points-v2 = <&mdp_opp_table>;
-                               power-domains = <&rpmpd SM6125_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                ports {
                                        #address-cells = <1>;
                                                         <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
 
                                operating-points-v2 = <&dsi_opp_table>;
-                               power-domains = <&rpmpd SM6125_VDDCX>;
+                               power-domains = <&rpmpd RPMPD_VDDCX>;
 
                                phys = <&mdss_dsi0_phy>;
                                phy-names = "dsi";
                                              "ref";
 
                                required-opps = <&rpmpd_opp_nom>;
-                               power-domains = <&rpmpd SM6125_VDDMX>;
+                               power-domains = <&rpmpd RPMPD_VDDMX>;
 
                                status = "disabled";
                        };
                                      "gcc_disp_gpll0_div_clk_src";
 
                        required-opps = <&rpmpd_opp_ret>;
-                       power-domains = <&rpmpd SM6125_VDDCX>;
+                       power-domains = <&rpmpd RPMPD_VDDCX>;
 
                        #clock-cells = <1>;
                        #power-domain-cells = <1>;
index 8848043f95f29966127f4ed3d47e8216f4fa3183..6e2bbf4f060ac5845e45a9264952c3185cf3d00e 100644 (file)
@@ -14,7 +14,7 @@
        compatible = "sony,pdx213", "qcom,sm6350";
        chassis-type = "handset";
        qcom,msm-id = <434 0x10000>, <459 0x10000>;
-       qcom,board-id = <0x1000B 0>;
+       qcom,board-id = <0x1000b 0>;
 
        chosen {
                #address-cells = <2>;
index f34dc6e278b8cf32ec6a84e706ded444a04005db..9f9b9f9af0da9ddd8fa873ff8b951a0d3d85f35e 100644 (file)
                        reg = <0x0 0x016e0000 0x0 0x15080>;
                        #interconnect-cells = <2>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>;
                };
 
                aggre2_noc: interconnect@1700000 {
                        reg = <0x0 0x01700000 0x0 0x1f880>;
                        #interconnect-cells = <2>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&rpmhcc RPMH_IPA_CLK>;
 
                        compute_noc: interconnect-compute-noc {
                                compatible = "qcom,sm6350-compute-noc";
index 4afbab570ca15f472dac420fb6dc82443e628d26..a3c2b26736f471ee47c0a81c5b92758edb8a4aac 100644 (file)
                        };
                };
        };
+
+       vreg_32m_cam_dvdd_1p05: regulator-32m-cam-dvdd-1p05 {
+               compatible = "regulator-fixed";
+               regulator-name = "32M_CAM_DVDD_1P05";
+               regulator-min-microvolt = <1050000>;
+               regulator-max-microvolt = <1050000>;
+               gpio = <&pm6150l_gpios 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vreg_s8e>;
+       };
+
+       vreg_48m_ois_avdd0_1p8: regulator-48m-ois-avdd0-1p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "48M_OIS_AVDD0_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&pm6150l_gpios 4 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vreg_bob>;
+       };
+
+       vreg_48m_uw_avdd0_1p8: regulator-48m-uw-avdd0-1p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "48M_UW_AVDD0_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&pm6150l_gpios 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vreg_bob>;
+       };
+
+       vreg_ois_2p8: regulator-ois-2p8 {
+               compatible = "regulator-fixed";
+               regulator-name = "OIS_2P8";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+               gpio = <&tlmm 72 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&vreg_bob>;
+       };
 };
 
 &adsp {
 };
 
 &cci0_i2c0 {
-       /* IMX582 @ 0x1a */
+       /* Main cam (Sony IMX582) @ 0x1a */
+       /* VCM driver (Onsemi LC898219XI) @ 0x28 */
+       /* OIS driver (CML CM401) @ 0x30 */
+
+       eeprom@50 {
+               compatible = "giantec,gt24p128e", "atmel,24c128";
+               reg = <0x50>;
+               vcc-supply = <&vreg_l6p>;
+               read-only;
+       };
 };
 
 &cci0_i2c1 {
-       /* IMX582 @ 0x1a */
+       /* VCM driver (Dongwoon DW9800W) @ 0xc */
+       /* Ultra-wide cam (Sony IMX582) @ 0x1a */
+
+       eeprom@50 {
+               compatible = "giantec,gt24p64a", "atmel,24c64";
+               reg = <0x50>;
+               vcc-supply = <&vreg_l6p>;
+               read-only;
+       };
 };
 
 &cci1 {
 };
 
 &cci1_i2c0 {
-       /* IMX576 @ 0x10 */
+       /* Front cam (Sony IMX576) @ 0x10 */
+
+       eeprom@50 {
+               compatible = "giantec,gt24p64a", "atmel,24c64";
+               reg = <0x50>;
+               vcc-supply = <&vreg_l6p>;
+               read-only;
+       };
 };
 
 &cdsp {
                                regulator-name = "vreg_l6p";
                                regulator-min-microvolt = <1500000>;
                                regulator-max-microvolt = <1800000>;
+                               /* Pull-up for CCI I2C busses */
+                               regulator-always-on;
                        };
 
                        vreg_l7p: ldo7 {
index 0339a572f34d01633ebf09e473d6fdff9005682d..1eea9c5c668473df2549b994862e42a713a2b733 100644 (file)
        status = "okay";
 };
 
+&gpu_zap_shader {
+       firmware-name = "qcom/sm8150/a640_zap.mbn";
+};
+
 &i2c4 {
        clock-frequency = <100000>;
 
index 12e8e1ada6d8bd3baaf9762d16b211ed97355666..0f2d511624a8bf516b8941c52336888962fd3d77 100644 (file)
        status = "okay";
 };
 
+&gpu_zap_shader {
+       firmware-name = "qcom/sm8150/a640_zap.mbn";
+};
+
 &pon {
        mode-bootloader = <0x2>;
        mode-recovery = <0x1>;
index e3ec99972a28c8b044ef23cc2d39b3997b856071..97ca5275d740a67e862dfc4115ffc4b53c84dce3 100644 (file)
                                status = "disabled";
                        };
 
+                       uart13: serial@c8c000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0 0x00c8c000 0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
                        i2c14: i2c@c90000 {
                                compatible = "qcom,geni-i2c";
                                reg = <0 0x00c90000 0 0x4000>;
                        reg = <0x0 0x03100000 0x0 0x300000>,
                              <0x0 0x03500000 0x0 0x300000>,
                              <0x0 0x03900000 0x0 0x300000>,
-                             <0x0 0x03D00000 0x0 0x300000>;
+                             <0x0 0x03d00000 0x0 0x300000>;
                        reg-names = "west", "east", "north", "south";
                        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-ranges = <&tlmm 0 0 176>;
index f5c193c6c5f9b4bf007a17926bcce319f2608706..3ea9d2b1a7d581daf63cf6b315702194562aedcf 100644 (file)
        status = "okay";
 };
 
+&gpu_zap_shader {
+       firmware-name = "qcom/sm8250/a650_zap.mbn";
+};
+
 &pon {
        mode-bootloader = <0x2>;
        mode-recovery = <0x1>;
index 66bec0fef76653752eecf286bbb02218fd48e2e1..21bfba6a11820eaca497ab27b3fa5026d825738e 100644 (file)
                pinctrl-0 = <&cam3_default>;
                pinctrl-names = "default";
                afvdd-supply = <&vreg_l7n_2p96>;
-               avdd-supply = <&vreg_l4m_2p8>;
-               dovdd-supply = <&vreg_l5n_1p8>;
-               dvdd-supply = <&vreg_l2m_1p056>;
+               vdda-supply = <&vreg_l4m_2p8>;
+               vddd-supply = <&vreg_l2m_1p056>;
+               vddio-supply = <&vreg_l5n_1p8>;
 
                port {
                        cam_tele: endpoint {
                                link-frequencies = /bits/ 64 <602500000>;
-                               data-lanes = <0 1 2 3>;
                                remote-endpoint = <&csiphy3_ep>;
                        };
                };
index 599850c48494b1daae9508068a153f24fe3bfa91..ee13e6136a8259d28540e718851e094f74ead278 100644 (file)
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
index f430038bd402c76aef0b4bb069c5e62f8abba969..94ed1c2218563a10104f26f78b4f1063981a2d16 100644 (file)
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
index 05c98fe2c25be4066b81920364c702c357498cd3..c35d4737a4121cecc24027ff2622c97dd9f4b7f5 100644 (file)
                pinctrl-0 = <&cam3_default>;
                pinctrl-names = "default";
                afvdd-supply = <&vreg_l7n_2p96>;
-               avdd-supply = <&vreg_l4m_2p8>;
-               dovdd-supply = <&vreg_l5n_1p8>;
-               dvdd-supply = <&vreg_l2m_1p056>;
+               vdda-supply = <&vreg_l4m_2p8>;
+               vddd-supply = <&vreg_l2m_1p056>;
+               vddio-supply = <&vreg_l5n_1p8>;
 
                port {
                        cam_tele: endpoint {
                                link-frequencies = /bits/ 64 <602500000>;
-                               data-lanes = <0 1 2 3>;
                                remote-endpoint = <&csiphy3_ep>;
                        };
                };
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
index b4ef40ae2cd956d2c0a1e46d6428aaa6e5d9c4ee..81c02ee27fe998a489d6a3fa67c946987a0ca88c 100644 (file)
        };
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
index d90dc7b37c4a74cbfb03c929646fda3381413084..0e6ed6fce614706590ab37eb96c1077622d0d532 100644 (file)
        };
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &pm8550vs_g_gpios {
        cam_pwr_a_cs: cam-pwr-a-cs-state {
                pins = "gpio4";
diff --git a/src/arm64/qcom/sm8650-hdk-rear-camera-card.dtso b/src/arm64/qcom/sm8650-hdk-rear-camera-card.dtso
new file mode 100644 (file)
index 0000000..8a7c6d7
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * SM8650-HDK Rear Camera Card overlay
+ *
+ * Copyright (c) 2025, Linaro Limited
+ */
+
+#include <dt-bindings/clock/qcom,sm8650-camcc.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/dts-v1/;
+/plugin/;
+
+&camss {
+       vdd-csiphy35-0p9-supply = <&vreg_l2i_0p88>;
+       vdd-csiphy35-1p2-supply = <&vreg_l3i_1p2>;
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@3 {
+                       reg = <3>;
+
+                       csiphy3_ep: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&cam_tele>;
+                       };
+               };
+       };
+};
+
+&cci1 {
+       status = "okay";
+};
+
+&cci1_i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       sensor@56 {
+               compatible = "samsung,s5kjn1";
+               reg = <0x56>;
+               clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clock-rates = <24000000>;
+               reset-gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&cam3_default>;
+               pinctrl-names = "default";
+               afvdd-supply = <&vreg_l7m_2p96>;
+               vdda-supply = <&vreg_l4m_2p8>;
+               vddd-supply = <&vreg_l2m_1p056>;
+               vddio-supply = <&vreg_l3n_1p8>;
+
+               port {
+                       cam_tele: endpoint {
+                               link-frequencies = /bits/ 64 <700000000>;
+                               remote-endpoint = <&csiphy3_ep>;
+                       };
+               };
+       };
+};
+
+&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>;
+       };
+};
index 5bf1af3308ceb647f031deb9f8755c830aa90c37..eabc828c05b4c5a70c04f621046c8ee713055be4 100644 (file)
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &pon_pwrkey {
        status = "okay";
 };
index c67bbace27439ad67cfb247a88aec633f93f5a6d..bb688a5d21c2d0c8b9fd4ff29e8d85ef9e271883 100644 (file)
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &qupv3_id_1 {
        status = "okay";
 };
index b2feac61a89f22a6cac8f663f7364fff86c76301..087828c60692c6d8a90419cea29f376001643010 100644 (file)
        };
 };
 
+&camss {
+       vdd-csiphy35-0p9-supply = <&vreg_l2i_0p88>;
+       vdd-csiphy35-1p2-supply = <&vreg_l3i_1p2>;
+       status = "okay";
+
+       ports {
+               port@3 {
+                       csiphy3_ep: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&cam_tele>;
+                       };
+               };
+       };
+};
+
+&cci1 {
+       status = "okay";
+};
+
+&cci1_i2c0 {
+       sensor@56 {
+               compatible = "samsung,s5kjn1";
+               reg = <0x56>;
+               clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clock-rates = <24000000>;
+               reset-gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&cam3_default>;
+               pinctrl-names = "default";
+               afvdd-supply = <&vreg_l7m_2p96>;
+               vdda-supply = <&vreg_l4m_2p8>;
+               vddd-supply = <&vreg_l2m_1p056>;
+               vddio-supply = <&vreg_l3n_1p8>;
+
+               port {
+                       cam_tele: endpoint {
+                               link-frequencies = /bits/ 64 <700000000>;
+                               remote-endpoint = <&csiphy3_ep>;
+                       };
+               };
+       };
+};
+
 &gpi_dma1 {
        status = "okay";
 };
        vdd3-supply = <&vreg_l5b_3p1>;
 };
 
+&pm8550vs_c {
+       status = "okay";
+};
+
+&pm8550vs_d {
+       status = "okay";
+};
+
+&pm8550vs_e {
+       status = "okay";
+};
+
+&pm8550vs_g {
+       status = "okay";
+};
+
 &qup_i2c3_data_clk {
        /* Use internal I2C pull-up */
        bias-pull-up = <2200>;
index f8e1950a74ac96e9a3c5df3751ac2c2592672a9d..357e43b907405fc8f7fc2c9aa88c8dc9e9b9cd5d 100644 (file)
                        };
                };
 
+               camss: isp@acb6000 {
+                       compatible = "qcom,sm8650-camss";
+
+                       reg = <0 0x0acb6000 0 0x1000>,
+                             <0 0x0acb8000 0 0x1000>,
+                             <0 0x0acba000 0 0x1000>,
+                             <0 0x0acbc000 0 0x1000>,
+                             <0 0x0accb000 0 0x1000>,
+                             <0 0x0acd0000 0 0x1000>,
+                             <0 0x0ace4000 0 0x2000>,
+                             <0 0x0ace6000 0 0x2000>,
+                             <0 0x0ace8000 0 0x2000>,
+                             <0 0x0acea000 0 0x2000>,
+                             <0 0x0acec000 0 0x2000>,
+                             <0 0x0acee000 0 0x2000>,
+                             <0 0x0ac62000 0 0xf000>,
+                             <0 0x0ac71000 0 0xf000>,
+                             <0 0x0ac80000 0 0xf000>,
+                             <0 0x0accc000 0 0x2000>,
+                             <0 0x0acd1000 0 0x2000>;
+                       reg-names = "csid_wrapper",
+                                   "csid0",
+                                   "csid1",
+                                   "csid2",
+                                   "csid_lite0",
+                                   "csid_lite1",
+                                   "csiphy0",
+                                   "csiphy1",
+                                   "csiphy2",
+                                   "csiphy3",
+                                   "csiphy4",
+                                   "csiphy5",
+                                   "vfe0",
+                                   "vfe1",
+                                   "vfe2",
+                                   "vfe_lite0",
+                                   "vfe_lite1";
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_RT_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CPAS_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_0_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_1_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_2_CLK>,
+                                <&camcc CAM_CC_CPAS_IFE_LITE_CLK>,
+                                <&camcc CAM_CC_CSID_CLK>,
+                                <&camcc CAM_CC_CSIPHY0_CLK>,
+                                <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY1_CLK>,
+                                <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY2_CLK>,
+                                <&camcc CAM_CC_CSI3PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY3_CLK>,
+                                <&camcc CAM_CC_CSI4PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY4_CLK>,
+                                <&camcc CAM_CC_CSI5PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY5_CLK>,
+                                <&camcc CAM_CC_CSID_CSIPHY_RX_CLK>,
+                                <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                                <&camcc CAM_CC_QDSS_DEBUG_XO_CLK>,
+                                <&camcc CAM_CC_IFE_0_CLK>,
+                                <&camcc CAM_CC_IFE_0_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_1_CLK>,
+                                <&camcc CAM_CC_IFE_1_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_2_CLK>,
+                                <&camcc CAM_CC_IFE_2_FAST_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CSID_CLK>;
+                       clock-names = "camnoc_axi",
+                                     "cpas_ahb",
+                                     "cpas_fast_ahb",
+                                     "cpas_vfe0",
+                                     "cpas_vfe1",
+                                     "cpas_vfe2",
+                                     "cpas_vfe_lite",
+                                     "csid",
+                                     "csiphy0",
+                                     "csiphy0_timer",
+                                     "csiphy1",
+                                     "csiphy1_timer",
+                                     "csiphy2",
+                                     "csiphy2_timer",
+                                     "csiphy3",
+                                     "csiphy3_timer",
+                                     "csiphy4",
+                                     "csiphy4_timer",
+                                     "csiphy5",
+                                     "csiphy5_timer",
+                                     "csiphy_rx",
+                                     "gcc_axi_hf",
+                                     "qdss_debug_xo",
+                                     "vfe0",
+                                     "vfe0_fast_ahb",
+                                     "vfe1",
+                                     "vfe1_fast_ahb",
+                                     "vfe2",
+                                     "vfe2_fast_ahb",
+                                     "vfe_lite",
+                                     "vfe_lite_ahb",
+                                     "vfe_lite_cphy_rx",
+                                     "vfe_lite_csid";
+
+                       interrupts = <GIC_SPI 601 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 603 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 431 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 605 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 376 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 477 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 478 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 479 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 448 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 122 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 89 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 602 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 604 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 688 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 606 IRQ_TYPE_EDGE_RISING 0>,
+                                    <GIC_SPI 377 IRQ_TYPE_EDGE_RISING 0>;
+                       interrupt-names = "csid0",
+                                         "csid1",
+                                         "csid2",
+                                         "csid_lite0",
+                                         "csid_lite1",
+                                         "csiphy0",
+                                         "csiphy1",
+                                         "csiphy2",
+                                         "csiphy3",
+                                         "csiphy4",
+                                         "csiphy5",
+                                         "vfe0",
+                                         "vfe1",
+                                         "vfe2",
+                                         "vfe_lite0",
+                                         "vfe_lite1";
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC 0
+                                        &config_noc SLAVE_CAMERA_CFG 0>,
+                                       <&mmss_noc MASTER_CAMNOC_HF 0
+                                        &mc_virt SLAVE_EBI1 0>;
+                       interconnect-names = "ahb",
+                                            "hf_mnoc";
+
+                       iommus = <&apps_smmu 0x800 0x20>,
+                                <&apps_smmu 0x18a0 0x40>,
+                                <&apps_smmu 0x1860 0x00>;
+
+                       power-domains = <&camcc CAM_CC_IFE_0_GDSC>,
+                                       <&camcc CAM_CC_IFE_1_GDSC>,
+                                       <&camcc CAM_CC_IFE_2_GDSC>,
+                                       <&camcc CAM_CC_TITAN_TOP_GDSC>;
+                       power-domain-names = "ife0", "ife1", "ife2", "top";
+
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                               };
+
+                               port@5 {
+                                       reg = <5>;
+                               };
+                       };
+               };
+
                camcc: clock-controller@ade0000 {
                        compatible = "qcom,sm8650-camcc";
                        reg = <0 0x0ade0000 0 0x20000>;
 
                        wakeup-parent = <&pdc>;
 
+                       cam0_default: cam0-default-state {
+                               pins = "gpio100";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam0_sleep: cam0-sleep-state {
+                               pins = "gpio100";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam1_default: cam1-default-state {
+                               pins = "gpio101";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam1_sleep: cam1-sleep-state {
+                               pins = "gpio101";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam2_default: cam2-default-state {
+                               pins = "gpio102";
+                               function = "cam_aon_mclk2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam2_sleep: cam2-sleep-state {
+                               pins = "gpio102";
+                               function = "cam_aon_mclk2";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam3_default: cam3-default-state {
+                               pins = "gpio103";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam3_sleep: cam3-sleep-state {
+                               pins = "gpio103";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam4_default: cam4-default-state {
+                               pins = "gpio104";
+                               function = "cam_aon_mclk4";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam4_sleep: cam4-sleep-state {
+                               pins = "gpio104";
+                               function = "cam_aon_mclk4";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam5_default: cam5-default-state {
+                               pins = "gpio105";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam5_sleep: cam5-sleep-state {
+                               pins = "gpio105";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam6_default: cam6-default-state {
+                               pins = "gpio108";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam6_sleep: cam6-sleep-state {
+                               pins = "gpio108";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       cam7_default: cam7-default-state {
+                               pins = "gpio106";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       cam7_sleep: cam7-sleep-state {
+                               pins = "gpio106";
+                               function = "cam_mclk";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
                        cci0_0_default: cci0-0-default-state {
                                sda-pins {
                                        pins = "gpio113";
index c8cb521b4c26ce8c3ba3b8e8bbc18a760943bec8..cb718331496ee6476d41c0f6dbc079b382fba44f 100644 (file)
        };
 };
 
+&iris {
+       status = "okay";
+};
+
 &lpass_vamacro {
        pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
        pinctrl-names = "default";
 };
 
 &pmih0108_eusb2_repeater {
-       status = "okay";
+       qcom,tune-usb2-preem = /bits/ 8 <0x3>;
+       qcom,tune-usb2-amplitude = /bits/ 8 <0xa>;
+       qcom,squelch-detector-bp = <(-2000)>;
 
        vdd18-supply = <&vreg_l15b_1p8>;
        vdd3-supply = <&vreg_l5b_3p1>;
+
+       status = "okay";
 };
 
 &qupv3_1 {
        status = "fail";
 };
 
+&sdhc_2 {
+       cd-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&vreg_l9b_2p9>;
+       vqmmc-supply = <&vreg_l8b_1p8>;
+
+       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";
+};
+
 &swr0 {
        status = "okay";
 
                };
        };
 
+       sdc2_card_det_n: sd-card-det-n-state {
+               pins = "gpio55";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        wcd_default: wcd-reset-n-active-state {
                pins = "gpio101";
                function = "gpio";
index b0cb61c5a60345b14d148c43f021ad1e82fd4d0d..801c46d556022b1f21051b36d556025b6e1eab8e 100644 (file)
        };
 };
 
+&iris {
+       status = "okay";
+};
+
 &pm8550_flash {
        status = "okay";
 
        status = "okay";
 };
 
+&sdhc_2 {
+       cd-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&vreg_l9b_2p9>;
+       vqmmc-supply = <&vreg_l8b_1p8>;
+
+       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";
+};
+
 &swr0 {
        status = "okay";
 
        /* reserved for secure world */
        gpio-reserved-ranges = <36 4>, <74 1>;
 
+       sdc2_card_det_n: sd-card-det-n-state {
+               pins = "gpio55";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        spkr_0_sd_n_active: spkr-0-sd-n-active-state {
                pins = "gpio76";
                function = "gpio";
index 3f0b57f428bbb388521c27d9ae96bbef3d62b2e2..f56b1f889b857a28859910f5c4465c8ce3473b00 100644 (file)
@@ -6,7 +6,9 @@
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,sm8750-gcc.h>
 #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
+#include <dt-bindings/clock/qcom,sm8750-videocc.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,sm8750-rpmh.h>
@@ -35,8 +37,8 @@
                        reg = <0x0 0x0>;
                        enable-method = "psci";
                        next-level-cache = <&l2_0>;
-                       power-domains = <&cpu_pd0>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd0>, <&scmi_dvfs 0>;
+                       power-domain-names = "psci", "perf";
 
                        l2_0: l2-cache {
                                compatible = "cache";
@@ -51,8 +53,8 @@
                        reg = <0x0 0x100>;
                        enable-method = "psci";
                        next-level-cache = <&l2_0>;
-                       power-domains = <&cpu_pd1>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd1>, <&scmi_dvfs 0>;
+                       power-domain-names = "psci", "perf";
                };
 
                cpu2: cpu@200 {
@@ -61,8 +63,8 @@
                        reg = <0x0 0x200>;
                        enable-method = "psci";
                        next-level-cache = <&l2_0>;
-                       power-domains = <&cpu_pd2>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd2>, <&scmi_dvfs 0>;
+                       power-domain-names = "psci", "perf";
                };
 
                cpu3: cpu@300 {
@@ -71,8 +73,8 @@
                        reg = <0x0 0x300>;
                        enable-method = "psci";
                        next-level-cache = <&l2_0>;
-                       power-domains = <&cpu_pd3>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd3>, <&scmi_dvfs 0>;
+                       power-domain-names = "psci", "perf";
                };
 
                cpu4: cpu@400 {
@@ -81,8 +83,8 @@
                        reg = <0x0 0x400>;
                        enable-method = "psci";
                        next-level-cache = <&l2_0>;
-                       power-domains = <&cpu_pd4>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd4>, <&scmi_dvfs 0>;
+                       power-domain-names = "psci", "perf";
                };
 
                cpu5: cpu@500 {
@@ -91,8 +93,8 @@
                        reg = <0x0 0x500>;
                        enable-method = "psci";
                        next-level-cache = <&l2_0>;
-                       power-domains = <&cpu_pd5>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd5>, <&scmi_dvfs 0>;
+                       power-domain-names = "psci", "perf";
                };
 
                cpu6: cpu@10000 {
                        reg = <0x0 0x10000>;
                        enable-method = "psci";
                        next-level-cache = <&l2_1>;
-                       power-domains = <&cpu_pd6>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd6>, <&scmi_dvfs 1>;
+                       power-domain-names = "psci", "perf";
 
                        l2_1: l2-cache {
                                compatible = "cache";
                        reg = <0x0 0x10100>;
                        enable-method = "psci";
                        next-level-cache = <&l2_1>;
-                       power-domains = <&cpu_pd7>;
-                       power-domain-names = "psci";
+                       power-domains = <&cpu_pd7>, <&scmi_dvfs 1>;
+                       power-domain-names = "psci", "perf";
                };
 
                cpu-map {
                        interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
                                         &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
                };
+
+               scmi {
+                       compatible = "arm,scmi";
+                       mboxes = <&cpucp_mbox 0>, <&cpucp_mbox 2>;
+                       mbox-names = "tx", "rx";
+                       shmem = <&cpu_scp_lpri0>, <&cpu_scp_lpri1>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       scmi_dvfs: protocol@13 {
+                               reg = <0x13>;
+                               #power-domain-cells = <1>;
+                       };
+               };
        };
 
        clk_virt: interconnect-0 {
                        reg = <0x0 0xff800000 0x0 0x800000>;
                        no-map;
                };
+
+               adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
+                       compatible = "shared-dma-pool";
+                       alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
+                       alignment = <0x0 0x400000>;
+                       size = <0x0 0xc00000>;
+                       reusable;
+               };
        };
 
        smp2p-adsp {
                                 <&apps_smmu 0x481 0>;
 
                        qcom,ee = <0>;
+                       qcom,num-ees = <4>;
+                       num-channels = <20>;
                        qcom,controlled-remotely;
                };
 
                                qcom,remote-pid = <2>;
                                label = "lpass";
 
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       memory-region = <&adsp_rpc_remote_heap_mem>;
+                                       qcom,vmids = <QCOM_SCM_VMID_LPASS
+                                                     QCOM_SCM_VMID_ADSP_HEAP>;
+                                       #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>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1004 0x80>,
+                                                        <&apps_smmu 0x1044 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1005 0x80>,
+                                                        <&apps_smmu 0x1045 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x1006 0x80>,
+                                                        <&apps_smmu 0x1046 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x1007 0x40>,
+                                                        <&apps_smmu 0x1067 0x0>,
+                                                        <&apps_smmu 0x1087 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x1008 0x80>,
+                                                        <&apps_smmu 0x1048 0x20>;
+                                               dma-coherent;
+                                       };
+                               };
+
                                gpr {
                                        compatible = "qcom,gpr";
                                        qcom,glink-channels = "adsp_apps";
                        };
                };
 
+               sdhc_2: mmc@8804000 {
+                       compatible = "qcom,sm8750-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x08804000 0x0 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_ACTIVE_ONLY
+                                        &config_noc SLAVE_SDCC_2 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
+
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       operating-points-v2 = <&sdhc2_opp_table>;
+
+                       qcom,dll-config = <0x0007442c>;
+                       qcom,ddr-config = <0x80040868>;
+
+                       iommus = <&apps_smmu 0x540 0x0>;
+                       dma-coherent;
+
+                       bus-width = <4>;
+                       max-sd-hs-hz = <37500000>;
+
+                       resets = <&gcc GCC_SDCC2_BCR>;
+
+                       status = "disabled";
+
+                       sdhc2_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                               };
+                       };
+               };
+
                usb_hsphy: phy@88e3000 {
                        compatible = "qcom,sm8750-m31-eusb2-phy";
                        reg = <0x0 0x88e3000 0x0 0x29c>;
                        };
                };
 
+               iris: video-codec@aa00000 {
+                       compatible = "qcom,sm8750-iris";
+                       reg = <0x0 0x0aa00000 0x0 0xf0000>;
+
+                       clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
+                                <&videocc VIDEO_CC_MVS0C_CLK>,
+                                <&videocc VIDEO_CC_MVS0_CLK>,
+                                <&gcc GCC_VIDEO_AXI1_CLK>,
+                                <&videocc VIDEO_CC_MVS0C_FREERUN_CLK>,
+                                <&videocc VIDEO_CC_MVS0_FREERUN_CLK>;
+                       clock-names = "iface",
+                                     "core",
+                                     "vcodec0_core",
+                                     "iface1",
+                                     "core_freerun",
+                                     "vcodec0_core_freerun";
+
+                       dma-coherent;
+                       iommus = <&apps_smmu 0x1940 0>,
+                                <&apps_smmu 0x1947 0>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
+                                       <&mmss_noc MASTER_VIDEO_MVP QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "cpu-cfg",
+                                            "video-mem";
+
+                       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+                       memory-region = <&video_mem>;
+
+                       operating-points-v2 = <&iris_opp_table>;
+
+                       power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>,
+                                       <&videocc VIDEO_CC_MVS0_GDSC>,
+                                       <&rpmhpd RPMHPD_MXC>,
+                                       <&rpmhpd RPMHPD_MMCX>;
+                       power-domain-names = "venus",
+                                            "vcodec0",
+                                            "mxc",
+                                            "mmcx";
+
+                       resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>,
+                                <&gcc GCC_VIDEO_AXI1_CLK_ARES>,
+                                <&videocc VIDEO_CC_MVS0C_FREERUN_CLK_ARES>,
+                                <&videocc VIDEO_CC_MVS0_FREERUN_CLK_ARES>;
+                       reset-names = "bus0",
+                                     "bus1",
+                                     "core",
+                                     "vcodec0_core";
+
+                       /*
+                        * IRIS firmware is signed by vendors, only
+                        * enable in boards where the proper signed firmware
+                        * is available.
+                        */
+                       status = "disabled";
+
+                       iris_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-240000000 {
+                                       opp-hz = /bits/ 64 <240000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs_d1>,
+                                                       <&rpmhpd_opp_low_svs_d1>;
+                               };
+
+                               opp-338000000 {
+                                       opp-hz = /bits/ 64 <338000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>,
+                                                       <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-420000000 {
+                                       opp-hz = /bits/ 64 <420000000>;
+                                       required-opps = <&rpmhpd_opp_svs>,
+                                                       <&rpmhpd_opp_svs>;
+                               };
+
+                               opp-444000000 {
+                                       opp-hz = /bits/ 64 <444000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>,
+                                                       <&rpmhpd_opp_svs_l1>;
+                               };
+
+                               opp-533333334 {
+                                       opp-hz = /bits/ 64 <533333334>;
+                                       required-opps = <&rpmhpd_opp_nom>,
+                                                       <&rpmhpd_opp_nom>;
+                               };
+
+                               opp-570000000 {
+                                       opp-hz = /bits/ 64 <570000000>;
+                                       required-opps = <&rpmhpd_opp_nom_l1>,
+                                                       <&rpmhpd_opp_nom_l1>;
+                               };
+
+                               opp-630000000 {
+                                       opp-hz = /bits/ 64 <630000000>;
+                                       required-opps = <&rpmhpd_opp_turbo>,
+                                                       <&rpmhpd_opp_turbo>;
+                               };
+                       };
+               };
+
+               videocc: clock-controller@aaf0000 {
+                       compatible = "qcom,sm8750-videocc";
+                       reg = <0x0 0x0aaf0000 0x0 0x10000>;
+                       clocks = <&bi_tcxo_div2>,
+                                <&gcc GCC_VIDEO_AHB_CLK>;
+                       power-domains = <&rpmhpd RPMHPD_MMCX>,
+                                       <&rpmhpd RPMHPD_MXC>;
+                       required-opps = <&rpmhpd_opp_low_svs>,
+                                       <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sm8750-pdc", "qcom,pdc";
                        reg = <0x0 0x0b220000 0x0 0x10000>, <0x0 0x164400f0 0x0 0x64>;
                        #reset-cells = <1>;
                };
 
-               apps_smmu: iommu@15000000 {
-                       compatible = "qcom,sm8750-smmu-500", "qcom,smmu-500", "arm,mmu-500";
-                       reg = <0x0 0x15000000 0x0 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>,
-                                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 501 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 502 IRQ_TYPE_LEVEL_HIGH>;
+               stm@10002000 {
+                       compatible = "arm,coresight-stm", "arm,primecell";
+                       reg = <0x0 0x10002000 0x0 0x1000>,
+                             <0x0 0x37280000 0x0 0x180000>;
+                       reg-names = "stm-base",
+                                   "stm-stimulus-base";
 
-                       #iommu-cells = <2>;
-                       #global-interrupts = <1>;
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
 
-                       dma-coherent;
+                       out-ports {
+                               port {
+                                       stm_out: endpoint {
+                                               remote-endpoint = <&funnel_in0_in7>;
+                                       };
+                               };
+                       };
                };
 
-               intc: interrupt-controller@16000000 {
-                       compatible = "arm,gic-v3";
-                       reg = <0x0 0x16000000 0x0 0x10000>,
-                             <0x0 0x16080000 0x0 0x200000>;
+               tpda@10004000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x10004000 0x0 0x1000>;
 
-                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
 
-                       #interrupt-cells = <3>;
-                       interrupt-controller;
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
 
-                       #redistributor-regions = <1>;
-                       redistributor-stride = <0x0 0x40000>;
+                               port@1 {
+                                       reg = <1>;
 
-                       #address-cells = <2>;
-                       #size-cells = <2>;
+                                       tpda_qdss_in1: endpoint {
+                                               remote-endpoint = <&tpdm_spdm_out>;
+                                       };
+                               };
+
+                       };
+
+                       out-ports {
+                               port {
+                                       tpda_qdss_out: endpoint {
+                                               remote-endpoint = <&funnel_in0_in6>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@1000f000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x1000f000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_spdm_out: endpoint {
+                                               remote-endpoint = <&tpda_qdss_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@10041000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x10041000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       funnel_in0_in0: endpoint {
+                                               remote-endpoint = <&tn_ag_out>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <6>;
+
+                                       funnel_in0_in6: endpoint {
+                                               remote-endpoint = <&tpda_qdss_out>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+
+                                       funnel_in0_in7: endpoint {
+                                               remote-endpoint = <&stm_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       funnel_in0_out: endpoint {
+                                               remote-endpoint = <&funnel_aoss_in7>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10800000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10800000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-element-bits = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_modem0_out: endpoint {
+                                               remote-endpoint = <&tpda_modem_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@10803000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x10803000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       tpda_modem_in0: endpoint {
+                                               remote-endpoint = <&tpdm_modem0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       tpda_modem_in1: endpoint {
+                                               remote-endpoint = <&tpdm_modem1_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       tpda_modem_out: endpoint {
+                                               remote-endpoint = <&funnel_modem_dl_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@10804000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x10804000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               port {
+                                       funnel_modem_dl_in0: endpoint {
+                                               remote-endpoint = <&tpda_modem_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       funnel_modem_dl_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in13>;
+                                       };
+                               };
+                       };
+               };
+
+               cti@1080b000 {
+                       compatible = "arm,coresight-cti", "arm,primecell";
+                       reg = <0x0 0x1080b000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+               };
+
+               tpdm@1082c000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x1082c000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_gcc_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in17>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10841000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10841000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_prng_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in18>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@1084e000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x1084e000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <32>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_mm_bcv_out: endpoint {
+                                               remote-endpoint = <&tpda_mm_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@1084f000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x1084f000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <32>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_mm_lmh_out: endpoint {
+                                               remote-endpoint = <&tpda_mm_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10850000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10850000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_mm_dpm_out: endpoint {
+                                               remote-endpoint = <&tpda_mm_in2>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@10851000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x10851000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       tpda_mm_in0: endpoint {
+                                               remote-endpoint = <&tpdm_mm_bcv_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       tpda_mm_in1: endpoint {
+                                               remote-endpoint = <&tpdm_mm_lmh_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       tpda_mm_in2: endpoint {
+                                               remote-endpoint = <&tpdm_mm_dpm_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       tpda_mm_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in4>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10980000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10980000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-element-bits = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_cdsp_out: endpoint {
+                                               remote-endpoint = <&tpda_cdsp_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@10986000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x10986000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       tpda_cdsp_in0: endpoint {
+                                               remote-endpoint = <&tpdm_cdsp_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       tpda_cdsp_in1: endpoint {
+                                               remote-endpoint = <&tpdm_cdsp_llm_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       tpda_cdsp_in2: endpoint {
+                                               remote-endpoint = <&tpdm_cdsp_llm2_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       tpda_cdsp_out: endpoint {
+                                               remote-endpoint = <&funnel_cdsp_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@10987000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x10987000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               port {
+                                       funnel_cdsp_in0: endpoint {
+                                               remote-endpoint = <&tpda_cdsp_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       funnel_cdsp_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in16>;
+                                       };
+                               };
+                       };
+               };
+
+               cti@1098b000 {
+                       compatible = "arm,coresight-cti", "arm,primecell";
+                       reg = <0x0 0x1098b000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+               };
+
+               tpdm@109a3000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a3000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-msrs-num = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_pmu_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in29>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109a4000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a4000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_ipcc_cmb_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in28>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109a5000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a5000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_dl_mm_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in25>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109a6000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a6000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_north_dsb_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in26>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109a7000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a7000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_south_dsb_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in27>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109a8000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a8000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_rdpm_cmb0_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in30>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109a9000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109a9000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_rdpm_cmb1_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in31>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109aa000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109aa000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_rdpm_cmb2_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in32>;
+                                       };
+                               };
+                       };
+               };
+
+               tn@109ab000 {
+                       compatible = "qcom,coresight-tnoc", "arm,primecell";
+                       reg = <0x0 0x109ab000 0x0 0x4200>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@4 {
+                                       reg = <4>;
+
+                                       tn_ag_in4: endpoint {
+                                               remote-endpoint = <&tpda_mm_out>;
+                                       };
+                               };
+
+                               port@d {
+                                       reg = <0xd>;
+
+                                       tn_ag_in13: endpoint {
+                                               remote-endpoint = <&funnel_modem_dl_out>;
+                                       };
+                               };
+
+                               port@10 {
+                                       reg = <0x10>;
+
+                                       tn_ag_in16: endpoint {
+                                               remote-endpoint = <&funnel_cdsp_out>;
+                                       };
+                               };
+
+                               port@11 {
+                                       reg = <0x11>;
+
+                                       tn_ag_in17: endpoint {
+                                               remote-endpoint = <&tpdm_gcc_out>;
+                                       };
+                               };
+
+                               port@12 {
+                                       reg = <0x12>;
+
+                                       tn_ag_in18: endpoint {
+                                               remote-endpoint = <&tpdm_prng_out>;
+                                       };
+                               };
+
+                               port@13 {
+                                       reg = <0x13>;
+
+                                       tn_ag_in19: endpoint {
+                                               remote-endpoint = <&tpdm_qm_out>;
+                                       };
+                               };
+
+                               port@19 {
+                                       reg = <0x19>;
+
+                                       tn_ag_in25: endpoint {
+                                               remote-endpoint = <&tpdm_dl_mm_out>;
+                                       };
+                               };
+
+                               port@1a {
+                                       reg = <0x1a>;
+
+                                       tn_ag_in26: endpoint {
+                                               remote-endpoint = <&tpdm_north_dsb_out>;
+                                       };
+                               };
+
+                               port@1b {
+                                       reg = <0x1b>;
+
+                                       tn_ag_in27: endpoint {
+                                               remote-endpoint = <&tpdm_south_dsb_out>;
+                                       };
+                               };
+
+                               port@1c {
+                                       reg = <0x1c>;
+
+                                       tn_ag_in28: endpoint {
+                                               remote-endpoint = <&tpdm_ipcc_cmb_out>;
+                                       };
+                               };
+
+                               port@1d {
+                                       reg = <0x1d>;
+
+                                       tn_ag_in29: endpoint {
+                                               remote-endpoint = <&tpdm_pmu_out>;
+                                       };
+                               };
+
+                               port@1e {
+                                       reg = <0x1e>;
+
+                                       tn_ag_in30: endpoint {
+                                               remote-endpoint = <&tpdm_rdpm_cmb0_out>;
+                                       };
+                               };
+
+                               port@1f {
+                                       reg = <0x1f>;
+
+                                       tn_ag_in31: endpoint {
+                                               remote-endpoint = <&tpdm_rdpm_cmb1_out>;
+                                       };
+                               };
+
+                               port@20 {
+                                       reg = <0x20>;
+
+                                       tn_ag_in32: endpoint {
+                                               remote-endpoint = <&tpdm_rdpm_cmb2_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       tn_ag_out: endpoint {
+                                               remote-endpoint = <&funnel_in0_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@109d0000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x109d0000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_qm_out: endpoint {
+                                               remote-endpoint = <&tn_ag_in19>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@10b04000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x10b04000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@6 {
+                                       reg = <6>;
+
+                                       funnel_aoss_in6: endpoint {
+                                               remote-endpoint = <&tpda_aoss_out>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+
+                                       funnel_aoss_in7: endpoint {
+                                               remote-endpoint = <&funnel_in0_out>;
+                                       };
+                               };
+
+                       };
+
+                       out-ports {
+                               port {
+                                       funnel_aoss_out: endpoint {
+                                               remote-endpoint = <&tmc_etf_in>;
+                                       };
+                               };
+                       };
+               };
+
+               tmc@10b05000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x0 0x10b05000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               port {
+                                       tmc_etf_in: endpoint {
+                                               remote-endpoint = <&funnel_aoss_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@10b08000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x10b08000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       tpda_aoss_in0: endpoint {
+                                               remote-endpoint = <&tpdm_swao_prio0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       tpda_aoss_in1: endpoint {
+                                               remote-endpoint = <&tpdm_swao_prio1_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       tpda_aoss_in2: endpoint {
+                                               remote-endpoint = <&tpdm_swao_prio2_out>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+
+                                       tpda_aoss_in3: endpoint {
+                                               remote-endpoint = <&tpdm_swao_prio3_out>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+
+                                       tpda_aoss_in4: endpoint {
+                                               remote-endpoint =<&tpdm_swao_out>;
+                                       };
+                               };
+                       };
+
+                       out-ports {
+                               port {
+                                       tpda_aoss_out: endpoint {
+                                               remote-endpoint = <&funnel_aoss_in6>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10b09000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10b09000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_swao_prio0_out: endpoint {
+                                               remote-endpoint = <&tpda_aoss_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10b0a000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10b0a000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_swao_prio1_out: endpoint {
+                                               remote-endpoint = <&tpda_aoss_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10b0b000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10b0b000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_swao_prio2_out: endpoint {
+                                               remote-endpoint = <&tpda_aoss_in2>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10b0c000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10b0c000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_swao_prio3_out: endpoint {
+                                               remote-endpoint = <&tpda_aoss_in3>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@10b0d000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x10b0d000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-element-bits = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       tpdm_swao_out: endpoint {
+                                               remote-endpoint = <&tpda_aoss_in4>;
+                                       };
+                               };
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,sm8750-smmu-500", "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x15000000 0x0 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>,
+                                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 501 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 502 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+
+                       dma-coherent;
+               };
+
+               intc: interrupt-controller@16000000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0x0 0x16000000 0x0 0x10000>,
+                             <0x0 0x16080000 0x0 0x200000>;
+
+                       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@16040000 {
                              <0x0 0x40000f20 0x0 0xa8>,
                              <0x0 0x40001000 0x0 0x1000>,
                              <0x0 0x40100000 0x0 0x100000>,
-                             <0x0 0x01C03000 0x0 0x1000>;
+                             <0x0 0x01c03000 0x0 0x1000>;
                        reg-names = "parf",
                                    "dbi",
                                    "elbi",
                        };
                };
 
+               cpucp_mbox: mailbox@16430000 {
+                       compatible = "qcom,sm8750-cpucp-mbox", "qcom,x1e80100-cpucp-mbox";
+                       reg = <0x0 0x16430000 0x0 0x8000>, <0x0 0x17830000 0x0 0x8000>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+               };
+
                apps_rsc: rsc@16500000 {
                        compatible = "qcom,rpmh-rsc";
                        reg = <0x0 0x16500000 0x0 0x10000>,
                        };
                };
 
+               sram: sram@17b4e000 {
+                       compatible = "mmio-sram";
+                       reg = <0x0 0x17b4e000 0x0 0x400>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x17b4e000 0x400>;
+
+                       cpu_scp_lpri0: scp-sram-section@0 {
+                               compatible = "arm,scmi-shmem";
+                               reg = <0x0 0x200>;
+                       };
+
+                       cpu_scp_lpri1: scp-sram-section@200 {
+                               compatible = "arm,scmi-shmem";
+                               reg = <0x200 0x200>;
+                       };
+               };
+
                /* cluster0 */
                pmu@240b3400 {
                        compatible = "qcom,sm8750-cpu-bwmon", "qcom,sdm845-bwmon";
                             <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
        };
+
+       tpdm-cdsp-llm {
+               compatible = "qcom,coresight-static-tpdm";
+               qcom,cmb-element-bits = <32>;
+
+               out-ports {
+                       port {
+                               tpdm_cdsp_llm_out: endpoint {
+                                       remote-endpoint = <&tpda_cdsp_in1>;
+                               };
+                       };
+               };
+       };
+
+       tpdm-cdsp-llm2 {
+               compatible = "qcom,coresight-static-tpdm";
+               qcom,cmb-element-bits = <32>;
+
+               out-ports {
+                       port {
+                               tpdm_cdsp_llm2_out: endpoint {
+                                       remote-endpoint = <&tpda_cdsp_in2>;
+                               };
+                       };
+               };
+       };
+
+       tpdm-modem1 {
+               compatible = "qcom,coresight-static-tpdm";
+               qcom,dsb-element-bits = <32>;
+
+               out-ports {
+                       port {
+                               tpdm_modem1_out: endpoint {
+                                       remote-endpoint = <&tpda_modem_in1>;
+                               };
+                       };
+               };
+       };
 };
index 95d26e3136229f9015d49e2be22f6b28f1e842f4..75716b4a58d6d331337f8a4f3f41f62a45416ec9 100644 (file)
@@ -15,6 +15,7 @@
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,qcs615-rpmh.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/phy/phy-qcom-qmp.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/power/qcom,rpmhpd.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
                qcom,bcm-voters = <&apps_bcm_voter>;
        };
 
-       ipa_virt: interconnect-1 {
-               compatible = "qcom,qcs615-ipa-virt";
-               #interconnect-cells = <2>;
-               qcom,bcm-voters = <&apps_bcm_voter>;
-       };
-
        mc_virt: interconnect-2 {
                compatible = "qcom,qcs615-mc-virt";
                #interconnect-cells = <2>;
        smp2p-adsp {
                compatible = "qcom,smp2p";
                qcom,smem = <443>, <429>;
-               interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>;
+               interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING 0>;
                /* On this platform, bit 26 (normally SLPI) is repurposed for ADSP */
                mboxes = <&apss_shared 26>;
 
        smp2p-cdsp {
                compatible = "qcom,smp2p";
                qcom,smem = <94>, <432>;
-               interrupts = <GIC_SPI 576 IRQ_TYPE_EDGE_RISING>;
+               interrupts = <GIC_SPI 576 IRQ_TYPE_EDGE_RISING 0>;
                mboxes = <&apss_shared 6>;
 
                qcom,local-pid = <0>;
 
        qup_opp_table: opp-table-qup {
                compatible = "operating-points-v2";
-               opp-shared;
 
                opp-75000000 {
                        opp-hz = /bits/ 64 <75000000>;
                };
        };
 
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
+       };
+
+       pmu-a76 {
+               compatible = "arm,cortex-a76-pmu";
+               interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
+       };
+
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
                                    "cqhci",
                                    "ice";
 
-                       interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
                        interrupt-names = "hc_irq",
                                          "pwr_irq";
 
                        compatible = "qcom,qcs615-gpi-dma", "qcom,sdm845-gpi-dma";
                        reg = <0x0 0x800000 0x0 0x60000>;
                        #dma-cells = <3>;
-                       interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
                        dma-channels = <8>;
                        dma-channel-mask = <0xf>;
                        iommus = <&apps_smmu 0xd6 0x0>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_uart0_tx>, <&qup_uart0_rx>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH 0>;
                                interconnects = <&aggre1_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
                                                 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
                                reg = <0x0 0x884000 0x0 0x4000>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c1_data_clk>;
                                reg = <0x0 0x888000 0x0 0x4000>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c2_data_clk>;
                        spi2: spi@888000 {
                                compatible = "qcom,geni-spi";
                                reg = <0x0 0x00888000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>;
                        uart2: serial@888000 {
                                compatible = "qcom,geni-uart";
                                reg = <0x0 0x00888000 0x0 0x4000>;
-                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_uart2_cts>, <&qup_uart2_rts>,
                                reg = <0x0 0x88c000 0x0 0x4000>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c3_data_clk>;
                        compatible = "qcom,qcs615-gpi-dma", "qcom,sdm845-gpi-dma";
                        reg = <0x0 0xa00000 0x0 0x60000>;
                        #dma-cells = <3>;
-                       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>;
+                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH 0>;
                        dma-channels = <8>;
                        dma-channel-mask = <0xf>;
                        iommus = <&apps_smmu 0x376 0x0>;
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c4_data_clk>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                clock-names = "se";
                                pinctrl-0 = <&qup_spi4_data_clk>, <&qup_spi4_cs>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                pinctrl-0 = <&qup_uart4_cts>, <&qup_uart4_rts>,
                                            <&qup_uart4_tx>, <&qup_uart4_rx>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH 0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                                 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c5_data_clk>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c6_data_clk>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                clock-names = "se";
                                pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                pinctrl-0 = <&qup_uart6_cts>, <&qup_uart6_rts>,
                                            <&qup_uart6_tx>, <&qup_uart6_rx>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH 0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                                 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
                                clock-names = "se";
                                pinctrl-0 = <&qup_i2c7_data_clk>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                clock-names = "se";
                                pinctrl-0 = <&qup_spi7_data_clk>, <&qup_spi7_cs>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                pinctrl-0 = <&qup_uart7_cts>, <&qup_uart7_rts>,
                                            <&qup_uart7_tx>, <&qup_uart7_rx>;
                                pinctrl-names = "default";
-                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH 0>;
                                interconnects = <&aggre1_noc MASTER_BLSP_1 QCOM_ICC_TAG_ALWAYS
                                                 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
                                                <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
                        linux,pci-domain = <0>;
                        num-lanes = <1>;
 
-                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH 0>;
                        interrupt-names = "msi0",
                                          "msi1",
                                          "msi2",
 
                        #interrupt-cells = <1>;
                        interrupt-map-mask = <0 0 0 0x7>;
-                       interrupt-map = <0 0 0 1 &intc GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 2 &intc GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 3 &intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
-                                       <0 0 0 4 &intc GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-map = <0 0 0 1 &intc GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH 0>,
+                                       <0 0 0 2 &intc GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>,
+                                       <0 0 0 3 &intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH 0>,
+                                       <0 0 0 4 &intc GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH 0>;
 
                        clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
                                 <&gcc GCC_PCIE_0_AUX_CLK>,
                        reg-names = "std",
                                    "ice";
 
-                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
 
                        clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
                                 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
                cryptobam: dma-controller@1dc4000 {
                        compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
                        reg = <0x0 0x01dc4000 0x0 0x24000>;
-                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH 0>;
                        #dma-cells = <1>;
                        qcom,ee = <0>;
                        qcom,controlled-remotely;
                        reg-names = "east",
                                    "west",
                                    "south";
-                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH 0>;
                        gpio-ranges = <&tlmm 0 0 124>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        compatible = "qcom,qcs615-cdsp-pas", "qcom,sm8150-cdsp-pas";
                        reg = <0x0 0x08300000 0x0 0x4040>;
 
-                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING 0>,
                                              <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                                              <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
                                              <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
                        status = "disabled";
 
                        glink-edge {
-                               interrupts = <GIC_SPI 574 IRQ_TYPE_EDGE_RISING>;
+                               interrupts = <GIC_SPI 574 IRQ_TYPE_EDGE_RISING 0>;
                                mboxes = <&apss_shared 4>;
                                label = "cdsp";
                                qcom,remote-pid = <5>;
                pmu@90b6300 {
                        compatible = "qcom,qcs615-cpu-bwmon", "qcom,sdm845-bwmon";
                        reg = <0x0 0x090b6300 0x0 0x600>;
-                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH 0>;
                        interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
                                         &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>;
 
                pmu@90cd000 {
                        compatible = "qcom,qcs615-llcc-bwmon", "qcom,sc7280-llcc-bwmon";
                        reg = <0x0 0x090cd000 0x0 0x1000>;
-                       interrupts = <GIC_SPI 667 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 667 IRQ_TYPE_LEVEL_HIGH 0>;
                        interconnects = <&mc_virt MASTER_LLCC QCOM_ICC_TAG_ACTIVE_ONLY
                                         &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
 
                        reg = <0x0 0x08804000 0x0 0x1000>;
                        reg-names = "hc";
 
-                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH 0>;
                        interrupt-names = "hc_irq",
                                          "pwr_irq";
 
                venus: video-codec@aa00000 {
                        compatible = "qcom,qcs615-venus", "qcom,sc7180-venus";
                        reg = <0x0 0x0aa00000 0x0 0x100000>;
-                       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH 0>;
 
                        clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
                                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
                                 <&gcc GCC_DISP_HF_AXI_CLK>,
                                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
 
-                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH 0>;
                        interrupt-controller;
                        #interrupt-cells = <1>;
 
                                                reg = <0>;
 
                                                dpu_intf0_out: endpoint {
+                                                       remote-endpoint = <&mdss_dp0_in>;
                                                };
                                        };
 
                                };
                        };
 
+                       mdss_dp0: displayport-controller@ae90000 {
+                               compatible = "qcom,sm6150-dp", "qcom,sm8150-dp", "qcom,sm8350-dp";
+
+                               reg = <0x0 0x0ae90000 0x0 0x200>,
+                                     <0x0 0x0ae90200 0x0 0x200>,
+                                     <0x0 0x0ae90400 0x0 0x600>,
+                                     <0x0 0x0ae90a00 0x0 0x600>,
+                                     <0x0 0x0ae91000 0x0 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>,
+                                        <&dispcc DISP_CC_MDSS_DP_PIXEL1_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel",
+                                             "stream_1_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DP_PIXEL1_CLK_SRC>;
+                               assigned-clock-parents = <&usb_qmpphy_2 QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_qmpphy_2 QMP_USB43DP_DP_VCO_DIV_CLK>,
+                                                        <&usb_qmpphy_2 QMP_USB43DP_DP_VCO_DIV_CLK>;
+
+                               phys = <&usb_qmpphy_2 QMP_USB43DP_DP_PHY>;
+                               phy-names = "dp";
+
+                               operating-points-v2 = <&dp_opp_table>;
+                               power-domains = <&rpmhpd RPMHPD_CX>;
+
+                               #sound-dai-cells = <0>;
+
+                               status = "disabled";
+
+                               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 {
+                                                       data-lanes = <3 2 0 1>;
+                                               };
+                                       };
+                               };
+
+                               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>;
+                                       };
+                               };
+                       };
+
                        mdss_dsi0: dsi@ae94000 {
                                compatible = "qcom,sm6150-dsi-ctrl", "qcom,mdss-dsi-ctrl";
                                reg = <0x0 0x0ae94000 0x0 0x400>;
                                 <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
                                 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>,
                                 <0>,
-                                <0>,
-                                <0>;
+                                <&usb_qmpphy_2 QMP_USB43DP_DP_LINK_CLK>,
+                                <&usb_qmpphy_2 QMP_USB43DP_DP_VCO_DIV_CLK>;
 
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                aoss_qmp: power-management@c300000 {
                        compatible = "qcom,qcs615-aoss-qmp", "qcom,aoss-qmp";
                        reg = <0x0 0x0c300000 0x0 0x400>;
-                       interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
+                       interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING 0>;
                        mboxes = <&apss_shared 0>;
 
                        #clock-cells = <0>;
                        #global-interrupts = <1>;
                        dma-coherent;
 
-                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 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>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
                spmi_bus: spmi@c440000 {
                        compatible = "arm,gic-v3";
                        reg = <0x0 0x17a00000 0x0 0x10000>,     /* GICD */
                              <0x0 0x17a60000 0x0 0x100000>;    /* GICR * 8 */
-                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
                        #address-cells = <0>;
-                       #interrupt-cells = <3>;
+                       #interrupt-cells = <4>;
                        interrupt-controller;
                        #redistributor-regions = <1>;
                        redistributor-stride = <0x0 0x20000>;
+
+                       ppi-partitions {
+                               ppi_cluster0: interrupt-partition-0 {
+                                       affinity = <&cpu0 &cpu1 &cpu2 &cpu3 &cpu4 &cpu5>;
+                               };
+
+                               ppi_cluster1: interrupt-partition-1 {
+                                       affinity = <&cpu6 &cpu7>;
+                               };
+                       };
                };
 
                apss_shared: mailbox@17c00000 {
                watchdog: watchdog@17c10000 {
                        compatible = "qcom,apss-wdt-qcs615", "qcom,kpss-wdt";
                        reg = <0x0 0x17c10000 0x0 0x1000>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH 0>;
                        clocks = <&sleep_clk>;
                };
 
                                reg = <0x17c21000 0x1000>,
                                      <0x17c22000 0x1000>;
                                frame-number = <0>;
-                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
                        };
 
                        frame@17c23000 {
                                reg = <0x17c23000 0x1000>;
                                frame-number = <1>;
-                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
                                status = "disabled";
                        };
 
                        frame@17c25000 {
                                reg = <0x17c25000 0x1000>;
                                frame-number = <2>;
-                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
                                status = "disabled";
                        };
 
                        frame@17c27000 {
                                reg = <0x17c27000 0x1000>;
                                frame-number = <3>;
-                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
                                status = "disabled";
                        };
 
                        frame@17c29000 {
                                reg = <0x17c29000 0x1000>;
                                frame-number = <4>;
-                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
                                status = "disabled";
                        };
 
                        frame@17c2b000 {
                                reg = <0x17c2b000 0x1000>;
                                frame-number = <5>;
-                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH 0>;
                                status = "disabled";
                        };
 
                        frame@17c2d000 {
                                reg = <0x17c2d000 0x1000>;
                                frame-number = <6>;
-                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
                                status = "disabled";
                        };
                };
                                    "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>;
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>;
 
                        qcom,drv-id = <2>;
                        qcom,tcs-offset = <0xd00>;
                        status = "disabled";
                };
 
+               usb_qmpphy_2: phy@88e8000 {
+                       compatible = "qcom,qcs615-qmp-usb3-dp-phy";
+                       reg = <0x0 0x088e8000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_USB2_SEC_PHY_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_CLKREF_CLK>,
+                                <&gcc GCC_AHB2PHY_WEST_CLK>,
+                                <&gcc GCC_USB2_SEC_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "cfg_ahb",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR >,
+                                <&gcc GCC_USB3_DP_PHY_SEC_BCR>;
+                       reset-names = "phy_phy",
+                                     "dp_phy";
+
+                       #clock-cells = <1>;
+                       #phy-cells = <1>;
+
+                       qcom,tcsr-reg = <&tcsr 0xbff0 0xb24c>;
+
+                       status = "disabled";
+               };
+
                usb_1: usb@a6f8800 {
                        compatible = "qcom,qcs615-dwc3", "qcom,dwc3";
                        reg = <0x0 0x0a6f8800 0x0 0x400>;
                                          <&gcc GCC_USB30_PRIM_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
-                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH 0>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>,
                                              <&pdc 9 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 6 IRQ_TYPE_LEVEL_HIGH>;
                                reg = <0x0 0x0a600000 0x0 0xcd00>;
 
                                iommus = <&apps_smmu 0x140 0x0>;
-                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH 0>;
 
                                phys = <&usb_1_hsphy>, <&usb_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                          <&gcc GCC_USB20_SEC_MASTER_CLK>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
-                       interrupts-extended = <&intc GIC_SPI 663 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&intc GIC_SPI 662 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 663 IRQ_TYPE_LEVEL_HIGH 0>,
+                                             <&intc GIC_SPI 662 IRQ_TYPE_LEVEL_HIGH 0>,
                                              <&pdc 11 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 10 IRQ_TYPE_EDGE_BOTH>;
                        interrupt-names = "pwr_event",
                                reg = <0x0 0x0a800000 0x0 0xcd00>;
 
                                iommus = <&apps_smmu 0xe0 0x0>;
-                               interrupts = <GIC_SPI 664 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 664 IRQ_TYPE_LEVEL_HIGH 0>;
 
                                phys = <&usb_hsphy_2>;
                                phy-names = "usb2-phy";
                        compatible = "qcom,qcs615-tsens", "qcom,tsens-v2";
                        reg = <0x0 0x0c263000 0x0 0x1000>,
                              <0x0 0x0c222000 0x0 0x1000>;
-                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH 0>;
                        interrupt-names = "uplow", "critical";
                        #qcom,sensors = <16>;
                        #thermal-sensor-cells = <1>;
                        compatible = "qcom,qcs615-adsp-pas", "qcom,sm8150-adsp-pas";
                        reg = <0x0 0x62400000 0x0 0x4040>;
 
-                       interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
+                       interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING 0>,
                                              <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                                              <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
                                              <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
                        status = "disabled";
 
                        glink_edge: glink-edge {
-                               interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;
+                               interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING 0>;
                                mboxes = <&apss_shared 24>;
                                label = "lpass";
                                qcom,remote-pid = <2>;
 
        arch_timer: timer {
                compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
+                            <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
+                            <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
+                            <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>;
        };
 
        thermal-zones {
index 8e5c5575a5320172caa628db181560f55b688e67..0a382cc9e64315d0f943c17dd702633e30a1e22c 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
-&pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+&pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+};
 
+&pcie6a {
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
index ded96fb43489b9e11ede25e8f6f809a18234977e..2fbf9ec66fb8bbef5394e318a47b5836666eddca 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
+&pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+};
+
 &pcie4_phy {
        vdda-phy-supply = <&vreg_l3i_0p8>;
        vdda-pll-supply = <&vreg_l3e_1p2>;
 };
 
 &pcie5 {
-       perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_wwan>;
 
        pinctrl-0 = <&pcie5_default>;
        status = "okay";
 };
 
-&pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+&pcie5_port0 {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+};
 
+&pcie6a {
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-names = "default";
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        kypd_vol_up_n: kypd-vol-up-n-state {
                pins = "gpio6";
index bf04a12b16bc93a003fa734d75b192ee2e99bbac..217ca8c7d81dae0508fb740a0077abdf81e5a24a 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pcie6a_phy {
        vdda-phy-supply = <&vreg_l1d_0p8>;
        vdda-pll-supply = <&vreg_l2j_1p2>;
index 2d1c9151cf1b4aca79f7ad67328ffc3c721b9dc3..175679be01eba0fdc91ba27de99b72f127b2435e 100644 (file)
@@ -7,6 +7,10 @@
 /dts-v1/;
 /plugin/;
 
+&apss_watchdog {
+       status = "okay";
+};
+
 /* We can't and don't need to use zap shader in EL2 as linux can zap the gpu on it's own. */
 &gpu_zap_shader {
        status = "disabled";
index a4075434162aa01bddd2c6e90f0eb44cd9bd2a7c..41063948c583da1891b8258fd5126dc7f7ec6b8d 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pcie6a_phy {
        vdda-phy-supply = <&vreg_l1d_0p8>;
        vdda-pll-supply = <&vreg_l2j_1p2>;
diff --git a/src/arm64/qcom/x1-microsoft-denali.dtsi b/src/arm64/qcom/x1-microsoft-denali.dtsi
new file mode 100644 (file)
index 0000000..ba6b7b5
--- /dev/null
@@ -0,0 +1,1324 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2025 Dale Whinham <daleyo@gmail.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "hamoa-pmics.dtsi"
+
+/ {
+       aliases {
+               serial0 = &uart2;
+               serial1 = &uart14;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&hall_int_n_default>;
+               pinctrl-names = "default";
+
+               switch-lid {
+                       gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,x1e80100-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 123 GPIO_ACTIVE_HIGH>;
+
+               /* Left-side bottom port */
+               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_ss0_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss0_ss_in: endpoint {
+                                               remote-endpoint = <&retimer_ss0_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss0_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss0_con_sbu_out>;
+                                       };
+                               };
+                       };
+               };
+
+               /* Left-side top port */
+               connector@1 {
+                       compatible = "usb-c-connector";
+                       reg = <1>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_ss1_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss1_ss_in: endpoint {
+                                               remote-endpoint = <&retimer_ss1_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss1_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss1_con_sbu_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       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-boot-on;
+       };
+
+       vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P15";
+
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rtmr0_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P8";
+
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rtmr0_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_3P3";
+
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rtmr0_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_1P15";
+
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rtmr1_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_1P8";
+
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rtmr1_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_3P3";
+
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&rtmr1_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_nvme: regulator-nvme {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_NVME_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&nvme_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vreg_wcn_3p3: regulator-wcn-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wcn_sw_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_wcn_0p95: regulator-wcn-0p95 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_0P95";
+               regulator-min-microvolt = <950000>;
+               regulator-max-microvolt = <950000>;
+
+               vin-supply = <&vreg_wcn_3p3>;
+       };
+
+       vreg_wcn_1p9: regulator-wcn-1p9 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_1P9";
+               regulator-min-microvolt = <1900000>;
+               regulator-max-microvolt = <1900000>;
+
+               vin-supply = <&vreg_wcn_3p3>;
+       };
+
+       sound {
+               compatible = "qcom,x1e80100-sndcard";
+               model = "X1E80100-Microsoft-Surface-Pro-11";
+               audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
+                               "SpkrRight IN", "WSA WSA_SPK2 OUT",
+                               "VA DMIC0", "vdd-micb",
+                               "VA DMIC1", "vdd-micb";
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       codec {
+                               sound-dai = <&left_spkr>, <&right_spkr>,
+                                           <&swr0 0>, <&lpass_wsamacro 0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               va-dai-link {
+                       link-name = "VA Capture";
+
+                       codec {
+                               sound-dai = <&lpass_vamacro 0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               vdd-supply = <&vreg_wcn_0p95>;
+               vddio-supply = <&vreg_l15b_1p8>;
+               vddaon-supply = <&vreg_wcn_0p95>;
+               vdddig-supply = <&vreg_wcn_0p95>;
+               vddrfa1p2-supply = <&vreg_wcn_1p9>;
+               vddrfa1p8-supply = <&vreg_wcn_1p9>;
+
+               wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+               bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&wcn_wlan_bt_en>;
+               pinctrl-names = "default";
+
+               regulators {
+                       vreg_pmu_rfa_cmn: ldo0 {
+                               regulator-name = "vreg_pmu_rfa_cmn";
+                       };
+
+                       vreg_pmu_aon_0p59: ldo1 {
+                               regulator-name = "vreg_pmu_aon_0p59";
+                       };
+
+                       vreg_pmu_wlcx_0p8: ldo2 {
+                               regulator-name = "vreg_pmu_wlcx_0p8";
+                       };
+
+                       vreg_pmu_wlmx_0p85: ldo3 {
+                               regulator-name = "vreg_pmu_wlmx_0p85";
+                       };
+
+                       vreg_pmu_btcmx_0p85: ldo4 {
+                               regulator-name = "vreg_pmu_btcmx_0p85";
+                       };
+
+                       vreg_pmu_rfa_0p8: ldo5 {
+                               regulator-name = "vreg_pmu_rfa_0p8";
+                       };
+
+                       vreg_pmu_rfa_1p2: ldo6 {
+                               regulator-name = "vreg_pmu_rfa_1p2";
+                       };
+
+                       vreg_pmu_rfa_1p8: ldo7 {
+                               regulator-name = "vreg_pmu_rfa_1p8";
+                       };
+
+                       vreg_pmu_pcie_0p9: ldo8 {
+                               regulator-name = "vreg_pmu_pcie_0p9";
+                       };
+
+                       vreg_pmu_pcie_1p8: ldo9 {
+                               regulator-name = "vreg_pmu_pcie_1p8";
+                       };
+               };
+       };
+};
+
+&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 = <3072000>;
+                       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_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       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 = <3072000>;
+                       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_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 = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_0p8: ldo3 {
+                       regulator-name = "vreg_l3c_0p8";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       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 = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       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 = <880000>;
+                       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>;
+               };
+       };
+
+       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 = <880000>;
+                       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 = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               memory-region = <&gpu_microcode_mem>;
+               firmware-name = "qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn";
+       };
+};
+
+&i2c0 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       /* Something @39, @3e, @44 */
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* Left-side bottom port */
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x8>;
+
+               reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+               vdd-supply = <&vreg_rtmr0_1p15>;
+               vdd33-supply = <&vreg_rtmr0_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+               vddar-supply = <&vreg_rtmr0_1p15>;
+               vddat-supply = <&vreg_rtmr0_1p15>;
+               vddio-supply = <&vreg_rtmr0_1p8>;
+
+               pinctrl-0 = <&rtmr0_default>;
+               pinctrl-names = "default";
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss0_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss0_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss0_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* Something @12, @14, @16, @18, @1a */
+};
+
+&i2c7 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       /* Left-side top port */
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x8>;
+
+               reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+               vdd-supply = <&vreg_rtmr1_1p15>;
+               vdd33-supply = <&vreg_rtmr1_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+               vddar-supply = <&vreg_rtmr1_1p15>;
+               vddat-supply = <&vreg_rtmr1_1p15>;
+               vddio-supply = <&vreg_rtmr1_1p8>;
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss1_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss1_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss1_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss1_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&lpass_tlmm {
+       spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+               pins = "gpio12";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+};
+
+&lpass_vamacro {
+       pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+       pinctrl-names = "default";
+
+       vdd-micb-supply = <&vreg_l1b_1p8>;
+       qcom,dmic-sample-rate = <4800000>;
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp0 {
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+       status = "okay";
+};
+
+&mdss_dp1_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp3 {
+       compatible = "qcom,x1e80100-dp";
+       /delete-property/ #sound-dai-cells;
+
+       status = "okay";
+
+       aux-bus {
+               panel: panel {
+                       compatible = "edp-panel";
+                       enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
+                       power-supply = <&vreg_edp_3p3>;
+
+                       pinctrl-0 = <&edp_bl_en>;
+                       pinctrl-names = "default";
+
+                       port {
+                               edp_panel_in: endpoint {
+                                       remote-endpoint = <&mdss_dp3_out>;
+                               };
+                       };
+               };
+       };
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+                               remote-endpoint = <&edp_panel_in>;
+                       };
+               };
+       };
+};
+
+&mdss_dp3_phy {
+       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-pll-supply = <&vreg_l2j_1p2>;
+
+       status = "okay";
+};
+
+&pcie4 {
+       status = "okay";
+};
+
+&pcie4_phy {
+       vdda-phy-supply = <&vreg_l3i_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
+&pcie4_port0 {
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+               vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+               vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+       };
+};
+
+&pcie6a {
+       vddpe-3v3-supply = <&vreg_nvme>;
+
+       pinctrl-0 = <&pcie6a_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie6a_phy {
+       vdda-phy-supply = <&vreg_l1d_0p8>;
+       vdda-pll-supply = <&vreg_l2j_1p2>;
+
+       status = "okay";
+};
+
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
+&pm8550_gpios {
+       rtmr0_default: rtmr0-reset-n-active-state {
+               pins = "gpio10";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+       };
+
+       rtmr0_3p3_reg_en: rtmr0-3p3-reg-en-state {
+               pins = "gpio11";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+       };
+};
+
+&pm8550ve_9_gpios {
+       rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+       };
+};
+
+&pmc8380_3_gpios {
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               input-disable;
+               output-enable;
+       };
+};
+
+&pmc8380_5_gpios {
+       rtmr0_1p15_reg_en: rtmr0-1p15-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+       };
+};
+
+&qupv3_0 {
+       status = "okay";
+};
+
+&qupv3_1 {
+       status = "okay";
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/x1e80100/microsoft/Denali/qcadsp8380.mbn",
+                       "qcom/x1e80100/microsoft/Denali/adsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/x1e80100/microsoft/Denali/qccdsp8380.mbn",
+                       "qcom/x1e80100/microsoft/Denali/cdsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&smb2360_0 {
+       status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1 {
+       status = "okay";
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2 {
+       status = "okay";
+};
+
+&smb2360_2_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l8b_3p0>;
+};
+
+&swr0 {
+       status = "okay";
+
+       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-names = "default";
+
+       /* WSA8845, Left Speaker */
+       left_spkr: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrLeft";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <1 2 3 7 10 13>;
+       };
+
+       /* WSA8845, Right Speaker */
+       right_spkr: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrRight";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <4 5 6 7 11 13>;
+       };
+};
+
+&tlmm {
+       gpio-reserved-ranges = <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+
+       hall_int_n_default: hall-int-n-state {
+               pins = "gpio2";
+               function = "gpio";
+               bias-disable;
+       };
+
+       nvme_reg_en: nvme-reg-en-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       ssam_state: ssam-state-state {
+               pins = "gpio91";
+               function = "gpio";
+               bias-disable;
+       };
+
+       wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+               pins = "gpio116", "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       pcie4_default: pcie4-default-state {
+               clkreq-n-pins {
+                       pins = "gpio147";
+                       function = "pcie4_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio146";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio148";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       pcie6a_default: pcie6a-default-state {
+               perst-n-pins {
+                       pins = "gpio152";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               clkreq-n-pins {
+                       pins = "gpio153";
+                       function = "pcie6a_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               wake-n-pins {
+                       pins = "gpio154";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       rtmr1_1p8_reg_en: rtmr1-1p8-reg-en-state {
+               pins = "gpio175";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       rtmr1_3p3_reg_en: rtmr1-3p3-reg-en-state {
+               pins = "gpio186";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       rtmr1_1p15_reg_en: rtmr1-1p15-reg-en-state {
+               pins = "gpio188";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       wcn_sw_en: wcn-sw-en-state {
+               pins = "gpio214";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       cam_indicator_en: cam-indicator-en-state {
+               pins = "gpio225";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&uart2 {
+       status = "okay";
+
+       embedded-controller {
+               compatible = "microsoft,surface-sam";
+
+               interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>;
+
+               current-speed = <4000000>;
+
+               pinctrl-0 = <&ssam_state>;
+               pinctrl-names = "default";
+       };
+};
+
+&uart14 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn7850-bt";
+               max-speed = <3200000>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+       };
+};
+
+&usb_1_ss0_hsphy {
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
+
+       phys = <&smb2360_0_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l1j_0p8>;
+
+       status = "okay";
+};
+
+&usb_1_ss0 {
+       status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_1_ss0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+       remote-endpoint = <&retimer_ss0_ss_in>;
+};
+
+&usb_1_ss1_hsphy {
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
+
+       phys = <&smb2360_1_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       status = "okay";
+};
+
+&usb_1_ss1 {
+       status = "okay";
+};
+
+&usb_1_ss1_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_1_ss1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss1_hs_in>;
+};
+
+&usb_1_ss1_qmpphy_out {
+       remote-endpoint = <&retimer_ss1_ss_in>;
+};
index a9643cd746d500296848f4b0f928a2905dcd49c0..d5a60671a38373826c1e82e51b5724f1788f8089 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
-&pcie5 {
-       perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+&pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+};
 
+&pcie5 {
        vddpe-3v3-supply = <&vreg_wwan>;
 
        pinctrl-0 = <&pcie5_default>;
        status = "okay";
 };
 
-&pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+&pcie5_port0 {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+};
 
+&pcie6a {
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-names = "default";
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
index 80ece9db875a59d7b2ee3adb09874b5af6601c1e..4d7fd51f370b706abdd49133f6f4c41efd56e111 100644 (file)
                };
        };
 
+       hdmi-bridge {
+               compatible = "realtek,rtd2171";
+
+               pinctrl-0 = <&hdmi_hpd_default>;
+               pinctrl-names = "default";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               hdmi_bridge_dp_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hdmi_bridge_tmds_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&hdmi_bridge_tmds_out>;
+                       };
+               };
+       };
+
        pmic-glink {
                compatible = "qcom,x1e80100-pmic-glink",
                             "qcom,sm8550-pmic-glink",
                                "VA DMIC1", "VA MIC BIAS1",
                                "TX SWR_INPUT1", "ADC2_OUTPUT";
 
+               displayport-0-dai-link {
+                       link-name = "DisplayPort0 Playback";
+
+                       codec {
+                               sound-dai = <&mdss_dp0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               displayport-1-dai-link {
+                       link-name = "DisplayPort1 Playback";
+
+                       codec {
+                               sound-dai = <&mdss_dp1>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai DISPLAY_PORT_RX_1>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               displayport-2-dai-link {
+                       link-name = "DisplayPort2 Playback";
+
+                       codec {
+                               sound-dai = <&mdss_dp2>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai DISPLAY_PORT_RX_2>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
                wcd-playback-dai-link {
                        link-name = "WCD Playback";
 
        link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
 };
 
+&mdss_dp2 {
+       status = "okay";
+};
+
+&mdss_dp2_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
 &mdss_dp3 {
        /delete-property/ #sound-dai-cells;
 
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
-&pcie5 {
-       perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+&pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+};
 
+&pcie5 {
        vddpe-3v3-supply = <&vreg_wwan>;
 
        pinctrl-0 = <&pcie5_default>;
        status = "okay";
 };
 
-&pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+&pcie5_port0 {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+};
 
+&pcie6a {
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
                output-low;
        };
 
+       hdmi_hpd_default: hdmi-hpd-default-state {
+               pins = "gpio126";
+               function = "usb2_dp";
+               bias-disable;
+       };
+
        tpad_default: tpad-default-state {
                pins = "gpio3";
                function = "gpio";
        remote-endpoint = <&retimer_ss1_ss_in>;
 };
 
+&usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       /delete-property/ mode-switch;
+       /delete-property/ orientation-switch;
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /delete-node/ endpoint;
+
+                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+                               reg = <0>;
+
+                               data-lanes = <3 2 1 0>;
+                               remote-endpoint = <&hdmi_bridge_dp_in>;
+                       };
+
+                       /* No USB3 lanes connected */
+               };
+       };
+};
+
 &usb_2 {
        status = "okay";
 };
index d4df21de0d95980620e5241cfdd7a31f016cd7fe..17269eb0638acb81cef7112285372b5d306ed8c3 100644 (file)
                };
        };
 
+       hdmi-bridge {
+               compatible = "parade,ps185hdm";
+
+               pinctrl-0 = <&hdmi_hpd_default>;
+               pinctrl-names = "default";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               hdmi_bridge_dp_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hdmi_bridge_tmds_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&hdmi_bridge_tmds_out>;
+                       };
+               };
+       };
+
        pmic-glink {
                compatible = "qcom,x1e80100-pmic-glink",
                             "qcom,sm8550-pmic-glink",
                                        reg = <1>;
 
                                        pmic_glink_ss0_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                                               remote-endpoint = <&retimer_ss0_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss0_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss0_con_sbu_out>;
                                        };
                                };
                        };
                                        reg = <1>;
 
                                        pmic_glink_ss1_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+                                               remote-endpoint = <&retimer_ss1_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss1_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss1_con_sbu_out>;
                                        };
                                };
                        };
                regulator-boot-on;
        };
 
+       vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P15";
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_1P15";
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
        vph_pwr: regulator-vph-pwr {
                compatible = "regulator-fixed";
 
 &i2c1 {
        clock-frequency = <400000>;
        status = "okay";
-
-       /* PS8830 USB4 Retimer? @ 0x8 */
 };
 
 &i2c3 {
        clock-frequency = <400000>;
        status = "okay";
 
-       /* PS8830 USB4 Retimer? @ 0x8 */
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x08>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+               vdd-supply = <&vreg_rtmr0_1p15>;
+               vdd33-supply = <&vreg_rtmr0_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+               vddar-supply = <&vreg_rtmr0_1p15>;
+               vddat-supply = <&vreg_rtmr0_1p15>;
+               vddio-supply = <&vreg_rtmr0_1p8>;
+
+               reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&rtmr0_default>;
+               pinctrl-names = "default";
+
+               orientation-switch;
+               retimer-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss0_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss0_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss0_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+                               };
+                       };
+               };
+       };
 };
 
 &i2c5 {
        clock-frequency = <400000>;
        status = "okay";
 
-       /* PS8830 USB4 Retimer? @ 0x8 */
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x8>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+               vdd-supply = <&vreg_rtmr1_1p15>;
+               vdd33-supply = <&vreg_rtmr1_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+               vddar-supply = <&vreg_rtmr1_1p15>;
+               vddat-supply = <&vreg_rtmr1_1p15>;
+               vddio-supply = <&vreg_rtmr1_1p8>;
+
+               reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&rtmr1_default>;
+               pinctrl-names = "default";
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss1_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss1_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss1_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss1_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&iris {
+       firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qcvss8380.mbn";
+       status = "okay";
 };
 
 &mdss {
        status = "okay";
 };
 
+&mdss_dp0 {
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+       status = "okay";
+};
+
+&mdss_dp1_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp2 {
+       status = "okay";
+};
+
+&mdss_dp2_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
 &mdss_dp3 {
        /delete-property/ #sound-dai-cells;
 
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
+&pm8550_gpios {
+       rtmr0_default: rtmr0-reset-n-active-state {
+               pins = "gpio10";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+
+       usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+               pins = "gpio11";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
+&pm8550ve_9_gpios {
+       usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
 &pmc8380_3_gpios {
        edp_bl_en: edp-bl-en-state {
                pins = "gpio4";
        };
 };
 
+&pmc8380_5_gpios {
+       usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
 &qupv3_0 {
        status = "okay";
 };
                bias-disable;
        };
 
+       hdmi_hpd_default: hdmi-hpd-default-state {
+               pins = "gpio126";
+               function = "usb2_dp";
+               bias-disable;
+       };
+
        kybd_default: kybd-default-state {
                pins = "gpio67";
                function = "gpio";
                };
        };
 
+       rtmr1_default: rtmr1-reset-n-active-state {
+               pins = "gpio176";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        tpad_default: tpad-default-state {
                pins = "gpio3";
                function = "gpio";
                bias-disable;
        };
 
+       usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
+               pins = "gpio188";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
+               pins = "gpio175";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
+               pins = "gpio186";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        wcn_bt_en: wcn-bt-en-state {
                pins = "gpio116";
                function = "gpio";
 };
 
 &usb_1_ss0_qmpphy_out {
-       remote-endpoint = <&pmic_glink_ss0_ss_in>;
+       remote-endpoint = <&retimer_ss0_ss_in>;
 };
 
 &usb_1_ss1_hsphy {
 };
 
 &usb_1_ss1_qmpphy_out {
-       remote-endpoint = <&pmic_glink_ss1_ss_in>;
+       remote-endpoint = <&retimer_ss1_ss_in>;
+};
+
+&usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       /delete-property/ mode-switch;
+       /delete-property/ orientation-switch;
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /delete-node/ endpoint;
+
+                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+                               reg = <0>;
+
+                               data-lanes = <3 2 1 0>;
+                               remote-endpoint = <&hdmi_bridge_dp_in>;
+                       };
+
+                       /* No USB3 lanes connected */
+               };
+       };
 };
 
 &usb_2 {
index 0408ade7150fc879d89a1debccec8512f56bfeff..b42318c75ed285985c91cdbe611631234a00ae9b 100644 (file)
@@ -82,6 +82,9 @@
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
index 2f533e56c8c84101973f557c4df2abd21af8832a..4c95b1af2c64432967dc1e8b1d1c8bfe5a59cc34 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
index 4c31d14a07bc67055b836725d4738bd31d611db1..d7938d3492053bb514ba7a113f3b2bc66464b358 100644 (file)
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
diff --git a/src/arm64/qcom/x1e80100-medion-sprchrgd-14-s1.dts b/src/arm64/qcom/x1e80100-medion-sprchrgd-14-s1.dts
new file mode 100644 (file)
index 0000000..eec5f2f
--- /dev/null
@@ -0,0 +1,1516 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2025 TUXEDO Computers GmbH
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "hamoa.dtsi"
+#include "hamoa-pmics.dtsi"
+
+/*
+ * This device tree also works for the TUXEDO Elite 14 Gen1 notebook
+ * prototype.
+ */
+
+/ {
+       model = "Medion SPRCHRGD 14 S1";
+       compatible = "medion,sprchrgd14s1", "qcom,x1e78100", "qcom,x1e80100";
+
+       aliases {
+               serial0 = &uart21;
+               serial1 = &uart14;
+       };
+
+       wcd938x: audio-codec {
+               compatible = "qcom,wcd9385-codec";
+
+               pinctrl-0 = <&wcd_default>;
+               pinctrl-names = "default";
+
+               qcom,micbias1-microvolt = <1800000>;
+               qcom,micbias2-microvolt = <1800000>;
+               qcom,micbias3-microvolt = <1800000>;
+               qcom,micbias4-microvolt = <1800000>;
+               qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+               qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+               qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+               qcom,rx-device = <&wcd_rx>;
+               qcom,tx-device = <&wcd_tx>;
+
+               reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>;
+
+               vdd-buck-supply = <&vreg_l15b_1p8>;
+               vdd-rxtx-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l15b_1p8>;
+               vdd-mic-bias-supply = <&vreg_bob1>;
+
+               #sound-dai-cells = <1>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&hall_int_n_default>;
+               pinctrl-names = "default";
+
+               switch-lid {
+                       gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       wakeup-source;
+               };
+       };
+
+       hdmi-bridge {
+               compatible = "asl-tek,cs5263";
+
+               pinctrl-0 = <&hdmi_hpd_default>;
+               pinctrl-names = "default";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               hdmi_bridge_dp_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hdmi_bridge_tmds_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&hdmi_bridge_tmds_out>;
+                       };
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,x1e80100-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_ss0_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss0_ss_in: endpoint {
+                                               remote-endpoint = <&retimer_ss0_ss_out>;
+                                       };
+                               };
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss0_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss0_con_sbu_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       vreg_edp_3p3: regulator-edp-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_EDP_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_nvme: regulator-nvme {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_NVME_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&nvme_reg_en>;
+               pinctrl-names = "default";
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P15";
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vph_pwr: regulator-vph-pwr {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /*
+        * TODO: These two regulators are actually part of the removable M.2
+        * card and not the mainboard. Need to describe this differently.
+        * Functionally it works correctly, because all we need to do is to
+        * turn on the actual 3.3V supply above.
+        */
+       vreg_wcn_0p95: regulator-wcn-0p95 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_0P95";
+               regulator-min-microvolt = <950000>;
+               regulator-max-microvolt = <950000>;
+
+               vin-supply = <&vreg_wcn_3p3>;
+       };
+
+       vreg_wcn_1p9: regulator-wcn-1p9 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_1P9";
+               regulator-min-microvolt = <1900000>;
+               regulator-max-microvolt = <1900000>;
+
+               vin-supply = <&vreg_wcn_3p3>;
+       };
+
+       vreg_wcn_3p3: regulator-wcn-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wcn_sw_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       sound {
+               compatible = "qcom,x1e80100-sndcard";
+               model = "X1E80100-MEDION-SPRCHRGD-14-S1";
+               audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
+                               "TweeterLeft IN", "WSA WSA_SPK2 OUT",
+                               "WooferRight IN", "WSA2 WSA_SPK2 OUT",
+                               "TweeterRight IN", "WSA2 WSA_SPK2 OUT",
+                               "IN1_HPHL", "HPHL_OUT",
+                               "IN2_HPHR", "HPHR_OUT",
+                               "AMIC2", "MIC BIAS2",
+                               "VA DMIC0", "MIC BIAS1",
+                               "VA DMIC1", "MIC BIAS1",
+                               "TX SWR_INPUT1", "ADC2_OUTPUT";
+
+               displayport-0-dai-link {
+                       link-name = "DisplayPort0 Playback";
+
+                       codec {
+                               sound-dai = <&mdss_dp0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               displayport-2-dai-link {
+                       link-name = "DisplayPort2 Playback";
+
+                       codec {
+                               sound-dai = <&mdss_dp2>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai DISPLAY_PORT_RX_2>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               va-dai-link {
+                       link-name = "VA Capture";
+
+                       codec {
+                               sound-dai = <&lpass_vamacro 0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wcd-capture-dai-link {
+                       link-name = "WCD Capture";
+
+                       codec {
+                               sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wcd-playback-dai-link {
+                       link-name = "WCD Playback";
+
+                       codec {
+                               sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       codec {
+                               sound-dai = <&left_woofer>, <&left_tweeter>,
+                                           <&swr0 0>, <&lpass_wsamacro 0>,
+                                           <&right_woofer>, <&right_tweeter>,
+                                           <&swr3 0>, <&lpass_wsa2macro 0>;
+                       };
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               vdd-supply = <&vreg_wcn_0p95>;
+               vddio-supply = <&vreg_l15b_1p8>;
+               vddaon-supply = <&vreg_wcn_0p95>;
+               vdddig-supply = <&vreg_wcn_0p95>;
+               vddrfa1p2-supply = <&vreg_wcn_1p9>;
+               vddrfa1p8-supply = <&vreg_wcn_1p9>;
+
+               wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+               bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&wcn_wlan_bt_en>;
+               pinctrl-names = "default";
+
+               regulators {
+                       vreg_pmu_rfa_cmn: ldo0 {
+                               regulator-name = "vreg_pmu_rfa_cmn";
+                       };
+
+                       vreg_pmu_aon_0p59: ldo1 {
+                               regulator-name = "vreg_pmu_aon_0p59";
+                       };
+
+                       vreg_pmu_wlcx_0p8: ldo2 {
+                               regulator-name = "vreg_pmu_wlcx_0p8";
+                       };
+
+                       vreg_pmu_wlmx_0p85: ldo3 {
+                               regulator-name = "vreg_pmu_wlmx_0p85";
+                       };
+
+                       vreg_pmu_btcmx_0p85: ldo4 {
+                               regulator-name = "vreg_pmu_btcmx_0p85";
+                       };
+
+                       vreg_pmu_rfa_0p8: ldo5 {
+                               regulator-name = "vreg_pmu_rfa_0p8";
+                       };
+
+                       vreg_pmu_rfa_1p2: ldo6 {
+                               regulator-name = "vreg_pmu_rfa_1p2";
+                       };
+
+                       vreg_pmu_rfa_1p8: ldo7 {
+                               regulator-name = "vreg_pmu_rfa_1p8";
+                       };
+
+                       vreg_pmu_pcie_0p9: ldo8 {
+                               regulator-name = "vreg_pmu_pcie_0p9";
+                       };
+
+                       vreg_pmu_pcie_1p8: ldo9 {
+                               regulator-name = "vreg_pmu_pcie_1p8";
+                       };
+               };
+       };
+};
+
+&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 = <3072000>;
+                       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_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 = <3072000>;
+                       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_2p8: ldo16 {
+                       regulator-name = "vreg_l16b_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       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_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 = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_0p9: ldo3 {
+                       regulator-name = "vreg_l3c_0p9";
+                       regulator-min-microvolt = <920000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4c_1p8: smps4 {
+                       regulator-name = "vreg_s4c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       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 = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       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 = <880000>;
+                       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>;
+               };
+       };
+
+       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_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 = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               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>;
+               };
+       };
+
+       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_l1j_0p9: ldo1 {
+                       regulator-name = "vreg_l1j_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5j_1p2: smps5 {
+                       regulator-name = "vreg_s5j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/x1e80100/Medion/sprchrgd-14-s1/qcdxkmsuc8380.mbn";
+       };
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       touchpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+
+               hid-descr-addr = <0x20>;
+               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&tpad_default>;
+               pinctrl-names = "default";
+
+               wakeup-source;
+       };
+
+       keyboard@3a {
+               compatible = "hid-over-i2c";
+               reg = <0x3a>;
+
+               hid-descr-addr = <0x1>;
+               interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&kybd_default>;
+               pinctrl-names = "default";
+
+               wakeup-source;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x8>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+               vdd33-supply = <&vreg_rtmr0_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+
+               vddio-supply = <&vreg_rtmr0_1p8>;
+
+               vdd-supply = <&vreg_rtmr0_1p15>;
+               vddar-supply = <&vreg_rtmr0_1p15>;
+               vddat-supply = <&vreg_rtmr0_1p15>;
+
+               reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&rtmr0_default>;
+               pinctrl-names = "default";
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss0_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss0_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss0_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       eusb5_repeater: redriver@43 {
+               compatible = "nxp,ptn3222";
+               reg = <0x43>;
+               #phy-cells = <0>;
+
+               vdd1v8-supply = <&vreg_l4b_1p8>;
+               vdd3v3-supply = <&vreg_l13b_3p0>;
+
+               reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&eusb5_reset_n>;
+               pinctrl-names = "default";
+       };
+
+       eusb3_repeater: redriver@47 {
+               compatible = "nxp,ptn3222";
+               reg = <0x47>;
+               #phy-cells = <0>;
+
+               vdd1v8-supply = <&vreg_l4b_1p8>;
+               vdd3v3-supply = <&vreg_l13b_3p0>;
+
+               reset-gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&eusb3_reset_n>;
+               pinctrl-names = "default";
+       };
+
+       eusb6_repeater: redriver@4f {
+               compatible = "nxp,ptn3222";
+               reg = <0x4f>;
+               #phy-cells = <0>;
+
+               vdd1v8-supply = <&vreg_l4b_1p8>;
+               vdd3v3-supply = <&vreg_l13b_3p0>;
+
+               reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&eusb6_reset_n>;
+               pinctrl-names = "default";
+       };
+};
+
+&iris {
+       firmware-name = "qcom/x1e80100/Medion/sprchrgd-14-s1/qcvss8380.mbn";
+
+       status = "okay";
+};
+
+&lpass_tlmm {
+       spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+               pins = "gpio12";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       spkr_23_sd_n_active: spkr-23-sd-n-active-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+};
+
+&lpass_vamacro {
+       pinctrl-0 = <&dmic01_default>;
+       pinctrl-names = "default";
+
+       vdd-micb-supply = <&vreg_l1b_1p8>;
+       qcom,dmic-sample-rate = <4800000>;
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp0 {
+       sound-name-prefix = "DisplayPort0";
+
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp2 {
+       sound-name-prefix = "DisplayPort2";
+
+       status = "okay";
+};
+
+&mdss_dp2_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp3 {
+       /delete-property/ #sound-dai-cells;
+
+       pinctrl-0 = <&edp0_hpd_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       aux-bus {
+               panel {
+                       compatible = "edp-panel";
+                       power-supply = <&vreg_edp_3p3>;
+
+                       port {
+                               edp_panel_in: endpoint {
+                                       remote-endpoint = <&mdss_dp3_out>;
+                               };
+                       };
+               };
+       };
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+                               remote-endpoint = <&edp_panel_in>;
+                       };
+               };
+       };
+};
+
+&mdss_dp3_phy {
+       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-pll-supply = <&vreg_l2j_1p2>;
+
+       status = "okay";
+};
+
+&pcie4 {
+       pinctrl-0 = <&pcie4_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie4_phy {
+       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
+&pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+               vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+               vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+       };
+};
+
+&pcie6a {
+       vddpe-3v3-supply = <&vreg_nvme>;
+
+       pinctrl-0 = <&pcie6a_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie6a_phy {
+       vdda-phy-supply = <&vreg_l1d_0p8>;
+       vdda-pll-supply = <&vreg_l2j_1p2>;
+
+       status = "okay";
+};
+
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
+&pm8550_gpios {
+       rtmr0_default: rtmr0-reset-n-active-state {
+               pins = "gpio10";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+
+       usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+               pins = "gpio11";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
+&pm8550ve_9_gpios {
+       usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
+&pmc8380_5_gpios {
+       usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
+&qupv3_0 {
+       status = "okay";
+};
+
+&qupv3_1 {
+       status = "okay";
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/x1e80100/Medion/sprchrgd-14-s1/qcadsp8380.mbn",
+                       "qcom/x1e80100/Medion/sprchrgd-14-s1/adsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/x1e80100/Medion/sprchrgd-14-s1/qccdsp8380.mbn",
+                       "qcom/x1e80100/Medion/sprchrgd-14-s1/cdsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&smb2360_0 {
+       status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&swr0 {
+       status = "okay";
+
+       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-names = "default";
+
+       /* WSA8845, Left Woofer */
+       left_woofer: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "WooferLeft";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <1 2 3 7 10 13>;
+       };
+
+       /* WSA8845, Left Tweeter */
+       left_tweeter: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "TweeterLeft";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <4 5 6 7 11 13>;
+       };
+};
+
+&swr1 {
+       status = "okay";
+
+       /* WCD9385 RX */
+       wcd_rx: codec@0,4 {
+               compatible = "sdw20217010d00";
+               reg = <0 4>;
+               qcom,rx-port-mapping = <1 2 3 4 5>;
+       };
+};
+
+&swr2 {
+       status = "okay";
+
+       /* WCD9385 TX */
+       wcd_tx: codec@0,3 {
+               compatible = "sdw20217010d00";
+               reg = <0 3>;
+               qcom,tx-port-mapping = <2 2 3 4>;
+       };
+};
+
+&swr3 {
+       status = "okay";
+
+       pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
+       pinctrl-names = "default";
+
+       /* WSA8845, Right Woofer */
+       right_woofer: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "WooferRight";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <1 2 3 7 10 13>;
+       };
+
+       /* WSA8845, Right Tweeter */
+       right_tweeter: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "TweeterRight";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+               qcom,port-mapping = <4 5 6 7 11 13>;
+       };
+};
+
+&tlmm {
+       gpio-reserved-ranges = <28 4>, /* Unused */
+                              <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio54";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-pull-up;
+       };
+
+       eusb3_reset_n: eusb3-reset-n-state {
+               pins = "gpio124";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       eusb6_reset_n: eusb6-reset-n-state {
+               pins = "gpio111";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       eusb5_reset_n: eusb5-reset-n-state {
+               pins = "gpio184";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       hall_int_n_default: hall-int-n-state {
+               pins = "gpio92";
+               function = "gpio";
+               bias-disable;
+       };
+
+       hdmi_hpd_default: hdmi-hpd-default-state {
+               pins = "gpio126";
+               function = "usb2_dp";
+               bias-disable;
+       };
+
+       kybd_default: kybd-default-state {
+               pins = "gpio67";
+               function = "gpio";
+               bias-disable;
+       };
+
+       nvme_reg_en: nvme-reg-en-state {
+               pins = "gpio18";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       pcie4_default: pcie4-default-state {
+               clkreq-n-pins {
+                       pins = "gpio147";
+                       function = "pcie4_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio146";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio148";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       pcie6a_default: pcie6a-default-state {
+               clkreq-n-pins {
+                       pins = "gpio153";
+                       function = "pcie6a_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio152";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio154";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       tpad_default: tpad-default-state {
+               pins = "gpio3";
+               function = "gpio";
+               bias-disable;
+       };
+
+       wcd_default: wcd-reset-n-active-state {
+               pins = "gpio191";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       wcn_sw_en: wcn-sw-en-state {
+               pins = "gpio214";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+               pins = "gpio116", "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&uart14 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn7850-bt";
+               max-speed = <3200000>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+       };
+};
+
+&usb_1_ss0_hsphy {
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
+
+       phys = <&smb2360_0_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l1j_0p9>;
+
+       status = "okay";
+};
+
+&usb_1_ss0 {
+       status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_1_ss0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+       remote-endpoint = <&retimer_ss0_ss_in>;
+};
+
+&usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       /delete-property/ mode-switch;
+       /delete-property/ orientation-switch;
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /delete-node/ endpoint;
+
+                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+                               reg = <0>;
+
+                               data-lanes = <3 2 1 0>;
+                               remote-endpoint = <&hdmi_bridge_dp_in>;
+                       };
+
+                       /* No USB3 lanes connected */
+               };
+       };
+};
+
+/* Camera */
+&usb_2 {
+       status = "okay";
+};
+
+&usb_2_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_2_hsphy {
+       vdd-supply = <&vreg_l2e_0p8>;
+       vdda12-supply = <&vreg_l3e_1p2>;
+
+       phys = <&eusb5_repeater>;
+
+       status = "okay";
+};
+
+&usb_mp {
+       status = "okay";
+};
+
+/* Right side USB-A (eUSB 3) */
+&usb_mp_hsphy0 {
+       vdd-supply = <&vreg_l2e_0p8>;
+       vdda12-supply = <&vreg_l3e_1p2>;
+
+       phys = <&eusb3_repeater>;
+
+       status = "okay";
+};
+
+/* Left side USB-A (eUSB 6) */
+&usb_mp_hsphy1 {
+       vdd-supply = <&vreg_l2e_0p8>;
+       vdda12-supply = <&vreg_l3e_1p2>;
+
+       phys = <&eusb6_repeater>;
+
+       status = "okay";
+};
+
+/* Right side USB-A (USB-SS 3) */
+&usb_mp_qmpphy0 {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l3c_0p9>;
+
+       status = "okay";
+};
+
+/* Left side USB-A (USB-SS 4) */
+&usb_mp_qmpphy1 {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l3c_0p9>;
+
+       status = "okay";
+};
diff --git a/src/arm64/qcom/x1e80100-microsoft-denali-oled.dts b/src/arm64/qcom/x1e80100-microsoft-denali-oled.dts
new file mode 100644 (file)
index 0000000..07ce43c
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025 Dale Whinham <daleyo@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "hamoa.dtsi"
+#include "x1-microsoft-denali.dtsi"
+
+/ {
+       model = "Microsoft Surface Pro 11th Edition (OLED)";
+       compatible = "microsoft,denali-oled", "microsoft,denali",
+                    "qcom,x1e80100";
+};
+
+&panel {
+       compatible = "samsung,atna30dw01", "samsung,atna33xc20";
+};
index 7e1e808ea983b6571bde306f575a94c4d6fcff84..37539a09b76eaa78bbe38c8332bf3648f380c3c2 100644 (file)
 };
 
 &pcie3 {
-       perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 145 GPIO_ACTIVE_HIGH>;
-
        pinctrl-0 = <&pcie3_default>;
        pinctrl-names = "default";
 
        status = "okay";
 };
 
+&pcie3_port0 {
+       reset-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+};
+
 &pcie4 {
        status = "okay";
 };
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_gpios {
        rtmr0_default: rtmr0-reset-n-active-state {
                pins = "gpio10";
index b742aabd9c049eb0f24cf96fb1af879acfc5d3b6..1d402ef865124c412d3caab1b8e0027647fa7b0a 100644 (file)
 &pcie3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pcie3_default>;
-       perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
 
        status = "okay";
 };
        status = "okay";
 };
 
-&pcie3_port {
+&pcie3_port0 {
        vpcie12v-supply = <&vreg_pcie_12v>;
        vpcie3v3-supply = <&vreg_pcie_3v3>;
        vpcie3v3aux-supply = <&vreg_pcie_3v3_aux>;
+
+       reset-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-names = "default";
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &qupv3_0 {
        status = "okay";
 };
index 3186e79e862de67cbda48a4b85a459e6e965ba65..06747b54a38e4323fda52d5a9e0eb335df33ab1c 100644 (file)
                vdd-supply = <&vreg_cam_5p0>;
        };
 
+       hdmi-bridge {
+               compatible = "realtek,rtd2171";
+
+               enable-gpios = <&tlmm 120 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&hdmi_hpd_default>;
+               pinctrl-names = "default";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               hdmi_bridge_dp_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hdmi_bridge_tmds_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&hdmi_bridge_tmds_out>;
+                       };
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
        link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
 };
 
+&mdss_dp2 {
+       status = "okay";
+};
+
+&mdss_dp2_out {
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
 &mdss_dp3 {
        /delete-property/ #sound-dai-cells;
 
 };
 
 &pcie4 {
-       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 };
 
 &pcie4_port0 {
+       reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
        wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;
 };
 
 &pcie6a {
-       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-
        vddpe-3v3-supply = <&vreg_nvme>;
 
        pinctrl-0 = <&pcie6a_default>;
        status = "okay";
 };
 
+&pcie6a_port0 {
+       reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+};
+
 &pm8550_pwm {
        status = "okay";
 };
                bias-disable;
        };
 
+       hdmi_bridge_en: hdmi-bridge-en-state {
+               pins = "gpio120";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-pull-down;
+       };
+
+       hdmi_hpd_default: hdmi-hpd-default-state {
+               pins = "gpio126";
+               function = "usb2_dp";
+               bias-disable;
+       };
+
        kybd_default: kybd-default-state {
                pins = "gpio67";
                function = "gpio";
        maximum-speed = "high-speed";
        phys = <&usb_1_ss2_hsphy>;
        phy-names = "usb2-phy";
+
+       /delete-property/ port@1;
 };
 
 &usb_1_ss2_hsphy {
        status = "okay";
 };
 
+&usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l2j_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       /delete-property/ mode-switch;
+       /delete-property/ orientation-switch;
+
+       status = "okay";
+
+       ports {
+               port@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /delete-node/ endpoint;
+
+                       usb_1_ss2_qmpphy_out_dp: endpoint@0 {
+                               reg = <0>;
+
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&hdmi_bridge_dp_in>;
+                       };
+               };
+       };
+};
+
 &usb_2 {
        status = "okay";
 };
diff --git a/src/arm64/qcom/x1p64100-microsoft-denali.dts b/src/arm64/qcom/x1p64100-microsoft-denali.dts
new file mode 100644 (file)
index 0000000..d96202e
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2025 Dale Whinham <daleyo@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "hamoa.dtsi"
+#include "x1-microsoft-denali.dtsi"
+
+/ {
+       model = "Microsoft Surface Pro 11th Edition (LCD)";
+       compatible = "microsoft,denali-lcd", "microsoft,denali",
+                    "qcom,x1p64100", "qcom,x1e80100";
+};
diff --git a/src/arm64/realtek/kent.dtsi b/src/arm64/realtek/kent.dtsi
new file mode 100644 (file)
index 0000000..ae006ce
--- /dev/null
@@ -0,0 +1,166 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek Kent SoC family
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       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  9 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_0>;
+                       dynamic-power-coefficient = <454>;
+                       #cooling-cells = <2>;
+
+                       l2_0: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-line-size = <64>;
+                               cache-sets = <256>;
+                               cache-size = <0x40000>;
+                               cache-unified;
+                               next-level-cache = <&l3>;
+                       };
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_1>;
+                       dynamic-power-coefficient = <454>;
+                       #cooling-cells = <2>;
+
+                       l2_1: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-line-size = <64>;
+                               cache-sets = <256>;
+                               cache-size = <0x40000>;
+                               cache-unified;
+                               next-level-cache = <&l3>;
+                       };
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x200>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_2>;
+                       dynamic-power-coefficient = <454>;
+                       #cooling-cells = <2>;
+
+                       l2_2: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-line-size = <64>;
+                               cache-sets = <256>;
+                               cache-size = <0x40000>;
+                               cache-unified;
+                               next-level-cache = <&l3>;
+                       };
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x300>;
+                       enable-method = "psci";
+                       next-level-cache = <&l2_3>;
+                       dynamic-power-coefficient = <454>;
+                       #cooling-cells = <2>;
+
+                       l2_3: l2-cache {
+                               compatible = "cache";
+                               cache-level = <2>;
+                               cache-line-size = <64>;
+                               cache-sets = <256>;
+                               cache-size = <0x40000>;
+                               cache-unified;
+                               next-level-cache = <&l3>;
+                       };
+               };
+
+               l3: l3-cache {
+                       compatible = "cache";
+                       cache-level = <3>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-size = <0x200000>;
+                       cache-unified;
+               };
+       };
+
+       psci: psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       soc@0 {
+               compatible = "simple-bus";
+               ranges = <0x0 0x0 0x0 0x40000>, /* boot code */
+                        <0x98000000 0x0 0x98000000 0xef0000>, /* rbus */
+                        <0xa0000000 0x0 0xa0000000 0x10000000>, /* PCIE */
+                        <0xff000000 0x0 0xff000000 0x200000>; /* GIC */
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               rbus: bus@98000000 {
+                       compatible = "simple-bus";
+                       ranges = <0x0 0x98000000 0xef0000>,
+                                <0xa0000000 0xa0000000 0x10000000>; /* PCIE */
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       uart0: serial@7800 {
+                               compatible = "snps,dw-apb-uart";
+                               reg = <0x7800 0x100>;
+                               clock-frequency = <432000000>;
+                               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+                               reg-io-width = <4>;
+                               reg-shift = <2>;
+                               status = "disabled";
+                       };
+               };
+
+               gic: interrupt-controller@ff100000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0xff100000 0x10000>,
+                             <0xff140000 0x80000>;
+                       interrupt-controller;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #interrupt-cells = <3>;
+                       #size-cells = <1>;
+               };
+       };
+};
diff --git a/src/arm64/realtek/rtd1501.dtsi b/src/arm64/realtek/rtd1501.dtsi
new file mode 100644 (file)
index 0000000..65f7ede
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1501 SoC
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+#include "kent.dtsi"
+
+&uart0 {
+       status = "okay";
+};
diff --git a/src/arm64/realtek/rtd1501s-phantom-8gb.dts b/src/arm64/realtek/rtd1501s-phantom-8gb.dts
new file mode 100644 (file)
index 0000000..09e544a
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1501S Phantom EVB
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+/dts-v1/;
+
+#include "rtd1501s-phantom.dtsi"
+
+/ {
+       compatible = "realtek,phantom", "realtek,rtd1501s";
+       model = "Realtek Phantom EVB Chromium (8GB)";
+
+       memory@40000 {
+               device_type = "memory";
+               reg = <0x0 0x50000 0x0 0x7ffb0000>,
+                     <0x0 0x8a100000 0x0 0xdef0000>,
+                     <0x0 0x98700000 0x0 0x7900000>,
+                     <0x0 0xa0600000 0x0 0x5ea00000>,
+                     <0x1 0x0 0x0 0xa0000000>,
+                     <0x1 0xa0600000 0x0 0x5fa00000>;
+       };
+};
diff --git a/src/arm64/realtek/rtd1501s-phantom.dtsi b/src/arm64/realtek/rtd1501s-phantom.dtsi
new file mode 100644 (file)
index 0000000..bcfb967
--- /dev/null
@@ -0,0 +1,118 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1501S Phantom EVB
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/thermal/thermal.h>
+#include "rtd1501.dtsi"
+
+/ {
+       chosen {
+               stdout-path = "serial0:460800n8";
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       alignment = <0x0 0x400000>;
+                       alloc-ranges = <0x0 0x0 0x0 0x20000000>;
+                       size = <0x0 0x2000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       cpu_opps: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp800: opp-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <830000 830000 1100000>;
+               };
+
+               opp900: opp-900000000 {
+                       opp-hz = /bits/ 64 <900000000>;
+                       opp-microvolt = <850000 850000 1100000>;
+               };
+
+               opp1000: opp-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <870000 870000 1100000>;
+               };
+
+               opp1100: opp-1100000000 {
+                       opp-hz = /bits/ 64 <1100000000>;
+                       opp-microvolt = <890000 890000 1100000>;
+               };
+
+               opp1200: opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <910000 910000 1100000>;
+               };
+
+               opp1300: opp-1300000000 {
+                       opp-hz = /bits/ 64 <1300000000>;
+                       opp-microvolt = <930000 930000 1100000>;
+               };
+
+               opp1400: opp-1400000000 {
+                       opp-hz = /bits/ 64 <1400000000>;
+                       opp-microvolt = <950000 950000 1100000>;
+               };
+
+               opp1500: opp-1500000000 {
+                       opp-hz = /bits/ 64 <1500000000>;
+                       opp-microvolt = <970000 970000 1100000>;
+               };
+
+               opp1600: opp-1600000000 {
+                       opp-hz = /bits/ 64 <1600000000>;
+                       opp-microvolt = <990000 990000 1100000>;
+                       opp-suspend;
+               };
+
+               opp1700: opp-1700000000 {
+                       opp-hz = /bits/ 64 <1700000000>;
+                       opp-microvolt = <1010000 1010000 1100000>;
+               };
+
+               opp1800: opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1030000 1030000 1100000>;
+               };
+
+               opp1900: opp-1900000000 {
+                       opp-hz = /bits/ 64 <1900000000>;
+                       opp-microvolt = <1050000 1050000 1100000>;
+               };
+       };
+};
+
+&cpu0 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu2 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu3 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
diff --git a/src/arm64/realtek/rtd1861.dtsi b/src/arm64/realtek/rtd1861.dtsi
new file mode 100644 (file)
index 0000000..44c3de8
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1861 SoC
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+#include "kent.dtsi"
+
+&uart0 {
+       status = "okay";
+};
diff --git a/src/arm64/realtek/rtd1861b-krypton-8gb.dts b/src/arm64/realtek/rtd1861b-krypton-8gb.dts
new file mode 100644 (file)
index 0000000..9c23d90
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1861B Krypton EVB
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+/dts-v1/;
+
+#include "rtd1861b-krypton.dtsi"
+
+/ {
+       compatible = "realtek,krypton", "realtek,rtd1861b";
+       model = "Realtek Krypton EVB (8GB)";
+
+       memory@40000 {
+               device_type = "memory";
+               reg = <0x0 0x50000 0x0 0x7ffb0000>,
+                     <0x0 0x8a100000 0x0 0xdef0000>,
+                     <0x0 0x98700000 0x0 0x7900000>,
+                     <0x0 0xa0600000 0x0 0x5ea00000>,
+                     <0x1 0x0 0x0 0xa0000000>,
+                     <0x1 0xa0600000 0x0 0x5fa00000>;
+       };
+};
diff --git a/src/arm64/realtek/rtd1861b-krypton.dtsi b/src/arm64/realtek/rtd1861b-krypton.dtsi
new file mode 100644 (file)
index 0000000..b500f4d
--- /dev/null
@@ -0,0 +1,72 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1861B Krypton EVB
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+/dts-v1/;
+
+#include "rtd1861.dtsi"
+
+/ {
+       chosen {
+               stdout-path = "serial0:460800n8";
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       alignment = <0x0 0x400000>;
+                       alloc-ranges = <0x0 0x0 0x0 0x20000000>;
+                       size = <0x0 0x2000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       cpu_opps: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp1200: opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <900000>;
+               };
+
+               opp1600: opp-1600000000 {
+                       opp-hz = /bits/ 64 <1600000000>;
+                       opp-microvolt = <1000000>;
+                       opp-suspend;
+               };
+
+               opp1800: opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1050000>;
+               };
+       };
+};
+
+&cpu0 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu2 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu3 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
diff --git a/src/arm64/realtek/rtd1920.dtsi b/src/arm64/realtek/rtd1920.dtsi
new file mode 100644 (file)
index 0000000..becf546
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1920 SoC
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+#include "kent.dtsi"
+
+&uart0 {
+       status = "okay";
+};
diff --git a/src/arm64/realtek/rtd1920s-smallville-4gb.dts b/src/arm64/realtek/rtd1920s-smallville-4gb.dts
new file mode 100644 (file)
index 0000000..9fd6976
--- /dev/null
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1920S Smallville EVB
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+/dts-v1/;
+
+#include "rtd1920s-smallville.dtsi"
+
+/ {
+       compatible = "realtek,smallville", "realtek,rtd1920s";
+       model = "Realtek Smallville EVB (4GB)";
+
+       memory@40000 {
+               device_type = "memory";
+               reg = <0x0 0x50000 0x0 0x7ffb0000>,
+                     <0x0 0x8a100000 0x0 0xdef0000>,
+                     <0x0 0x98700000 0x0 0x7900000>,
+                     <0x0 0xa1000000 0x0 0x5e000000>;
+       };
+};
diff --git a/src/arm64/realtek/rtd1920s-smallville.dtsi b/src/arm64/realtek/rtd1920s-smallville.dtsi
new file mode 100644 (file)
index 0000000..3db8fce
--- /dev/null
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Realtek RTD1920S Smallville EVB
+ *
+ * Copyright (c) 2024 Realtek Semiconductor Corp.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/thermal/thermal.h>
+#include "rtd1920.dtsi"
+
+/ {
+       chosen {
+               stdout-path = "serial0:460800n8";
+       };
+
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               protected_mem: protected-mem@50000 {
+                       reg = <0x0 0x50000 0x0 0xbf0000>;
+                       no-map;
+               };
+
+               metadata: metadata@c40000 {
+                       reg = <0x0 0xc40000 0x0 0x3c4000>;
+                       no-map;
+               };
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       alignment = <0x0 0x400000>;
+                       alloc-ranges = <0x0 0x0 0x0 0x20000000>;
+                       size = <0x0 0x2000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       cpu_opps: opp-table-cpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp800: opp-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <830000 830000 1100000>;
+               };
+
+               opp900: opp-900000000 {
+                       opp-hz = /bits/ 64 <900000000>;
+                       opp-microvolt = <850000 850000 1100000>;
+               };
+
+               opp1000: opp-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <870000 870000 1100000>;
+               };
+
+               opp1100: opp-1100000000 {
+                       opp-hz = /bits/ 64 <1100000000>;
+                       opp-microvolt = <890000 890000 1100000>;
+               };
+
+               opp1200: opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <910000 910000 1100000>;
+               };
+
+               opp1300: opp-1300000000 {
+                       opp-hz = /bits/ 64 <1300000000>;
+                       opp-microvolt = <930000 930000 1100000>;
+               };
+
+               opp1400: opp-1400000000 {
+                       opp-hz = /bits/ 64 <1400000000>;
+                       opp-microvolt = <950000 950000 1100000>;
+               };
+
+               opp1500: opp-1500000000 {
+                       opp-hz = /bits/ 64 <1500000000>;
+                       opp-microvolt = <970000 970000 1100000>;
+               };
+
+               opp1600: opp-1600000000 {
+                       opp-hz = /bits/ 64 <1600000000>;
+                       opp-microvolt = <990000 990000 1100000>;
+                       opp-suspend;
+               };
+
+               opp1700: opp-1700000000 {
+                       opp-hz = /bits/ 64 <1700000000>;
+                       opp-microvolt = <1010000 1010000 1100000>;
+               };
+
+               opp1800: opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1030000 1030000 1100000>;
+               };
+
+               opp1900: opp-1900000000 {
+                       opp-hz = /bits/ 64 <1900000000>;
+                       opp-microvolt = <1050000 1050000 1100000>;
+               };
+       };
+};
+
+&cpu0 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu1 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu2 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
+
+&cpu3 {
+       operating-points-v2 = <&cpu_opps>;
+       #cooling-cells = <2>;
+};
index d40a7224f9c3d78260415e77892782c527afc3f2..af6d15f90c65f3e27a7ef541a55374016c2fe91c 100644 (file)
                reg = <0x51>;
        };
 
-       versaclock5: versaclock_som@6a {
+       versaclock5: versaclock-som@6a {
                compatible = "idt,5p49v6965";
                reg = <0x6a>;
                #clock-cells = <1>;
index 9fe9c722187d841efbccfa275f8c05046bb0ccd2..6b22cc0b05b19d26eae17d4c7e153c316a901e03 100644 (file)
                                reg = <0x00040000 0x080000>;
                                read-only;
                        };
-                       cert_header_sa3@c0000 {
+                       cert-header-sa3@c0000 {
                                reg = <0x000c0000 0x080000>;
                                read-only;
                        };
                                reg = <0x00140000 0x040000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
 &scif_clk {
        clock-frequency = <14745600>;
 };
+
+/* Firmware should reserve it but sadly doesn't */
+&swdt {
+       status = "reserved";
+};
index 733a55f77cfb04c6fe17c3399a4323e775de8f37..c83c97d991133ca7c7e47a55d8d00605ad52af99 100644 (file)
                                reg = <0x00040000 0x140000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
index adc4449b809ad896547f50fa384dd4a2a138ee70..692a2b12aa035d5bc1b56bf480f9a54e94ca7a7c 100644 (file)
                                reg = <0x00040000 0x140000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
diff --git a/src/arm64/renesas/gmsl-cameras.dtsi b/src/arm64/renesas/gmsl-cameras.dtsi
deleted file mode 100644 (file)
index e0930d1..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2017 Ideas on Board <kieran.bingham@ideasonboard.com>
- * Copyright (C) 2021 Jacopo Mondi <jacopo+renesas@jmondi.org>
- *
- * Device Tree Source (overlay) that describes GMSL camera connected to
- * Fakra connectors for the Eagle V3M and Condor V3H (and compatible) boards.
- *
- * The following cameras are currently supported: RDACM20 and RDACM21.
- *
- * The board .dts file that include this has to select which cameras are in use
- * by specifying the camera model with:
- *
- * #define GMSL_CAMERA_RDACM20
- * or
- * #define GMSL_CAMERA_RDACM21
- *
- * And which cameras are connected to the board by defining:
- * for GMSL channel 0:
- *        #define GMSL_CAMERA_0
- *        #define GMSL_CAMERA_1
- *        #define GMSL_CAMERA_2
- *        #define GMSL_CAMERA_3
- *
- * for GMSL channel 1:
- *        #define GMSL_CAMERA_4
- *        #define GMSL_CAMERA_5
- *        #define GMSL_CAMERA_6
- *        #define GMSL_CAMERA_7
- */
-
-#include <dt-bindings/gpio/gpio.h>
-
-/* Validate the board file settings. */
-#if !defined(GMSL_CAMERA_RDACM20) && !defined(GMSL_CAMERA_RDACM21)
-#error "Camera model should be defined by the board file"
-#endif
-
-#if defined(GMSL_CAMERA_RDACM20) && defined(GMSL_CAMERA_RDACM21)
-#error "A single camera model should be selected"
-#endif
-
-#if !defined(GMSL_CAMERA_0) && !defined(GMSL_CAMERA_1) && \
-    !defined(GMSL_CAMERA_2) && !defined(GMSL_CAMERA_3) && \
-    !defined(GMSL_CAMERA_4) && !defined(GMSL_CAMERA_5) && \
-    !defined(GMSL_CAMERA_6) && !defined(GMSL_CAMERA_7)
-#error "At least one camera should be selected"
-#endif
-
-/* Deduce from the enabled cameras which GMSL channels are active. */
-#if defined(GMSL_CAMERA_0) || defined(GMSL_CAMERA_1) || \
-    defined(GMSL_CAMERA_2) || defined(GMSL_CAMERA_3)
-#define GMSL_0
-#endif
-
-#if defined(GMSL_CAMERA_4) || defined(GMSL_CAMERA_5) || \
-    defined(GMSL_CAMERA_6) || defined(GMSL_CAMERA_7)
-#define GMSL_1
-#endif
-
-/* Deduce the camera model compatible string. */
-#if defined(GMSL_CAMERA_RDACM20)
-#define GMSL_CAMERA_MODEL "imi,rdacm20"
-#elif defined(GMSL_CAMERA_RDACM21)
-#define GMSL_CAMERA_MODEL "imi,rdacm21"
-#endif
-
-#ifdef GMSL_0
-&vin0 {
-       status = "okay";
-};
-
-&vin1 {
-       status = "okay";
-};
-
-&vin2 {
-       status = "okay";
-};
-
-&vin3 {
-       status = "okay";
-};
-
-&gmsl0 {
-       status = "okay";
-
-#if defined(GMSL_CAMERA_RDACM21)
-       maxim,reverse-channel-microvolt = <100000>;
-#endif
-
-       ports {
-#ifdef GMSL_CAMERA_0
-               port@0 {
-                       max9286_in0: endpoint {
-                               remote-endpoint = <&fakra_con0>;
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_1
-               port@1 {
-                       max9286_in1: endpoint {
-                               remote-endpoint = <&fakra_con1>;
-                       };
-
-               };
-#endif
-
-#ifdef GMSL_CAMERA_2
-               port@2 {
-                       max9286_in2: endpoint {
-                               remote-endpoint = <&fakra_con2>;
-                       };
-
-               };
-#endif
-
-#ifdef GMSL_CAMERA_3
-               port@3 {
-                       max9286_in3: endpoint {
-                               remote-endpoint = <&fakra_con3>;
-                       };
-
-               };
-#endif
-       };
-
-       i2c-mux {
-#ifdef GMSL_CAMERA_0
-               i2c@0 {
-                       status = "okay";
-
-                       camera@51 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x51>, <0x61>;
-
-                               port {
-                                       fakra_con0: endpoint {
-                                               remote-endpoint = <&max9286_in0>;
-                                       };
-                               };
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_1
-               i2c@1 {
-                       status = "okay";
-
-                       camera@52 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x52>, <0x62>;
-
-                               port {
-                                       fakra_con1: endpoint {
-                                               remote-endpoint = <&max9286_in1>;
-                                       };
-                               };
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_2
-               i2c@2 {
-                       status = "okay";
-
-                       camera@53 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x53>, <0x63>;
-
-                               port {
-                                       fakra_con2: endpoint {
-                                               remote-endpoint = <&max9286_in2>;
-                                       };
-                               };
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_3
-               i2c@3 {
-                       status = "okay";
-
-                       camera@54 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x54>, <0x64>;
-
-                               port {
-                                       fakra_con3: endpoint {
-                                               remote-endpoint = <&max9286_in3>;
-                                       };
-                               };
-                       };
-               };
-#endif
-       };
-};
-#endif /* ifdef GMSL_0 */
-
-#ifdef GMSL_1
-&vin4 {
-       status = "okay";
-};
-
-&vin5 {
-       status = "okay";
-};
-
-&vin6 {
-       status = "okay";
-};
-
-&vin7 {
-       status = "okay";
-};
-
-&gmsl1 {
-       status = "okay";
-
-#if defined(GMSL_CAMERA_RDACM21)
-       maxim,reverse-channel-microvolt = <100000>;
-#endif
-
-       ports {
-#ifdef GMSL_CAMERA_4
-               port@0 {
-                       max9286_in4: endpoint {
-                               remote-endpoint = <&fakra_con4>;
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_5
-               port@1 {
-                       max9286_in5: endpoint {
-                               remote-endpoint = <&fakra_con5>;
-                       };
-
-               };
-#endif
-
-#ifdef GMSL_CAMERA_6
-               port@2 {
-                       max9286_in6: endpoint {
-                               remote-endpoint = <&fakra_con6>;
-                       };
-
-               };
-#endif
-
-#ifdef GMSL_CAMERA_7
-               port@3 {
-                       max9286_in7: endpoint {
-                               remote-endpoint = <&fakra_con7>;
-                       };
-
-               };
-#endif
-       };
-
-       i2c-mux {
-#ifdef GMSL_CAMERA_4
-               i2c@0 {
-                       status = "okay";
-
-                       camera@55 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x55>, <0x65>;
-
-                               port {
-                                       fakra_con4: endpoint {
-                                               remote-endpoint = <&max9286_in4>;
-                                       };
-                               };
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_5
-               i2c@1 {
-                       status = "okay";
-
-                       camera@56 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x56>, <0x66>;
-
-                               port {
-                                       fakra_con5: endpoint {
-                                               remote-endpoint = <&max9286_in5>;
-                                       };
-                               };
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_6
-               i2c@2 {
-                       status = "okay";
-
-                       camera@57 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x57>, <0x67>;
-
-                               port {
-                                       fakra_con6: endpoint {
-                                               remote-endpoint = <&max9286_in6>;
-                                       };
-                               };
-                       };
-               };
-#endif
-
-#ifdef GMSL_CAMERA_7
-               i2c@3 {
-                       status = "okay";
-
-                       camera@58 {
-                               compatible = GMSL_CAMERA_MODEL;
-                               reg = <0x58>, <0x68>;
-
-                               port {
-                                       fakra_con7: endpoint {
-                                               remote-endpoint = <&max9286_in7>;
-                                       };
-                               };
-                       };
-               };
-#endif
-       };
-};
-#endif /* ifdef GMSL_1 */
index deb69c27277566d264bc83c68b7893aa94bf6ec6..8bfc66b8ef8651bf4c23f825ac17b71bc18e5d48 100644 (file)
@@ -50,7 +50,7 @@
        pinctrl-names = "default";
        status = "okay";
 
-       cs2000: clk_multiplier@4f {
+       cs2000: clk-multiplier@4f {
                #clock-cells = <0>;
                compatible = "cirrus,cs2000-cp";
                reg = <0x4f>;
index f0729a482cefa4ce9091f8397bbac79f21f3a59f..36675f5bcdeaff5c04ce060bd3b443969a0f9ff9 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index c9857ea944edfdffc6bbd7f6ccbab46431bf715a..ceef0104f75e81ad95e3b19da7b0ed719f0c1a1e 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index 52920a6bf592e2820528d00fb0d784badc48e51f..9df5f1a424004d465f074fa5aaba0f7ceed18a1e 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index 9ad700bde4ba66ab4ecb7e545345bf877b511a21..607f62a448d89206f933157aaecbcdd9eaa5d5a4 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index e03b1f7cbfd6f2d6273de58a21f7e99b0779d4f3..e64c7b1aebc4732418ae346d29907d118f4898f2 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index 31b11bdab69b9e9b8cf323602aefb8451fda3dd8..89f6c052c5e06e31e2f58cdcac585a9f49abe6b3 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index 4e730144e5fd84d36a2e449e552a73d97a2e42c1..425561e658caf9caa4d6a2b5226cc51d64a15069 100644 (file)
                                        dma-names = "rx", "tx";
                                };
                                ssiu04: ssiu-4 {
-                                       dmas = <&audma0 0x3F>, <&audma1 0x40>;
+                                       dmas = <&audma0 0x3f>, <&audma1 0x40>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu05: ssiu-5 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu06: ssiu-6 {
-                                       dmas = <&audma0 0x4F>, <&audma1 0x50>;
+                                       dmas = <&audma0 0x4f>, <&audma1 0x50>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu07: ssiu-7 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu11: ssiu-9 {
-                                       dmas = <&audma0 0x4B>, <&audma1 0x4C>;
+                                       dmas = <&audma0 0x4b>, <&audma1 0x4c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu12: ssiu-10 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu13: ssiu-11 {
-                                       dmas = <&audma0 0x59>, <&audma1 0x5A>;
+                                       dmas = <&audma0 0x59>, <&audma1 0x5a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu14: ssiu-12 {
-                                       dmas = <&audma0 0x5F>, <&audma1 0x60>;
+                                       dmas = <&audma0 0x5f>, <&audma1 0x60>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu15: ssiu-13 {
-                                       dmas = <&audma0 0xC3>, <&audma1 0xC4>;
+                                       dmas = <&audma0 0xc3>, <&audma1 0xc4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu16: ssiu-14 {
-                                       dmas = <&audma0 0xC7>, <&audma1 0xC8>;
+                                       dmas = <&audma0 0xc7>, <&audma1 0xc8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu17: ssiu-15 {
-                                       dmas = <&audma0 0xCB>, <&audma1 0xCC>;
+                                       dmas = <&audma0 0xcb>, <&audma1 0xcc>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu20: ssiu-16 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu22: ssiu-18 {
-                                       dmas = <&audma0 0x6B>, <&audma1 0x6C>;
+                                       dmas = <&audma0 0x6b>, <&audma1 0x6c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu23: ssiu-19 {
-                                       dmas = <&audma0 0x6D>, <&audma1 0x6E>;
+                                       dmas = <&audma0 0x6d>, <&audma1 0x6e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu24: ssiu-20 {
-                                       dmas = <&audma0 0xCF>, <&audma1 0xCE>;
+                                       dmas = <&audma0 0xcf>, <&audma1 0xce>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu25: ssiu-21 {
-                                       dmas = <&audma0 0xEB>, <&audma1 0xEC>;
+                                       dmas = <&audma0 0xeb>, <&audma1 0xec>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu26: ssiu-22 {
-                                       dmas = <&audma0 0xED>, <&audma1 0xEE>;
+                                       dmas = <&audma0 0xed>, <&audma1 0xee>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu27: ssiu-23 {
-                                       dmas = <&audma0 0xEF>, <&audma1 0xF0>;
+                                       dmas = <&audma0 0xef>, <&audma1 0xf0>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu30: ssiu-24 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu35: ssiu-29 {
-                                       dmas = <&audma0 0x29>, <&audma1 0x2A>;
+                                       dmas = <&audma0 0x29>, <&audma1 0x2a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu36: ssiu-30 {
-                                       dmas = <&audma0 0x2B>, <&audma1 0x2C>;
+                                       dmas = <&audma0 0x2b>, <&audma1 0x2c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu37: ssiu-31 {
-                                       dmas = <&audma0 0x2D>, <&audma1 0x2E>;
+                                       dmas = <&audma0 0x2d>, <&audma1 0x2e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu40: ssiu-32 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu42: ssiu-34 {
-                                       dmas = <&audma0 0x19>, <&audma1 0x1A>;
+                                       dmas = <&audma0 0x19>, <&audma1 0x1a>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu43: ssiu-35 {
-                                       dmas = <&audma0 0x1B>, <&audma1 0x1C>;
+                                       dmas = <&audma0 0x1b>, <&audma1 0x1c>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu44: ssiu-36 {
-                                       dmas = <&audma0 0x1D>, <&audma1 0x1E>;
+                                       dmas = <&audma0 0x1d>, <&audma1 0x1e>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu45: ssiu-37 {
-                                       dmas = <&audma0 0x1F>, <&audma1 0x20>;
+                                       dmas = <&audma0 0x1f>, <&audma1 0x20>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu46: ssiu-38 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu91: ssiu-45 {
-                                       dmas = <&audma0 0x7F>, <&audma1 0x80>;
+                                       dmas = <&audma0 0x7f>, <&audma1 0x80>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu92: ssiu-46 {
                                        dma-names = "rx", "tx";
                                };
                                ssiu94: ssiu-48 {
-                                       dmas = <&audma0 0xA3>, <&audma1 0xA4>;
+                                       dmas = <&audma0 0xa3>, <&audma1 0xa4>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu95: ssiu-49 {
-                                       dmas = <&audma0 0xA5>, <&audma1 0xA6>;
+                                       dmas = <&audma0 0xa5>, <&audma1 0xa6>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu96: ssiu-50 {
-                                       dmas = <&audma0 0xA7>, <&audma1 0xA8>;
+                                       dmas = <&audma0 0xa7>, <&audma1 0xa8>;
                                        dma-names = "rx", "tx";
                                };
                                ssiu97: ssiu-51 {
-                                       dmas = <&audma0 0xA9>, <&audma1 0xAA>;
+                                       dmas = <&audma0 0xa9>, <&audma1 0xaa>;
                                        dma-names = "rx", "tx";
                                };
                        };
index b7328f9f7d4ba8de30b1624468f4dcabf5bd443e..b26c5a7097771a769d9ca42cd9ab7e519ee3b04c 100644 (file)
                                reg = <0x00040000 0x080000>;
                                read-only;
                        };
-                       cert_header_sa3@c0000 {
+                       cert-header-sa3@c0000 {
                                reg = <0x000c0000 0x080000>;
                                read-only;
                        };
                                reg = <0x00140000 0x040000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
index f18d26360610ea05eae2195c7b07a52ca353f476..343f9610f8924f1af2990e4d36463fc92ccb703e 100644 (file)
                                reg = <0x00040000 0x080000>;
                                read-only;
                        };
-                       cert_header_sa3@c0000 {
+                       cert-header-sa3@c0000 {
                                reg = <0x000c0000 0x080000>;
                                read-only;
                        };
                                reg = <0x00140000 0x040000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
index 1007ee48adc3e20037abc8adef623e383d76785f..1f6676e2795a42d07549af7310e60f61c9b136a6 100644 (file)
                        };
                };
 
+               wwdt0: watchdog@ffc90000 {
+                       compatible = "renesas,r8a77970-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffc90000 0 0x10>;
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77970_CLK_R>,
+                                <&cpg CPG_CORE R8A77970_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
+                       resets = <&cpg 325>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt1: watchdog@ffca0000 {
+                       compatible = "renesas,r8a77970-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffca0000 0 0x10>;
+                       interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77970_CLK_R>,
+                                <&cpg CPG_CORE R8A77970_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
+                       resets = <&cpg 324>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
index 2da63b4daa0ace578e3631719c24b4b16b7e8c72..e3725304fed0be5bffafc8c42dddc63c87922516 100644 (file)
                                reg = <0x00040000 0x080000>;
                                read-only;
                        };
-                       cert_header_sa3@c0000 {
+                       cert-header-sa3@c0000 {
                                reg = <0x000c0000 0x080000>;
                                read-only;
                        };
                                reg = <0x00140000 0x040000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
 &scif_clk {
        clock-frequency = <14745600>;
 };
+
+/* Firmware should reserve it but sadly doesn't */
+&swdt {
+       status = "reserved";
+};
index 8cd7f68d026b6c5e281d8180869befd90f17631c..86b7792d68fac659774d6a4bd496a4e286169660 100644 (file)
                        status = "disabled";
                };
 
+               swdt: watchdog@e6030000 {
+                       compatible = "renesas,r8a77980-wdt", "renesas,rcar-gen3-wdt";
+                       reg = <0 0xe6030000 0 0x0c>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_CORE R8A77980_CLK_OSC>;
+                       power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+                       status = "disabled";
+               };
+
                gpio0: gpio@e6050000 {
                        compatible = "renesas,gpio-r8a77980",
                                     "renesas,rcar-gen3-gpio";
                        };
                };
 
+               wwdt0: watchdog@ffc90000 {
+                       compatible = "renesas,r8a77980-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffc90000 0 0x10>;
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77980_CLK_R>,
+                                <&cpg CPG_CORE R8A77980_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+                       resets = <&cpg 325>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt1: watchdog@ffca0000 {
+                       compatible = "renesas,r8a77980-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffca0000 0 0x10>;
+                       interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77980_CLK_R>,
+                                <&cpg CPG_CORE R8A77980_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+                       resets = <&cpg 324>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt2: watchdog@ffcb0000 {
+                       compatible = "renesas,r8a77980-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffcb0000 0 0x10>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77980_CLK_R>,
+                                <&cpg CPG_CORE R8A77980_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+                       resets = <&cpg 321>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt3: watchdog@ffcc0000 {
+                       compatible = "renesas,r8a77980-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffcc0000 0 0x10>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77980_CLK_R>,
+                                <&cpg CPG_CORE R8A77980_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+                       resets = <&cpg 309>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt4: watchdog@ffcf0000 {
+                       compatible = "renesas,r8a77980-wwdt",
+                                    "renesas,rcar-gen3-wwdt";
+                       reg = <0 0xffcf0000 0 0x10>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A77980_CLK_R>,
+                                <&cpg CPG_CORE R8A77980_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
+                       resets = <&cpg 403>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
index 4b101a6dc49dd30fc075bbd565940c914c722a31..0483a5d0714af7f826417b4951e0e35b6aa43166 100644 (file)
                        };
                };
 
+               wwdt0: watchdog@ffc90000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffc90000 0 0x10>;
+                       interrupts = <GIC_SPI 480 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1200>, <&cpg 1318>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt1: watchdog@ffca0000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffca0000 0 0x10>;
+                       interrupts = <GIC_SPI 482 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 483 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1201>, <&cpg 1319>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt2: watchdog@ffcb0000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcb0000 0 0x10>;
+                       interrupts = <GIC_SPI 484 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 485 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1202>, <&cpg 1320>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt3: watchdog@ffcc0000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcc0000 0 0x10>;
+                       interrupts = <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1203>, <&cpg 1321>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt4: watchdog@ffcf0000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcf0000 0 0x10>;
+                       interrupts = <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1204>, <&cpg 1322>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt5: watchdog@ffef0000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffef0000 0 0x10>;
+                       interrupts = <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1205>, <&cpg 1323>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt6: watchdog@fff10000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff10000 0 0x10>;
+                       interrupts = <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1206>, <&cpg 1324>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt7: watchdog@fff20000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff20000 0 0x10>;
+                       interrupts = <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1207>, <&cpg 1325>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt8: watchdog@fff30000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff30000 0 0x10>;
+                       interrupts = <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1208>, <&cpg 1326>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt9: watchdog@fff40000 {
+                       compatible = "renesas,r8a779a0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff40000 0 0x10>;
+                       interrupts = <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779A0_CLK_R>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CP>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1209>, <&cpg 1327>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
index 0ebf8e5dd2f941770598c55d63d31e7618b6ab6f..cbb161c863ac7b98e117d2a58534297239d7ef88 100644 (file)
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               wwdt0: watchdog@ffc90000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffc90000 0 0x10>;
+                       interrupts = <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1200>, <&cpg 1318>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt1: watchdog@ffca0000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffca0000 0 0x10>;
+                       interrupts = <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1201>, <&cpg 1319>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt2: watchdog@ffcb0000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcb0000 0 0x10>;
+                       interrupts = <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1202>, <&cpg 1320>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt3: watchdog@ffcc0000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcc0000 0 0x10>;
+                       interrupts = <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1203>, <&cpg 1321>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt4: watchdog@ffcf0000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcf0000 0 0x10>;
+                       interrupts = <GIC_SPI 502 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 501 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1204>, <&cpg 1322>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt5: watchdog@ffef0000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffef0000 0 0x10>;
+                       interrupts = <GIC_SPI 504 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 503 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1205>, <&cpg 1323>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt6: watchdog@fff10000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff10000 0 0x10>;
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 505 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1206>, <&cpg 1324>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt7: watchdog@fff20000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff20000 0 0x10>;
+                       interrupts = <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1207>, <&cpg 1325>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt8: watchdog@fff30000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff30000 0 0x10>;
+                       interrupts = <GIC_SPI 510 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1208>, <&cpg 1326>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
+               wwdt9: watchdog@fff40000 {
+                       compatible = "renesas,r8a779f0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff40000 0 0x10>;
+                       interrupts = <GIC_SPI 512 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 511 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779F0_CLK_R>,
+                                <&cpg CPG_CORE R8A779F0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1209>, <&cpg 1327>;
+                       reset-names = "cnt", "bus";
+                       status = "disabled";
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
index ff2bd1908a4519251e468d724fdbcd9d4ca7d6a6..82a7278836e57a14c1225bd1ed83e0442c2c489d 100644 (file)
                        };
                };
 
+               wwdt0: watchdog@ffc90000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffc90000 0 0x10>;
+                       interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1200>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt1: watchdog@ffca0000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffca0000 0 0x10>;
+                       interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1201>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt2: watchdog@ffcb0000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcb0000 0 0x10>;
+                       interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1202>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt3: watchdog@ffcc0000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcc0000 0 0x10>;
+                       interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1203>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt4: watchdog@ffcf0000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcf0000 0 0x10>;
+                       interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1204>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt5: watchdog@ffef0000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffef0000 0 0x10>;
+                       interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1205>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt6: watchdog@fff10000 {
+                       compatible = "renesas,r8a779g0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff10000 0 0x10>;
+                       interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779G0_CLK_R>,
+                                <&cpg CPG_CORE R8A779G0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1206>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
index ff07d984cbf2991dbdd094085016afdd98ae7dac..812b133cf29ed71bd8ea1f61aef87c6405679fde 100644 (file)
                reg = <0x6 0x00000000 0x1 0x00000000>;
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               tfa@40000000 {
+                       reg = <0x0 0x40000000 0x0 0x8000000>;
+                       no-map;
+               };
+       };
+
        /* Page 27 / DSI to Display */
        dp-con {
                compatible = "dp-connector";
index 4dc0e5304f7211d95a249fd5af07f1d9b513fcc1..74bc4c4854ecae8affb46972dd121bf1e082098e 100644 (file)
                        };
                };
 
+               wwdt0: watchdog@ffc90000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffc90000 0 0x10>;
+                       interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1200>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt1: watchdog@ffca0000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffca0000 0 0x10>;
+                       interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1201>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt2: watchdog@ffcb0000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcb0000 0 0x10>;
+                       interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1202>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt3: watchdog@ffcc0000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcc0000 0 0x10>;
+                       interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1203>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt4: watchdog@ffcf0000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffcf0000 0 0x10>;
+                       interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1204>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt5: watchdog@ffef0000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xffef0000 0 0x10>;
+                       interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1205>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
+               wwdt6: watchdog@fff10000 {
+                       compatible = "renesas,r8a779h0-wwdt",
+                                    "renesas,rcar-gen4-wwdt";
+                       reg = <0 0xfff10000 0 0x10>;
+                       interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pretimeout", "error";
+                       clocks = <&cpg CPG_CORE R8A779H0_CLK_R>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCRT>;
+                       clock-names = "cnt", "bus";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 1206>;
+                       reset-names = "cnt";
+                       status = "disabled";
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
diff --git a/src/arm64/renesas/r8a779m0.dtsi b/src/arm64/renesas/r8a779m0.dtsi
deleted file mode 100644 (file)
index 3897836..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car H3e (R8A779M0) SoC
- *
- * Copyright (C) 2021 Glider bv
- */
-
-#include "r8a77951.dtsi"
-
-/ {
-       compatible = "renesas,r8a779m0", "renesas,r8a7795";
-};
diff --git a/src/arm64/renesas/r8a779m2.dtsi b/src/arm64/renesas/r8a779m2.dtsi
deleted file mode 100644 (file)
index bced127..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car M3e (R8A779M2) SoC
- *
- * Copyright (C) 2021 Glider bv
- */
-
-#include "r8a77961.dtsi"
-
-/ {
-       compatible = "renesas,r8a779m2", "renesas,r8a77961";
-};
diff --git a/src/arm64/renesas/r8a779m4.dtsi b/src/arm64/renesas/r8a779m4.dtsi
deleted file mode 100644 (file)
index ae84860..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car M3Ne (R8A779M4) SoC
- *
- * Copyright (C) 2021 Glider bv
- */
-
-#include "r8a77965.dtsi"
-
-/ {
-       compatible = "renesas,r8a779m4", "renesas,r8a77965";
-};
diff --git a/src/arm64/renesas/r8a779m6.dtsi b/src/arm64/renesas/r8a779m6.dtsi
deleted file mode 100644 (file)
index 94d6a6c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car E3e (R8A779M6) SoC
- *
- * Copyright (C) 2021 Glider bv
- */
-
-#include "r8a77990.dtsi"
-
-/ {
-       compatible = "renesas,r8a779m6", "renesas,r8a77990";
-};
diff --git a/src/arm64/renesas/r8a779m7.dtsi b/src/arm64/renesas/r8a779m7.dtsi
deleted file mode 100644 (file)
index 0580fa6..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car D3e (R8A779M7) SoC
- *
- * Copyright (C) 2021 Glider bv
- */
-
-#include "r8a77995.dtsi"
-
-/ {
-       compatible = "renesas,r8a779m7", "renesas,r8a77995";
-};
diff --git a/src/arm64/renesas/r8a779m8.dtsi b/src/arm64/renesas/r8a779m8.dtsi
deleted file mode 100644 (file)
index dfccc08..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car H3Ne (R8A779M8) SoC
- *
- * Copyright (C) 2021 Glider bv
- */
-
-#include "r8a77951.dtsi"
-
-/ {
-       compatible = "renesas,r8a779m8", "renesas,r8a7795";
-};
-
-&cluster0_opp {
-       /delete-node/ opp-1600000000;
-       /delete-node/ opp-1700000000;
-};
diff --git a/src/arm64/renesas/r8a779mb.dtsi b/src/arm64/renesas/r8a779mb.dtsi
deleted file mode 100644 (file)
index 181b737..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Device Tree Source for the R-Car H3Ne-1.7G (R8A779MB) SoC
- *
- * Copyright (C) 2022 Glider bv
- */
-
-#include "r8a77951.dtsi"
-
-/ {
-       compatible = "renesas,r8a779mb", "renesas,r8a7795";
-};
index 4c97298fa76348fc6eff0047c40370f513827904..3e1c98903cea08952a7bd00192e6afeacccb81a1 100644 (file)
                        compatible = "renesas,scif-r8a78000",
                                     "renesas,rcar-gen5-scif", "renesas,scif";
                        reg = <0 0xc0700000 0 0x40>;
-                       interrupts = <GIC_SPI 4074 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 10 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,scif-r8a78000",
                                     "renesas,rcar-gen5-scif", "renesas,scif";
                        reg = <0 0xc0704000 0 0x40>;
-                       interrupts = <GIC_SPI 4075 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 11 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,scif-r8a78000",
                                     "renesas,rcar-gen5-scif", "renesas,scif";
                        reg = <0 0xc0708000 0 0x40>;
-                       interrupts = <GIC_SPI 4076 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 12 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,scif-r8a78000",
                                     "renesas,rcar-gen5-scif", "renesas,scif";
                        reg = <0 0xc070c000 0 0x40>;
-                       interrupts = <GIC_SPI 4077 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 13 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd16>, <&dummy_clk_sgasyncd16>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,hscif-r8a78000",
                                     "renesas,rcar-gen5-hscif", "renesas,hscif";
                        reg = <0 0xc0710000 0 0x60>;
-                       interrupts = <GIC_SPI 4078 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 14 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,hscif-r8a78000",
                                     "renesas,rcar-gen5-hscif", "renesas,hscif";
                        reg = <0 0xc0714000 0 0x60>;
-                       interrupts = <GIC_SPI 4079 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 15 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,hscif-r8a78000",
                                     "renesas,rcar-gen5-hscif", "renesas,hscif";
                        reg = <0 0xc0718000 0 0x60>;
-                       interrupts = <GIC_SPI 4080 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 16 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
                        compatible = "renesas,hscif-r8a78000",
                                     "renesas,rcar-gen5-hscif", "renesas,hscif";
                        reg = <0 0xc071c000 0 0x60>;
-                       interrupts = <GIC_SPI 4081 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_ESPI 17 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&dummy_clk_sgasyncd4>, <&dummy_clk_sgasyncd4>, <&scif_clk>;
                        clock-names = "fck", "brg_int", "scif_clk";
                        status = "disabled";
index bd52d60bafb9ce70ffb50e7f5350c176e6b7259e..29273da8199519d71429c2d391b9d2cf39162c76 100644 (file)
                wdt1: watchdog@12800c00 {
                        compatible = "renesas,r9a07g044-wdt",
                                     "renesas,rzg2l-wdt";
-                       reg = <0 0x12800C00 0 0x400>;
+                       reg = <0 0x12800c00 0 0x400>;
                        clocks = <&cpg CPG_MOD R9A07G044_WDT1_PCLK>,
                                 <&cpg CPG_MOD R9A07G044_WDT1_CLK>;
                        clock-names = "pclk", "oscclk";
diff --git a/src/arm64/renesas/r9a07g044c1.dtsi b/src/arm64/renesas/r9a07g044c1.dtsi
deleted file mode 100644 (file)
index 56a979e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-/*
- * Device Tree Source for the RZ/G2LC R9A07G044C1 SoC specific parts
- *
- * Copyright (C) 2021 Renesas Electronics Corp.
- */
-
-/dts-v1/;
-#include "r9a07g044.dtsi"
-
-/ {
-       compatible = "renesas,r9a07g044c1", "renesas,r9a07g044";
-
-       cpus {
-               /delete-node/ cpu-map;
-               /delete-node/ cpu@100;
-       };
-};
-
-&soc {
-       /delete-node/ ssi@1004a800;
-       /delete-node/ serial@1004c800;
-       /delete-node/ adc@10059000;
-       /delete-node/ ethernet@11c30000;
-};
diff --git a/src/arm64/renesas/r9a07g044l1.dtsi b/src/arm64/renesas/r9a07g044l1.dtsi
deleted file mode 100644 (file)
index 9cf27ca..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-/*
- * Device Tree Source for the RZ/G2L R9A07G044L1 SoC specific parts
- *
- * Copyright (C) 2021 Renesas Electronics Corp.
- */
-
-/dts-v1/;
-#include "r9a07g044.dtsi"
-
-/ {
-       compatible = "renesas,r9a07g044l1", "renesas,r9a07g044";
-
-       cpus {
-               /delete-node/ cpu-map;
-               /delete-node/ cpu@100;
-       };
-};
index 4e0256d3201d6f4a9e1b5a4245f15029f00914df..0dee48c4f1e44a683d97970ad33eddc3733ce63b 100644 (file)
                wdt1: watchdog@12800c00 {
                        compatible = "renesas,r9a07g054-wdt",
                                     "renesas,rzg2l-wdt";
-                       reg = <0 0x12800C00 0 0x400>;
+                       reg = <0 0x12800c00 0 0x400>;
                        clocks = <&cpg CPG_MOD R9A07G054_WDT1_PCLK>,
                                 <&cpg CPG_MOD R9A07G054_WDT1_CLK>;
                        clock-names = "pclk", "oscclk";
diff --git a/src/arm64/renesas/r9a07g054l1.dtsi b/src/arm64/renesas/r9a07g054l1.dtsi
deleted file mode 100644 (file)
index d85a6ac..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-/*
- * Device Tree Source for the RZ/V2L R9A07G054L1 SoC specific parts
- *
- * Copyright (C) 2021 Renesas Electronics Corp.
- */
-
-/dts-v1/;
-#include "r9a07g054.dtsi"
-
-/ {
-       compatible = "renesas,r9a07g054l1", "renesas,r9a07g054";
-
-       cpus {
-               /delete-node/ cpu-map;
-               /delete-node/ cpu@100;
-       };
-};
index 876de634908ef63a93a8e8d887e50ac240e9fe8f..997e6cf0bb824659809ff3d724fb31812ad94ac4 100644 (file)
                        status = "disabled";
                };
 
+               pcie: pcie@11e40000 {
+                       compatible = "renesas,r9a08g045-pcie";
+                       reg = <0 0x11e40000 0 0x10000>;
+                       ranges = <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>;
+                       /* Map all possible DRAM ranges (4 GB). */
+                       dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 1 0x00000000>;
+                       bus-range = <0x0 0xff>;
+                       interrupts = <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 410 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "serr", "serr_cor", "serr_nonfatal",
+                                         "serr_fatal", "axi_err", "inta",
+                                         "intb", "intc", "intd", "msi",
+                                         "link_bandwidth", "pm_pme", "dma",
+                                         "pcie_evt", "msg", "all";
+                       #interrupt-cells = <1>;
+                       interrupt-controller;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &pcie 0 0 0 0>, /* INTA */
+                                       <0 0 0 2 &pcie 0 0 0 1>, /* INTB */
+                                       <0 0 0 3 &pcie 0 0 0 2>, /* INTC */
+                                       <0 0 0 4 &pcie 0 0 0 3>; /* INTD */
+                       clocks = <&cpg CPG_MOD R9A08G045_PCI_ACLK>,
+                                <&cpg CPG_MOD R9A08G045_PCI_CLKL1PM>;
+                       clock-names = "aclk", "pm";
+                       resets = <&cpg R9A08G045_PCI_ARESETN>,
+                                <&cpg R9A08G045_PCI_RST_B>,
+                                <&cpg R9A08G045_PCI_RST_GP_B>,
+                                <&cpg R9A08G045_PCI_RST_PS_B>,
+                                <&cpg R9A08G045_PCI_RST_RSM_B>,
+                                <&cpg R9A08G045_PCI_RST_CFG_B>,
+                                <&cpg R9A08G045_PCI_RST_LOAD_B>;
+                       reset-names = "aresetn", "rst_b", "rst_gp_b", "rst_ps_b",
+                                     "rst_rsm_b", "rst_cfg_b", "rst_load_b";
+                       power-domains = <&cpg>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       renesas,sysc = <&sysc>;
+                       status = "disabled";
+
+                       pcie_port0: pcie@0,0 {
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               ranges;
+                               device_type = "pci";
+                               vendor-id = <0x1912>;
+                               device-id = <0x0033>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                       };
+               };
+
                gic: interrupt-controller@12400000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
index 7a469de3bb62aec92e6b9cfdd27f624b179d9760..cbb48ff5028fcc0aac6ba9b118571558d1e5ce9a 100644 (file)
                        };
                };
 
+               rsci0: serial@12800c00 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12800c00 0 0x400>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 116 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x5d>, <&cpg CPG_MOD 0x5e>,
+                                <&cpg CPG_MOD 0x61>, <&cpg CPG_MOD 0x60>,
+                                <&cpg CPG_MOD 0x5f>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x81>, <&cpg 0x82>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci1: serial@12801000 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801000 0 0x400>;
+                       interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x62>, <&cpg CPG_MOD 0x63>,
+                                <&cpg CPG_MOD 0x66>, <&cpg CPG_MOD 0x65>,
+                                <&cpg CPG_MOD 0x64>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x83>, <&cpg 0x84>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci2: serial@12801400 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801400 0 0x400>;
+                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x67>, <&cpg CPG_MOD 0x68>,
+                                <&cpg CPG_MOD 0x6b>, <&cpg CPG_MOD 0x6a>,
+                                <&cpg CPG_MOD 0x69>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x85>, <&cpg 0x86>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci3: serial@12801800 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801800 0 0x400>;
+                       interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x6c>, <&cpg CPG_MOD 0x6d>,
+                                <&cpg CPG_MOD 0x70>, <&cpg CPG_MOD 0x6f>,
+                                <&cpg CPG_MOD 0x6e>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x87>, <&cpg 0x88>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci4: serial@12801c00 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801c00 0 0x400>;
+                       interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x71>, <&cpg CPG_MOD 0x72>,
+                                <&cpg CPG_MOD 0x75>, <&cpg CPG_MOD 0x74>,
+                                <&cpg CPG_MOD 0x73>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x89>, <&cpg 0x8a>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci5: serial@12802000 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802000 0 0x400>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x76>, <&cpg CPG_MOD 0x77>,
+                                <&cpg CPG_MOD 0x7a>, <&cpg CPG_MOD 0x79>,
+                                <&cpg CPG_MOD 0x78>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8b>, <&cpg 0x8c>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci6: serial@12802400 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802400 0 0x400>;
+                       interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x7b>, <&cpg CPG_MOD 0x7c>,
+                                <&cpg CPG_MOD 0x7f>, <&cpg CPG_MOD 0x7e>,
+                                <&cpg CPG_MOD 0x7d>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8d>, <&cpg 0x8e>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci7: serial@12802800 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802800 0 0x400>;
+                       interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x80>, <&cpg CPG_MOD 0x81>,
+                                <&cpg CPG_MOD 0x84>, <&cpg CPG_MOD 0x83>,
+                                <&cpg CPG_MOD 0x82>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8f>, <&cpg 0x90>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci8: serial@12802c00 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802c00 0 0x400>;
+                       interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x85>, <&cpg CPG_MOD 0x86>,
+                                <&cpg CPG_MOD 0x89>, <&cpg CPG_MOD 0x88>,
+                                <&cpg CPG_MOD 0x87>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x91>, <&cpg 0x92>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci9: serial@12803000 {
+                       compatible = "renesas,r9a09g047-rsci";
+                       reg = <0 0x12803000 0 0x400>;
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x8a>, <&cpg CPG_MOD 0x8b>,
+                                <&cpg CPG_MOD 0x8e>, <&cpg CPG_MOD 0x8d>,
+                                <&cpg CPG_MOD 0x8c>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x93>, <&cpg 0x94>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
                wdt1: watchdog@14400000 {
                        compatible = "renesas,r9a09g047-wdt", "renesas,r9a09g057-wdt";
                        reg = <0 0x14400000 0 0x400>;
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
                };
 
+               xhci: usb@15850000 {
+                       compatible = "renesas,r9a09g047-xhci";
+                       reg = <0 0x15850000 0 0x10000>;
+                       interrupts = <GIC_SPI 759 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 758 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 757 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 756 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 755 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "all", "smi", "hse", "pme", "xhc";
+                       clocks = <&cpg CPG_MOD 0xaf>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xaa>;
+                       phys = <&usb3_phy>, <&usb3_phy>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       status = "disabled";
+               };
+
+               usb3_phy: usb-phy@15870000 {
+                       compatible = "renesas,r9a09g047-usb3-phy";
+                       reg = <0 0x15870000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD 0xb0>,
+                                <&cpg CPG_CORE R9A09G047_USB3_0_CLKCORE>,
+                                <&cpg CPG_CORE R9A09G047_USB3_0_REF_ALT_CLK_P>;
+                       clock-names = "pclk", "core", "ref_alt_clk_p";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xaa>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
                sdhi0: mmc@15c00000  {
                        compatible = "renesas,sdhi-r9a09g047", "renesas,sdhi-r9a09g057";
                        reg = <0x0 0x15c00000 0 0x10000>;
diff --git a/src/arm64/renesas/r9a09g047e37.dtsi b/src/arm64/renesas/r9a09g047e37.dtsi
deleted file mode 100644 (file)
index e50d915..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-/*
- * Device Tree Source for the RZ/G3E R9A09G047E37 SoC specific parts
- *
- * Copyright (C) 2024 Renesas Electronics Corp.
- */
-
-/dts-v1/;
-#include "r9a09g047.dtsi"
-
-/ {
-       compatible = "renesas,r9a09g047e37", "renesas,r9a09g047";
-
-       cpus {
-               /delete-node/ cpu@200;
-               /delete-node/ cpu@300;
-       };
-};
index 08e814c03fa855cc1028c8d2a7aa790458a0a6b9..696903dc7a636e49a3f91fec9a85bb93db6916cc 100644 (file)
@@ -8,11 +8,12 @@
 /dts-v1/;
 
 /* Switch selection settings */
-#define SW_LCD_EN              0
 #define SW_GPIO8_CAN0_STB      0
 #define SW_GPIO9_CAN1_STB      0
 #define SW_LCD_EN              0
 #define SW_PDM_EN              0
+#define SW_SER0_PMOD           1
+#define SW_SER2_EN             1
 #define SW_SD0_DEV_SEL         0
 #define SW_SDIO_M2E            0
 
        compatible = "renesas,smarc2-evk", "renesas,rzg3e-smarcm",
                     "renesas,r9a09g047e57", "renesas,r9a09g047";
 
+       aliases {
+               i2c0 = &i2c0;
+               serial0 = &rsci4;
+               serial1 = &rsci9;
+               serial2 = &rsci2;
+               serial3 = &scif0;
+               mmc1 = &sdhi1;
+       };
+
        vqmmc_sd1_pvdd: regulator-vqmmc-sd1-pvdd {
                compatible = "regulator-gpio";
                regulator-name = "SD1_PVDD";
                input-schmitt-enable;
        };
 
+       rsci2_pins: rsci2 {
+               pinmux = <RZG3E_PORT_PINMUX(1, 0, 1)>, /* RXD2 */
+                        <RZG3E_PORT_PINMUX(1, 1, 1)>, /* TXD2 */
+                        <RZG3E_PORT_PINMUX(1, 2, 6)>, /* CTS2N */
+                        <RZG3E_PORT_PINMUX(1, 3, 1)>; /* RTS2N */
+               bias-pull-up;
+       };
+
+       rsci4_pins: rsci4 {
+               pinmux = <RZG3E_PORT_PINMUX(7, 6, 5)>, /* RXD4 */
+                        <RZG3E_PORT_PINMUX(7, 7, 5)>, /* TXD4 */
+                        <RZG3E_PORT_PINMUX(8, 0, 6)>, /* CTS4N */
+                        <RZG3E_PORT_PINMUX(8, 1, 5)>; /* RTS4N */
+               bias-pull-up;
+       };
+
+       rsci9_pins: rsci9 {
+               pinmux = <RZG3E_PORT_PINMUX(8, 2, 5)>, /* RXD9 */
+                        <RZG3E_PORT_PINMUX(8, 3, 5)>; /* TXD9 */
+               bias-pull-up;
+       };
+
        scif_pins: scif {
                pins = "SCIF_TXD", "SCIF_RXD";
                renesas,output-impedance = <1>;
                                 <RZG3E_PORT_PINMUX(G, 5, 1)>; /* SD1DAT3 */
                };
        };
+
+       usb3_pins: usb3 {
+               pinmux = <RZG3E_PORT_PINMUX(4, 1, 12)>, /* USB30_VBUSEN */
+                        <RZG3E_PORT_PINMUX(4, 0, 12)>; /* USB30_OVRCURN */
+       };
 };
 
+#if SW_SER0_PMOD && SW_SER2_EN
+&rsci2 {
+       pinctrl-0 = <&rsci2_pins>;
+       pinctrl-names = "default";
+
+       uart-has-rtscts;
+
+       status = "okay";
+};
+#endif
+
+#if (!SW_LCD_EN) && (SW_SER0_PMOD)
+&rsci4 {
+       pinctrl-0 = <&rsci4_pins>;
+       pinctrl-names = "default";
+
+       uart-has-rtscts;
+
+       status = "okay";
+};
+#endif
+
+#if (!SW_LCD_EN)
+&rsci9 {
+       pinctrl-0 = <&rsci9_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+#endif
+
 &scif0 {
        pinctrl-0 = <&scif_pins>;
        pinctrl-names = "default";
        vmmc-supply = <&reg_3p3v>;
        vqmmc-supply = <&vqmmc_sd1_pvdd>;
 };
+
+&xhci {
+       pinctrl-0 = <&usb3_pins>;
+       pinctrl-names = "default";
+};
index 8781c2fa7313570985306ea908ed180a2bbc5a41..9fb15ca24984f71600098f85e4bbcd7fac0f0c23 100644 (file)
@@ -83,6 +83,7 @@
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
                        clocks = <&cpg CPG_CORE R9A09G056_CA55_0_CORE_CLK0>;
+                       #cooling-cells = <2>;
                        operating-points-v2 = <&cluster0_opp>;
                };
 
@@ -93,6 +94,7 @@
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
                        clocks = <&cpg CPG_CORE R9A09G056_CA55_0_CORE_CLK1>;
+                       #cooling-cells = <2>;
                        operating-points-v2 = <&cluster0_opp>;
                };
 
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
                        clocks = <&cpg CPG_CORE R9A09G056_CA55_0_CORE_CLK2>;
+                       #cooling-cells = <2>;
                        operating-points-v2 = <&cluster0_opp>;
                };
 
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
                        clocks = <&cpg CPG_CORE R9A09G056_CA55_0_CORE_CLK3>;
+                       #cooling-cells = <2>;
                        operating-points-v2 = <&cluster0_opp>;
                };
 
                #size-cells = <2>;
                ranges;
 
+               icu: interrupt-controller@10400000 {
+                       compatible = "renesas,r9a09g056-icu";
+                       reg = <0 0x10400000 0 0x10000>;
+                       #interrupt-cells = <2>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       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 9 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 428 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 262 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 263 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 265 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 266 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>;
+                       interrupt-names = "nmi",
+                                         "port_irq0", "port_irq1", "port_irq2",
+                                         "port_irq3", "port_irq4", "port_irq5",
+                                         "port_irq6", "port_irq7", "port_irq8",
+                                         "port_irq9", "port_irq10", "port_irq11",
+                                         "port_irq12", "port_irq13", "port_irq14",
+                                         "port_irq15",
+                                         "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",
+                                         "int-ca55-0", "int-ca55-1",
+                                         "int-ca55-2", "int-ca55-3",
+                                         "icu-error-ca55",
+                                         "gpt-u0-gtciada", "gpt-u0-gtciadb",
+                                         "gpt-u1-gtciada", "gpt-u1-gtciadb";
+                       clocks = <&cpg CPG_MOD 0x5>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x36>;
+               };
+
                pinctrl: pinctrl@10410000 {
                        compatible = "renesas,r9a09g056-pinctrl";
                        reg = <0 0x10410000 0 0x10000>;
                        clocks = <&cpg CPG_CORE R9A09G056_IOTOP_0_SHCLK>;
                        gpio-controller;
                        #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&icu>;
                        gpio-ranges = <&pinctrl 0 0 96>;
                        power-domains = <&cpg>;
                        resets = <&cpg 0xa5>, <&cpg 0xa6>;
                        resets = <&cpg 0x30>;
                };
 
+               tsu0: thermal@11000000 {
+                       compatible = "renesas,r9a09g056-tsu", "renesas,r9a09g047-tsu";
+                       reg = <0 0x11000000 0 0x1000>;
+                       interrupts = <GIC_SPI 248 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "adi", "adcmpi";
+                       clocks = <&cpg CPG_MOD 0x109>;
+                       resets = <&cpg 0xf7>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <0>;
+                       renesas,tsu-trim = <&sys 0x320>;
+               };
+
+               tsu1: thermal@14002000 {
+                       compatible = "renesas,r9a09g056-tsu", "renesas,r9a09g047-tsu";
+                       reg = <0 0x14002000 0 0x1000>;
+                       interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "adi", "adcmpi";
+                       clocks = <&cpg CPG_MOD 0x10a>;
+                       resets = <&cpg 0xf8>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <0>;
+                       renesas,tsu-trim = <&sys 0x330>;
+               };
+
                xspi: spi@11030000 {
                        compatible = "renesas,r9a09g056-xspi", "renesas,r9a09g047-xspi";
                        reg = <0 0x11030000 0 0x10000>,
                        status = "disabled";
                };
 
+               dmac0: dma-controller@11400000 {
+                       compatible = "renesas,r9a09g056-dmac", "renesas,r9a09g057-dmac";
+                       reg = <0 0x11400000 0 0x10000>;
+                       interrupts = <GIC_SPI 499 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 89  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 90  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 91  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 92  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 93  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 94  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 95  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 96  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 97  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 98  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 99  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 100 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 101 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 102 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 103 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 104 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD 0x0>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x31>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 4>;
+               };
+
+               dmac1: dma-controller@14830000 {
+                       compatible = "renesas,r9a09g056-dmac", "renesas,r9a09g057-dmac";
+                       reg = <0 0x14830000 0 0x10000>;
+                       interrupts = <GIC_SPI 495 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 25  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 26  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 27  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 28  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 29  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 30  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 31  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 32  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 33  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 34  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 35  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 36  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 37  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 38  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 39  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 40  IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD 0x1>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x32>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 0>;
+               };
+
+               dmac2: dma-controller@14840000 {
+                       compatible = "renesas,r9a09g056-dmac", "renesas,r9a09g057-dmac";
+                       reg = <0 0x14840000 0 0x10000>;
+                       interrupts = <GIC_SPI 496 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 41  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 42  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 43  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 44  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 45  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 46  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 47  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 48  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 49  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 50  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 51  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 52  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 53  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 54  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 55  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 56  IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD 0x2>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x33>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 1>;
+               };
+
+               dmac3: dma-controller@12000000 {
+                       compatible = "renesas,r9a09g056-dmac", "renesas,r9a09g057-dmac";
+                       reg = <0 0x12000000 0 0x10000>;
+                       interrupts = <GIC_SPI 497 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 57  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 58  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 59  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 60  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 61  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 62  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 63  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 64  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 65  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 66  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 67  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 68  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 69  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 70  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 71  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 72  IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD 0x3>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x34>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 2>;
+               };
+
+               dmac4: dma-controller@12010000 {
+                       compatible = "renesas,r9a09g056-dmac", "renesas,r9a09g057-dmac";
+                       reg = <0 0x12010000 0 0x10000>;
+                       interrupts = <GIC_SPI 498 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 73  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 74  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 75  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 76  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 77  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 78  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 79  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 80  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 81  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 82  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 83  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 84  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 85  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 86  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 87  IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 88  IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD 0x4>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x35>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 3>;
+               };
+
                ostm0: timer@11800000 {
                        compatible = "renesas,r9a09g056-ostm", "renesas,ostm";
                        reg = <0x0 0x11800000 0x0 0x1000>;
                        status = "disabled";
                };
 
+               canfd: can@12440000 {
+                       compatible = "renesas,r9a09g056-canfd", "renesas,r9a09g047-canfd";
+                       reg = <0 0x12440000 0 0x40000>;
+                       interrupts = <GIC_SPI 709 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 710 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 703 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 711 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 698 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 704 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 712 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 699 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 705 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 713 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 700 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 706 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 714 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 701 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 715 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 702 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 708 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 716 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "g_err", "g_recc",
+                                         "ch0_err", "ch0_rec", "ch0_trx",
+                                         "ch1_err", "ch1_rec", "ch1_trx",
+                                         "ch2_err", "ch2_rec", "ch2_trx",
+                                         "ch3_err", "ch3_rec", "ch3_trx",
+                                         "ch4_err", "ch4_rec", "ch4_trx",
+                                         "ch5_err", "ch5_rec", "ch5_trx";
+                       clocks = <&cpg CPG_MOD 0x9c>, <&cpg CPG_MOD 0x9d>,
+                                <&cpg CPG_MOD 0x9e>;
+                       clock-names = "fck", "ram_clk", "can_clk";
+                       assigned-clocks = <&cpg CPG_MOD 0x9e>;
+                       assigned-clock-rates = <80000000>;
+                       resets = <&cpg 0xa1>, <&cpg 0xa2>;
+                       reset-names = "rstp_n", "rstc_n";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+                       channel1 {
+                               status = "disabled";
+                       };
+                       channel2 {
+                               status = "disabled";
+                       };
+                       channel3 {
+                               status = "disabled";
+                       };
+                       channel4 {
+                               status = "disabled";
+                       };
+                       channel5 {
+                               status = "disabled";
+                       };
+               };
+
+               rspi0: spi@12800000 {
+                       compatible = "renesas,r9a09g056-rspi",  "renesas,r9a09g057-rspi";
+                       reg = <0x0 0x12800000 0x0 0x400>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 500 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 501 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_MOD 0x54>,
+                                <&cpg CPG_MOD 0x55>,
+                                <&cpg CPG_MOD 0x56>;
+                       clock-names = "pclk", "pclk_sfr", "tclk";
+                       resets = <&cpg 0x7b>, <&cpg 0x7c>;
+                       reset-names = "presetn", "tresetn";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi1: spi@12800400 {
+                       compatible = "renesas,r9a09g056-rspi",  "renesas,r9a09g057-rspi";
+                       reg = <0x0 0x12800400 0x0 0x400>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 110 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 502 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 503 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_MOD 0x57>,
+                                <&cpg CPG_MOD 0x58>,
+                                <&cpg CPG_MOD 0x59>;
+                       clock-names = "pclk", "pclk_sfr", "tclk";
+                       resets = <&cpg 0x7d>, <&cpg 0x7e>;
+                       reset-names = "presetn", "tresetn";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi2: spi@12800800 {
+                       compatible = "renesas,r9a09g056-rspi",  "renesas,r9a09g057-rspi";
+                       reg = <0x0 0x12800800 0x0 0x400>;
+                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 504 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 505 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_MOD 0x5a>,
+                                <&cpg CPG_MOD 0x5b>,
+                                <&cpg CPG_MOD 0x5c>;
+                       clock-names = "pclk", "pclk_sfr", "tclk";
+                       resets = <&cpg 0x7f>, <&cpg 0x80>;
+                       reset-names = "presetn", "tresetn";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rsci0: serial@12800c00 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12800c00 0 0x400>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 116 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x5d>, <&cpg CPG_MOD 0x5e>,
+                                <&cpg CPG_MOD 0x61>, <&cpg CPG_MOD 0x60>,
+                                <&cpg CPG_MOD 0x5f>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x81>, <&cpg 0x82>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci1: serial@12801000 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801000 0 0x400>;
+                       interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x62>, <&cpg CPG_MOD 0x63>,
+                                <&cpg CPG_MOD 0x66>, <&cpg CPG_MOD 0x65>,
+                                <&cpg CPG_MOD 0x64>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x83>, <&cpg 0x84>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci2: serial@12801400 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801400 0 0x400>;
+                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x67>, <&cpg CPG_MOD 0x68>,
+                                <&cpg CPG_MOD 0x6b>, <&cpg CPG_MOD 0x6a>,
+                                <&cpg CPG_MOD 0x69>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x85>, <&cpg 0x86>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci3: serial@12801800 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801800 0 0x400>;
+                       interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x6c>, <&cpg CPG_MOD 0x6d>,
+                                <&cpg CPG_MOD 0x70>, <&cpg CPG_MOD 0x6f>,
+                                <&cpg CPG_MOD 0x6e>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x87>, <&cpg 0x88>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci4: serial@12801c00 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801c00 0 0x400>;
+                       interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x71>, <&cpg CPG_MOD 0x72>,
+                                <&cpg CPG_MOD 0x75>, <&cpg CPG_MOD 0x74>,
+                                <&cpg CPG_MOD 0x73>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x89>, <&cpg 0x8a>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci5: serial@12802000 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802000 0 0x400>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x76>, <&cpg CPG_MOD 0x77>,
+                                <&cpg CPG_MOD 0x7a>, <&cpg CPG_MOD 0x79>,
+                                <&cpg CPG_MOD 0x78>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8b>, <&cpg 0x8c>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci6: serial@12802400 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802400 0 0x400>;
+                       interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x7b>, <&cpg CPG_MOD 0x7c>,
+                                <&cpg CPG_MOD 0x7f>, <&cpg CPG_MOD 0x7e>,
+                                <&cpg CPG_MOD 0x7d>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8d>, <&cpg 0x8e>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci7: serial@12802800 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802800 0 0x400>;
+                       interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x80>, <&cpg CPG_MOD 0x81>,
+                                <&cpg CPG_MOD 0x84>, <&cpg CPG_MOD 0x83>,
+                                <&cpg CPG_MOD 0x82>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8f>, <&cpg 0x90>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci8: serial@12802c00 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802c00 0 0x400>;
+                       interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x85>, <&cpg CPG_MOD 0x86>,
+                                <&cpg CPG_MOD 0x89>, <&cpg CPG_MOD 0x88>,
+                                <&cpg CPG_MOD 0x87>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x91>, <&cpg 0x92>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci9: serial@12803000 {
+                       compatible = "renesas,r9a09g056-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12803000 0 0x400>;
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x8a>, <&cpg CPG_MOD 0x8b>,
+                                <&cpg CPG_MOD 0x8e>, <&cpg CPG_MOD 0x8d>,
+                                <&cpg CPG_MOD 0x8c>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x93>, <&cpg 0x94>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
                i2c0: i2c@14400400 {
                        compatible = "renesas,riic-r9a09g056", "renesas,riic-r9a09g057";
                        reg = <0 0x14400400 0 0x400>;
                        status = "disabled";
                };
 
+               xhci: usb@15850000 {
+                       compatible = "renesas,r9a09g056-xhci", "renesas,r9a09g047-xhci";
+                       reg = <0 0x15850000 0 0x10000>;
+                       interrupts = <GIC_SPI 759 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 758 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 757 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 756 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 755 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "all", "smi", "hse", "pme", "xhc";
+                       clocks = <&cpg CPG_MOD 0xaf>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xaa>;
+                       phys = <&usb3_phy>, <&usb3_phy>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       status = "disabled";
+               };
+
+               usb3_phy: usb-phy@15870000 {
+                       compatible = "renesas,r9a09g056-usb3-phy", "renesas,r9a09g047-usb3-phy";
+                       reg = <0 0x15870000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD 0xb0>,
+                                <&cpg CPG_CORE R9A09G056_USB3_0_CLKCORE>,
+                                <&cpg CPG_CORE R9A09G056_USB3_0_REF_ALT_CLK_P>;
+                       clock-names = "pclk", "core", "ref_alt_clk_p";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xaa>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
                sdhi0: mmc@15c00000  {
                        compatible = "renesas,sdhi-r9a09g056", "renesas,sdhi-r9a09g057";
                        reg = <0x0 0x15c00000 0 0x10000>;
                                };
                        };
                };
+
+               dsi: dsi@16430000 {
+                       compatible = "renesas,r9a09g056-mipi-dsi", "renesas,r9a09g057-mipi-dsi";
+                       reg = <0 0x16430000 0 0x20000>;
+                       interrupts = <GIC_SPI 874 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 875 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 876 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 877 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 878 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 879 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 880 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "seq0", "seq1", "vin1", "rcv",
+                                         "ferr", "ppi", "debug";
+                       clocks = <&cpg CPG_MOD 0xec>, <&cpg CPG_MOD 0xe9>,
+                                <&cpg CPG_MOD 0xe8>, <&cpg CPG_MOD 0xea>,
+                                <&cpg CPG_MOD 0xeb>;
+                       clock-names = "pllrefclk", "aclk", "pclk", "vclk", "lpclk";
+                       resets = <&cpg 0xd8>, <&cpg 0xd7>;
+                       reset-names = "arst", "prst";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       dsi_in: endpoint {
+                                               remote-endpoint = <&du_out_dsi>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       dsi_out: endpoint {
+                                       };
+                               };
+                       };
+               };
+
+               du: display@16460000 {
+                       compatible = "renesas,r9a09g056-du", "renesas,r9a09g057-du";
+                       reg = <0 0x16460000 0 0x10000>;
+                       interrupts = <GIC_SPI 882 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xed>, <&cpg CPG_MOD 0xee>,
+                                <&cpg CPG_MOD 0xef>;
+                       clock-names = "aclk", "pclk", "vclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xdc>;
+                       renesas,vsps = <&vspd 0>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       du_out_dsi: endpoint {
+                                               remote-endpoint = <&dsi_in>;
+                                       };
+                               };
+                       };
+               };
+
+               fcpvd: fcp@16470000 {
+                       compatible = "renesas,r9a09g056-fcpvd", "renesas,fcpv";
+                       reg = <0 0x16470000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD 0xed>,
+                                <&cpg CPG_MOD 0xee>,
+                                <&cpg CPG_MOD 0xef>;
+                       clock-names = "aclk", "pclk", "vclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xdc>;
+               };
+
+               vspd: vsp@16480000 {
+                       compatible = "renesas,r9a09g056-vsp2", "renesas,r9a07g044-vsp2";
+                       reg = <0 0x16480000 0 0x10000>;
+                       interrupts = <GIC_SPI 881 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xed>,
+                                <&cpg CPG_MOD 0xee>,
+                                <&cpg CPG_MOD 0xef>;
+                       clock-names = "aclk", "pclk", "vclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xdc>;
+                       renesas,fcp = <&fcpvd>;
+               };
        };
 
        stmmac_axi_setup: stmmac-axi-config {
                snps,blen = <16 8 4 0 0 0 0>;
        };
 
+       thermal-zones {
+               sensor1_thermal: sensor1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&tsu0>;
+
+                       trips {
+                               sensor1_crit: sensor1-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               sensor2_thermal: sensor2-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&tsu1>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&sensor2_target>;
+                                       cooling-device = <&cpu0 0 3>, <&cpu1 0 3>,
+                                                        <&cpu2 0 3>, <&cpu3 0 3>;
+                                       contribution = <1024>;
+                               };
+                       };
+
+                       trips {
+                               sensor2_target: trip-point {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               sensor2_crit: sensor2-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
index 066e66b5d51a2ceb75c55a1633a93215aef3deab..9af50198d2f1133b0017322591e74462cb13ff67 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 #include "r9a09g056.dtsi"
 
 / {
                stdout-path = "serial0:115200n8";
        };
 
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "d";
+
+               port {
+                       hdmi_con_out: endpoint {
+                               remote-endpoint = <&adv7535_out>;
+                       };
+               };
+       };
+
+       keys: keys {
+               compatible = "gpio-keys";
+
+               key-wakeup {
+                       interrupts-extended = <&icu 0 IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_WAKEUP>;
+                       label = "NMI_SW";
+                       debounce-interval = <20>;
+                       wakeup-source;
+               };
+       };
+
        memory@48000000 {
                device_type = "memory";
                /* first 128MB is reserved for secure area. */
                #clock-cells = <0>;
                clock-frequency = <32768>;
        };
+
+       /* 12MHz oscillator for ADV7535 */
+       y1: y1-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
 };
 
 &audio_extal_clk {
        clock-frequency = <22579200>;
 };
 
+&dsi {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       dsi_out: endpoint {
+                               data-lanes = <1 2 3 4>;
+                               remote-endpoint = <&adv7535_in>;
+                       };
+               };
+       };
+};
+
+&du {
+       status = "okay";
+};
+
 &ehci0 {
        dr_mode = "otg";
        status = "okay";
        pinctrl-names = "default";
        clock-frequency = <400000>;
        status = "okay";
+
+       adv7535: hdmi@3d {
+               compatible = "adi,adv7535";
+               reg = <0x3d>, <0x3f>, <0x3c>, <0x38>;
+               reg-names = "main", "edid", "cec", "packet";
+               clocks = <&y1>;
+               clock-names = "cec";
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               a2vdd-supply = <&reg_1p8v>;
+               v3p3-supply = <&reg_3p3v>;
+               v1p2-supply = <&reg_1p8v>;
+               adi,dsi-lanes = <4>;
+
+               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_out>;
+                               };
+                       };
+               };
+       };
 };
 
 &i2c6 {
                };
        };
 
+       usb3_pins: usb3 {
+               pinmux = <RZV2N_PORT_PINMUX(B, 0, 14)>, /* USB30_VBUSEN */
+                        <RZV2N_PORT_PINMUX(B, 1, 14)>; /* USB30_OVRCURN */
+       };
+
        xspi_pins: xspi0 {
                ctrl {
                        pins = "XSPI0_RESET0N", "XSPI0_CS0N", "XSPI0_CKP";
        status = "okay";
 };
 
+&usb3_phy {
+       status = "okay";
+};
+
 &wdt1 {
        status = "okay";
 };
 
+&xhci {
+       pinctrl-0 = <&usb3_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &xspi {
        pinctrl-0 = <&xspi_pins>;
        pinctrl-names = "default";
index 4df32d7e999818c94f8392130b70ee0e36293e89..504c2838662252e9fb62ae3068af950a1825aa43 100644 (file)
                        status = "disabled";
                };
 
-               wdt0: watchdog@11c00400 {
-                       compatible = "renesas,r9a09g057-wdt";
-                       reg = <0 0x11c00400 0 0x400>;
-                       clocks = <&cpg CPG_MOD 0x4b>, <&cpg CPG_MOD 0x4c>;
-                       clock-names = "pclk", "oscclk";
-                       resets = <&cpg 0x75>;
-                       power-domains = <&cpg>;
-                       status = "disabled";
-               };
-
                wdt1: watchdog@14400000 {
                        compatible = "renesas,r9a09g057-wdt";
                        reg = <0 0x14400000 0 0x400>;
                        status = "disabled";
                };
 
-               wdt2: watchdog@13000000 {
-                       compatible = "renesas,r9a09g057-wdt";
-                       reg = <0 0x13000000 0 0x400>;
-                       clocks = <&cpg CPG_MOD 0x4f>, <&cpg CPG_MOD 0x50>;
-                       clock-names = "pclk", "oscclk";
-                       resets = <&cpg 0x77>;
-                       power-domains = <&cpg>;
-                       status = "disabled";
-               };
-
-               wdt3: watchdog@13000400 {
-                       compatible = "renesas,r9a09g057-wdt";
-                       reg = <0 0x13000400 0 0x400>;
-                       clocks = <&cpg CPG_MOD 0x51>, <&cpg CPG_MOD 0x52>;
-                       clock-names = "pclk", "oscclk";
-                       resets = <&cpg 0x78>;
-                       power-domains = <&cpg>;
-                       status = "disabled";
-               };
-
                rtc: rtc@11c00800 {
                        compatible = "renesas,r9a09g057-rtca3", "renesas,rz-rtca3";
                        reg = <0 0x11c00800 0 0x400>;
                        status = "disabled";
                };
 
+               canfd: can@12440000 {
+                       compatible = "renesas,r9a09g057-canfd", "renesas,r9a09g047-canfd";
+                       reg = <0 0x12440000 0 0x40000>;
+                       interrupts = <GIC_SPI 709 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 710 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 703 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 711 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 698 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 704 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 712 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 699 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 705 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 713 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 700 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 706 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 714 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 701 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 715 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 702 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 708 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 716 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "g_err", "g_recc",
+                                         "ch0_err", "ch0_rec", "ch0_trx",
+                                         "ch1_err", "ch1_rec", "ch1_trx",
+                                         "ch2_err", "ch2_rec", "ch2_trx",
+                                         "ch3_err", "ch3_rec", "ch3_trx",
+                                         "ch4_err", "ch4_rec", "ch4_trx",
+                                         "ch5_err", "ch5_rec", "ch5_trx";
+                       clocks = <&cpg CPG_MOD 0x9c>, <&cpg CPG_MOD 0x9d>,
+                                <&cpg CPG_MOD 0x9e>;
+                       clock-names = "fck", "ram_clk", "can_clk";
+                       assigned-clocks = <&cpg CPG_MOD 0x9e>;
+                       assigned-clock-rates = <80000000>;
+                       resets = <&cpg 0xa1>, <&cpg 0xa2>;
+                       reset-names = "rstp_n", "rstc_n";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+                       channel1 {
+                               status = "disabled";
+                       };
+                       channel2 {
+                               status = "disabled";
+                       };
+                       channel3 {
+                               status = "disabled";
+                       };
+                       channel4 {
+                               status = "disabled";
+                       };
+                       channel5 {
+                               status = "disabled";
+                       };
+               };
+
                rspi0: spi@12800000 {
                        compatible = "renesas,r9a09g057-rspi";
                        reg = <0x0 0x12800000 0x0 0x400>;
                        status = "disabled";
                };
 
+               rsci0: serial@12800c00 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12800c00 0 0x400>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 115 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 116 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x5d>, <&cpg CPG_MOD 0x5e>,
+                                <&cpg CPG_MOD 0x61>, <&cpg CPG_MOD 0x60>,
+                                <&cpg CPG_MOD 0x5f>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x81>, <&cpg 0x82>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci1: serial@12801000 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801000 0 0x400>;
+                       interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x62>, <&cpg CPG_MOD 0x63>,
+                                <&cpg CPG_MOD 0x66>, <&cpg CPG_MOD 0x65>,
+                                <&cpg CPG_MOD 0x64>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x83>, <&cpg 0x84>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci2: serial@12801400 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801400 0 0x400>;
+                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x67>, <&cpg CPG_MOD 0x68>,
+                                <&cpg CPG_MOD 0x6b>, <&cpg CPG_MOD 0x6a>,
+                                <&cpg CPG_MOD 0x69>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x85>, <&cpg 0x86>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci3: serial@12801800 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801800 0 0x400>;
+                       interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x6c>, <&cpg CPG_MOD 0x6d>,
+                                <&cpg CPG_MOD 0x70>, <&cpg CPG_MOD 0x6f>,
+                                <&cpg CPG_MOD 0x6e>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x87>, <&cpg 0x88>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci4: serial@12801c00 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12801c00 0 0x400>;
+                       interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x71>, <&cpg CPG_MOD 0x72>,
+                                <&cpg CPG_MOD 0x75>, <&cpg CPG_MOD 0x74>,
+                                <&cpg CPG_MOD 0x73>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x89>, <&cpg 0x8a>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci5: serial@12802000 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802000 0 0x400>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x76>, <&cpg CPG_MOD 0x77>,
+                                <&cpg CPG_MOD 0x7a>, <&cpg CPG_MOD 0x79>,
+                                <&cpg CPG_MOD 0x78>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8b>, <&cpg 0x8c>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci6: serial@12802400 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802400 0 0x400>;
+                       interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 154 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x7b>, <&cpg CPG_MOD 0x7c>,
+                                <&cpg CPG_MOD 0x7f>, <&cpg CPG_MOD 0x7e>,
+                                <&cpg CPG_MOD 0x7d>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8d>, <&cpg 0x8e>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci7: serial@12802800 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802800 0 0x400>;
+                       interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x80>, <&cpg CPG_MOD 0x81>,
+                                <&cpg CPG_MOD 0x84>, <&cpg CPG_MOD 0x83>,
+                                <&cpg CPG_MOD 0x82>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x8f>, <&cpg 0x90>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci8: serial@12802c00 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12802c00 0 0x400>;
+                       interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 164 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x85>, <&cpg CPG_MOD 0x86>,
+                                <&cpg CPG_MOD 0x89>, <&cpg CPG_MOD 0x88>,
+                                <&cpg CPG_MOD 0x87>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x91>, <&cpg 0x92>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
+               rsci9: serial@12803000 {
+                       compatible = "renesas,r9a09g057-rsci", "renesas,r9a09g047-rsci";
+                       reg = <0 0x12803000 0 0x400>;
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei",
+                                         "aed", "bfd";
+                       clocks = <&cpg CPG_MOD 0x8a>, <&cpg CPG_MOD 0x8b>,
+                                <&cpg CPG_MOD 0x8e>, <&cpg CPG_MOD 0x8d>,
+                                <&cpg CPG_MOD 0x8c>;
+                       clock-names = "pclk", "tclk", "tclk_div4",
+                                     "tclk_div16", "tclk_div64";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0x93>, <&cpg 0x94>;
+                       reset-names = "presetn", "tresetn";
+                       status = "disabled";
+               };
+
                i2c0: i2c@14400400 {
                        compatible = "renesas,riic-r9a09g057";
                        reg = <0 0x14400400 0 0x400>;
                        status = "disabled";
                };
 
+               xhci0: usb@15850000 {
+                       compatible = "renesas,r9a09g057-xhci", "renesas,r9a09g047-xhci";
+                       reg = <0 0x15850000 0 0x10000>;
+                       interrupts = <GIC_SPI 759 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 758 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 757 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 756 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 755 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "all", "smi", "hse", "pme", "xhc";
+                       clocks = <&cpg CPG_MOD 0xaf>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xaa>;
+                       phys = <&usb3_phy0>, <&usb3_phy0>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       status = "disabled";
+               };
+
+               xhci1: usb@15860000 {
+                       compatible = "renesas,r9a09g057-xhci", "renesas,r9a09g047-xhci";
+                       reg = <0 0x15860000 0 0x10000>;
+                       interrupts = <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 763 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 762 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 761 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 760 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "all", "smi", "hse", "pme", "xhc";
+                       clocks = <&cpg CPG_MOD 0xb1>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xab>;
+                       phys = <&usb3_phy1>, <&usb3_phy1>;
+                       phy-names = "usb2-phy", "usb3-phy";
+                       status = "disabled";
+               };
+
+               usb3_phy0: usb-phy@15870000 {
+                       compatible = "renesas,r9a09g057-usb3-phy", "renesas,r9a09g047-usb3-phy";
+                       reg = <0 0x15870000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD 0xb0>,
+                                <&cpg CPG_CORE R9A09G057_USB3_0_CLKCORE>,
+                                <&cpg CPG_CORE R9A09G057_USB3_0_REF_ALT_CLK_P>;
+                       clock-names = "pclk", "core", "ref_alt_clk_p";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xaa>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb3_phy1: usb-phy@15880000 {
+                       compatible = "renesas,r9a09g057-usb3-phy", "renesas,r9a09g047-usb3-phy";
+                       reg = <0 0x15880000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD 0xb2>,
+                                <&cpg CPG_CORE R9A09G057_USB3_1_CLKCORE>,
+                                <&cpg CPG_CORE R9A09G057_USB3_1_REF_ALT_CLK_P>;
+                       clock-names = "pclk", "core", "ref_alt_clk_p";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xab>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
                sdhi0: mmc@15c00000  {
                        compatible = "renesas,sdhi-r9a09g057";
                        reg = <0x0 0x15c00000 0 0x10000>;
                                };
                        };
                };
+
+               dsi: dsi@16430000 {
+                       compatible = "renesas,r9a09g057-mipi-dsi";
+                       reg = <0 0x16430000 0 0x20000>;
+                       interrupts = <GIC_SPI 874 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 875 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 876 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 877 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 878 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 879 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 880 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "seq0", "seq1", "vin1", "rcv",
+                                         "ferr", "ppi", "debug";
+                       clocks = <&cpg CPG_MOD 0xec>, <&cpg CPG_MOD 0xe9>,
+                                <&cpg CPG_MOD 0xe8>, <&cpg CPG_MOD 0xea>,
+                                <&cpg CPG_MOD 0xeb>;
+                       clock-names = "pllrefclk", "aclk", "pclk", "vclk", "lpclk";
+                       resets = <&cpg 0xd8>, <&cpg 0xd7>;
+                       reset-names = "arst", "prst";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       dsi_in: endpoint {
+                                               remote-endpoint = <&du_out_dsi>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       dsi_out: endpoint {
+                                       };
+                               };
+                       };
+               };
+
+               du: display@16460000 {
+                       compatible = "renesas,r9a09g057-du";
+                       reg = <0 0x16460000 0 0x10000>;
+                       interrupts = <GIC_SPI 882 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xed>, <&cpg CPG_MOD 0xee>,
+                                <&cpg CPG_MOD 0xef>;
+                       clock-names = "aclk", "pclk", "vclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xdc>;
+                       renesas,vsps = <&vspd 0>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       du_out_dsi: endpoint {
+                                               remote-endpoint = <&dsi_in>;
+                                       };
+                               };
+                       };
+               };
+
+               fcpvd: fcp@16470000 {
+                       compatible = "renesas,r9a09g057-fcpvd", "renesas,fcpv";
+                       reg = <0 0x16470000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD 0xed>,
+                                <&cpg CPG_MOD 0xee>,
+                                <&cpg CPG_MOD 0xef>;
+                       clock-names = "aclk", "pclk", "vclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xdc>;
+               };
+
+               vspd: vsp@16480000 {
+                       compatible = "renesas,r9a09g057-vsp2", "renesas,r9a07g044-vsp2";
+                       reg = <0 0x16480000 0 0x10000>;
+                       interrupts = <GIC_SPI 881 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 0xed>,
+                                <&cpg CPG_MOD 0xee>,
+                                <&cpg CPG_MOD 0xef>;
+                       clock-names = "aclk", "pclk", "vclk";
+                       power-domains = <&cpg>;
+                       resets = <&cpg 0xdc>;
+                       renesas,fcp = <&fcpvd>;
+               };
        };
 
        stmmac_axi_setup: stmmac-axi-config {
index 445fce156f73063579b8632f841e90b878d1b253..dc4577ebf2e950930507591c70477c98da878fdb 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "d";
+
+               port {
+                       hdmi_con_out: endpoint {
+                               remote-endpoint = <&adv7535_out>;
+                       };
+               };
+       };
+
        keys: keys {
                compatible = "gpio-keys";
 
@@ -50,7 +61,7 @@
        memory@48000000 {
                device_type = "memory";
                /* first 128MB is reserved for secure area. */
-               reg = <0x0 0x48000000 0x1 0xF8000000>;
+               reg = <0x0 0x48000000 0x1 0xf8000000>;
        };
 
        memory@240000000 {
                #clock-cells = <0>;
                clock-frequency = <32768>;
        };
+
+       /* 12MHz crystal for ADV7535 */
+       y1: y1-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
 };
 
 &audio_extal_clk {
        clock-frequency = <22579200>;
 };
 
+&dsi {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       dsi_out: endpoint {
+                               data-lanes = <1 2 3 4>;
+                               remote-endpoint = <&adv7535_in>;
+                       };
+               };
+       };
+};
+
+&du {
+       status = "okay";
+};
+
 &ehci0 {
        dr_mode = "otg";
        status = "okay";
        clock-frequency = <400000>;
 
        status = "okay";
+
+       adv7535: hdmi@3d {
+               compatible = "adi,adv7535";
+               reg = <0x3d>, <0x3f>, <0x3c>, <0x38>;
+               reg-names = "main", "edid", "cec", "packet";
+               interrupt-parent = <&pinctrl>;
+               interrupts = <RZV2H_GPIO(7, 1) IRQ_TYPE_EDGE_FALLING>;
+               clocks = <&y1>;
+               clock-names = "cec";
+               avdd-supply = <&reg_1p8v>;
+               dvdd-supply = <&reg_1p8v>;
+               pvdd-supply = <&reg_1p8v>;
+               a2vdd-supply = <&reg_1p8v>;
+               v3p3-supply = <&reg_3p3v>;
+               v1p2-supply = <&reg_1p8v>;
+               adi,dsi-lanes = <4>;
+
+               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_out>;
+                               };
+                       };
+               };
+       };
 };
 
 &i2c6 {
                };
        };
 
+       usb30_pins: usb30 {
+               pinmux = <RZV2H_PORT_PINMUX(B, 0, 14)>, /* USB30_VBUSEN */
+                        <RZV2H_PORT_PINMUX(B, 1, 14)>; /* USB30_OVRCURN */
+       };
+
+       usb31_pins: usb31 {
+               pinmux = <RZV2H_PORT_PINMUX(6, 2, 14)>, /* USB31_VBUSEN */
+                        <RZV2H_PORT_PINMUX(6, 3, 14)>; /* USB31_OVRCURN */
+       };
+
        xspi_pins: xspi0 {
                ctrl {
                        pins = "XSPI0_RESET0N", "XSPI0_CS0N", "XSPI0_CKP";
        status = "okay";
 };
 
+&usb3_phy0 {
+       status = "okay";
+};
+
+&usb3_phy1 {
+       status = "okay";
+};
+
 &wdt1 {
        status = "okay";
 };
 
+&xhci0 {
+       pinctrl-0 = <&usb30_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&xhci1 {
+       pinctrl-0 = <&usb31_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &xspi {
        pinctrl-0 = <&xspi_pins>;
        pinctrl-names = "default";
index adf3ab8aef2b559f0b26e7f299d3b31e68d911a5..3028ed406306b56f046638778f874f5b0b7f8f73 100644 (file)
        memory@48000000 {
                device_type = "memory";
                /* first 128MB is reserved for secure area. */
-               reg = <0x0 0x48000000 0x1 0xF8000000>;
+               reg = <0x0 0x48000000 0x1 0xf8000000>;
+       };
+
+       reg_1p8v: regulator-1p8v {
+               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 {
                        pinmux = <RZV2H_PORT_PINMUX(A, 5, 15)>; /* SD0_CD */
                };
        };
+
+       xspi_pins: xspi0 {
+               ctrl {
+                       pins = "XSPI0_RESET0N", "XSPI0_CS0N", "XSPI0_CKP";
+                       output-enable;
+               };
+
+               io {
+                       pins = "XSPI0_IO0", "XSPI0_IO1", "XSPI0_IO2", "XSPI0_IO3";
+                       renesas,output-impedance = <3>;
+               };
+       };
 };
 
 &qextal_clk {
 
        status = "okay";
 };
+
+&xspi {
+       pinctrl-0 = <&xspi_pins>;
+       pinctrl-names = "default";
+       assigned-clocks = <&cpg CPG_CORE R9A09G057_SPI_CLK_SPI>;
+       assigned-clock-rates = <133333334>;
+       status = "okay";
+
+       flash@0 {
+               /* W25Q256JWPIM */
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               vcc-supply = <&reg_1p8v>;
+               m25p,fast-read;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+       };
+};
index f5fa6ca06409722a8f0586d8936b076f994d7516..9d0b4d8d3d5bb1d8910af634ede0557689cb62af 100644 (file)
        #size-cells = <2>;
        interrupt-parent = <&gic>;
 
+       cluster0_opp: opp-table-0 {
+               compatible = "operating-points-v2";
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -24,6 +35,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_CA55C0>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu1: cpu@100 {
@@ -32,6 +46,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_CA55C1>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu2: cpu@200 {
@@ -40,6 +57,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_CA55C2>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu3: cpu@300 {
@@ -48,6 +68,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_CA55C3>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                L3_CA55: cache-controller-0 {
                        status = "disabled";
                };
 
+               rspi0: spi@80007000 {
+                       compatible = "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x80007000 0x0 0x400>;
+                       interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 638 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 634 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 635 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKM>,
+                                <&cpg CPG_MOD 104>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi1: spi@80007400 {
+                       compatible = "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x80007400 0x0 0x400>;
+                       interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 643 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 639 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 640 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKM>,
+                                <&cpg CPG_MOD 105>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi2: spi@80007800 {
+                       compatible = "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x80007800 0x0 0x400>;
+                       interrupts = <GIC_SPI 646 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 647 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 648 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 644 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 645 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKM>,
+                                <&cpg CPG_MOD 106>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi3: spi@81007000 {
+                       compatible = "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x81007000 0x0 0x400>;
+                       interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 653 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 649 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 650 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKM>,
+                                <&cpg CPG_MOD 602>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               canfd: can@80040000 {
+                       compatible = "renesas,r9a09g077-canfd";
+                       reg = <0 0x80040000 0 0x20000>;
+                       interrupts = <GIC_SPI 633 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 632 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 627 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 628 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 626 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 630 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 631 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 629 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "g_err", "g_recc",
+                                         "ch0_err", "ch0_rec", "ch0_trx",
+                                         "ch1_err", "ch1_rec", "ch1_trx";
+                       clocks = <&cpg CPG_MOD 310>,
+                                <&cpg CPG_CORE R9A09G077_CLK_PCLKH>,
+                                <&cpg CPG_CORE R9A09G077_PCLKCAN>;
+                       clock-names = "fck", "ram_clk", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R9A09G077_PCLKCAN>;
+                       assigned-clock-rates = <80000000>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+                       channel1 {
+                               status = "disabled";
+                       };
+               };
+
                wdt0: watchdog@80082000 {
                        compatible = "renesas,r9a09g077-wdt";
                        reg = <0 0x80082000 0 0x400>,
                        status = "disabled";
                };
 
+               tsu: thermal@80086000 {
+                       compatible = "renesas,r9a09g077-tsu";
+                       reg = <0 0x80086000 0 0x1000>;
+                       interrupts = <GIC_SPI 713 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 714 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "adi", "adcmpi";
+                       clocks = <&cpg CPG_MOD 307>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <0>;
+               };
+
                i2c0: i2c@80088000 {
                        compatible = "renesas,riic-r9a09g077";
                        reg = <0 0x80088000 0 0x400>;
                        status = "disabled";
                };
 
+               dmac0: dma-controller@800c0000 {
+                       compatible = "renesas,r9a09g077-dmac";
+                       reg = <0 0x800c0000 0 0x1000>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKH>;
+                       power-domains = <&cpg>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 0>;
+               };
+
+               dmac1: dma-controller@800c1000 {
+                       compatible = "renesas,r9a09g077-dmac";
+                       reg = <0 0x800c1000 0 0x1000>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 53 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 54 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 60 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 61 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 62 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 63 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKH>;
+                       power-domains = <&cpg>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 1>;
+               };
+
+               dmac2: dma-controller@800c2000 {
+                       compatible = "renesas,r9a09g077-dmac";
+                       reg = <0 0x800c2000 0 0x1000>;
+                       interrupts = <GIC_SPI 64 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 65 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 66 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 67 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 69 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 71 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKH>;
+                       power-domains = <&cpg>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 2>;
+               };
+
                gmac0: ethernet@80100000 {
                        compatible = "renesas,r9a09g077-gbeth", "snps,dwmac-5.20";
                        reg = <0 0x80100000 0 0x10000>;
 
                cpg: clock-controller@80280000 {
                        compatible = "renesas,r9a09g077-cpg-mssr";
-                       reg = <0 0x80280000 0 0x1000>,
-                             <0 0x81280000 0 0x9000>;
+                       reg = <0 0x80280000 0 0x10000>,
+                             <0 0x81280000 0 0x10000>;
                        clocks = <&extal_clk>;
                        clock-names = "extal";
                        #clock-cells = <2>;
                        #power-domain-cells = <0>;
                };
 
+               icu: interrupt-controller@802a0000 {
+                       compatible = "renesas,r9a09g077-icu";
+                       reg = <0 0x802a0000 0 0x10000>,
+                             <0 0x812a0000 0 0x10000>;
+                       #interrupt-cells = <2>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 7 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 9 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 10 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 11 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 12 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 13 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 14 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 15 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 16 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 17 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 18 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 406 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 407 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 408 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 409 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 410 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 411 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 412 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 413 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 414 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 415 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 416 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 417 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 418 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "intcpu0", "intcpu1", "intcpu2",
+                                         "intcpu3", "intcpu4", "intcpu5",
+                                         "intcpu6", "intcpu7", "intcpu8",
+                                         "intcpu9", "intcpu10", "intcpu11",
+                                         "intcpu12", "intcpu13", "intcpu14",
+                                         "intcpu15",
+                                         "irq0", "irq1", "irq2", "irq3",
+                                         "irq4", "irq5", "irq6", "irq7",
+                                         "irq8", "irq9", "irq10", "irq11",
+                                         "irq12", "irq13", "irq14", "irq15",
+                                         "sei",
+                                         "ca55-err0", "ca55-err1",
+                                         "cr520-err0", "cr520-err1",
+                                         "cr521-err0", "cr521-err1",
+                                         "peri-err0", "peri-err1",
+                                         "dsmif-err0", "dsmif-err1",
+                                         "encif-err0", "encif-err1";
+                       clocks = <&cpg CPG_CORE R9A09G077_CLK_PCLKM>;
+                       power-domains = <&cpg>;
+               };
+
                pinctrl: pinctrl@802c0000 {
                        compatible = "renesas,r9a09g077-pinctrl";
                        reg = <0 0x802c0000 0 0x10000>,
                        gpio-controller;
                        #gpio-cells = <2>;
                        gpio-ranges = <&pinctrl 0 0 288>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       interrupt-parent = <&icu>;
                        power-domains = <&cpg>;
                };
 
                snps,blen = <16 8 4 0 0 0 0>;
        };
 
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&tsu>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&target>;
+                                       cooling-device = <&cpu0 0 1>, <&cpu1 0 1>,
+                                                        <&cpu2 0 1>, <&cpu3 0 1>;
+                                       contribution = <1024>;
+                               };
+                       };
+
+                       trips {
+                               target: trip-point {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               sensor_crit: sensor-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
index b7706d0bc3aa150c31b56bd9dee131ef396f1c94..e9639bbb2d703bd9404c5c4e2174ea634266647b 100644 (file)
@@ -7,6 +7,8 @@
 
 /dts-v1/;
 
+#include <dt-bindings/input/input.h>
+
 #include "r9a09g077m44.dtsi"
 
 /*
@@ -26,6 +28,9 @@
  * P17_4 = SD1_CD; SW2[3] = ON
  * P08_5 = SD1_PWEN; SW2[3] = ON
  * P08_6 = SD1_IOVS; SW2[3] = ON; SW5[3] = OFF; SW5[4] = ON
+ * To enable proper operation in 1.8V modes, CN77 must have pins 2 and 3
+ * connected by the jumper. This connects SD1 power-supply control IC output
+ * back to VCC1833_7.
  */
 #define SD1_MICRO_SD   1
 
        model = "Renesas RZ/T2H EVK Board based on r9a09g077m44";
        compatible = "renesas,rzt2h-evk", "renesas,r9a09g077m44", "renesas,r9a09g077";
 
+       keys {
+               compatible = "gpio-keys";
+
+#if (!SD1_MICRO_SD)
+               /* SW2-3: OFF */
+               key-1 {
+                       interrupts-extended = <&pinctrl RZT2H_GPIO(8, 6) IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_1>;
+                       label = "SW9";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+#endif
+
+               key-2 {
+                       interrupts-extended = <&pinctrl RZT2H_GPIO(0, 3) IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_2>;
+                       label = "SW10";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+
+               key-3 {
+                       interrupts-extended = <&pinctrl RZT2H_GPIO(8, 7) IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_3>;
+                       label = "SW11";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
 
        };
 };
 
+&adc2 {
+       status = "okay";
+
+       channel@0 {
+               reg = <0x0>;
+       };
+
+       channel@1 {
+               reg = <0x1>;
+       };
+
+       channel@2 {
+               reg = <0x2>;
+       };
+
+       channel@3 {
+               reg = <0x3>;
+       };
+
+       channel@4 {
+               reg = <0x4>;
+       };
+
+       channel@5 {
+               reg = <0x5>;
+       };
+};
+
+&canfd {
+       pinctrl-0 = <&can0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       channel0 {
+               status = "okay";
+       };
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0_pins>;
        pinctrl-names = "default";
 };
 
 &pinctrl {
+       /*
+        * CAN0 Pin Configuration:
+        *
+        * SW7[1] OFF; SW7[2] ON - Use P24_4 as CANTX0.
+        * SW7[3] OFF; SW7[4] ON - Use P24_3 as CANRX0.
+        */
+       can0_pins: can0-pins {
+               pinmux = <RZT2H_PORT_PINMUX(24, 3, 0x19)>, /* CANRX0 */
+                        <RZT2H_PORT_PINMUX(24, 4, 0x19)>; /* CANTX0 */
+       };
+
        /*
         * GMAC2 Pin Configuration:
         *
        };
 };
 
-&adc2 {
-       status = "okay";
-
-       channel@0 {
-               reg = <0x0>;
-       };
-
-       channel@1 {
-               reg = <0x1>;
-       };
-
-       channel@2 {
-               reg = <0x2>;
-       };
-
-       channel@3 {
-               reg = <0x3>;
-       };
-
-       channel@4 {
-               reg = <0x4>;
-       };
-
-       channel@5 {
-               reg = <0x5>;
-       };
-};
index 361a9235f00d943125352f4f69ee0c351ccad4d1..d407c48f996695a0cd5a83ee5b078a3de0ca1f84 100644 (file)
        #size-cells = <2>;
        interrupt-parent = <&gic>;
 
+       cluster0_opp: opp-table-0 {
+               compatible = "operating-points-v2";
+
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -24,6 +35,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_CA55C0>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu1: cpu@100 {
@@ -32,6 +46,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_CA55C1>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu2: cpu@200 {
@@ -40,6 +57,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_CA55C2>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu3: cpu@300 {
@@ -48,6 +68,9 @@
                        device_type = "cpu";
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_CA55C3>;
+                       #cooling-cells = <2>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                L3_CA55: cache-controller-0 {
                        status = "disabled";
                };
 
+               rspi0: spi@80007000 {
+                       compatible = "renesas,r9a09g087-rspi", "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x80007000 0x0 0x400>;
+                       interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 638 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 634 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 635 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKM>,
+                                <&cpg CPG_MOD 104>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi1: spi@80007400 {
+                       compatible = "renesas,r9a09g087-rspi", "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x80007400 0x0 0x400>;
+                       interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 643 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 639 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 640 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKM>,
+                                <&cpg CPG_MOD 105>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi2: spi@80007800 {
+                       compatible = "renesas,r9a09g087-rspi", "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x80007800 0x0 0x400>;
+                       interrupts = <GIC_SPI 646 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 647 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 648 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 644 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 645 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKM>,
+                                <&cpg CPG_MOD 106>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               rspi3: spi@81007000 {
+                       compatible = "renesas,r9a09g087-rspi", "renesas,r9a09g077-rspi";
+                       reg = <0x0 0x81007000 0x0 0x400>;
+                       interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 653 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 649 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 650 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "idle", "error", "end", "rx", "tx";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKM>,
+                                <&cpg CPG_MOD 602>;
+                       clock-names = "pclk", "pclkspi";
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               canfd: can@80040000 {
+                       compatible = "renesas,r9a09g087-canfd", "renesas,r9a09g077-canfd";
+                       reg = <0 0x80040000 0 0x20000>;
+                       interrupts = <GIC_SPI 633 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 632 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 627 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 628 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 626 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 630 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 631 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 629 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "g_err", "g_recc",
+                                         "ch0_err", "ch0_rec", "ch0_trx",
+                                         "ch1_err", "ch1_rec", "ch1_trx";
+                       clocks = <&cpg CPG_MOD 310>,
+                                <&cpg CPG_CORE R9A09G087_CLK_PCLKH>,
+                                <&cpg CPG_CORE R9A09G087_PCLKCAN>;
+                       clock-names = "fck", "ram_clk", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R9A09G087_PCLKCAN>;
+                       assigned-clock-rates = <80000000>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+                       channel1 {
+                               status = "disabled";
+                       };
+               };
+
                wdt0: watchdog@80082000 {
                        compatible = "renesas,r9a09g087-wdt", "renesas,r9a09g077-wdt";
                        reg = <0 0x80082000 0 0x400>,
                        status = "disabled";
                };
 
+               tsu: thermal@80086000 {
+                       compatible = "renesas,r9a09g087-tsu", "renesas,r9a09g077-tsu";
+                       reg = <0 0x80086000 0 0x1000>;
+                       interrupts = <GIC_SPI 713 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 714 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "adi", "adcmpi";
+                       clocks = <&cpg CPG_MOD 307>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <0>;
+               };
+
                i2c0: i2c@80088000 {
                        compatible = "renesas,riic-r9a09g087", "renesas,riic-r9a09g077";
                        reg = <0 0x80088000 0 0x400>;
                        status = "disabled";
                };
 
+               dmac0: dma-controller@800c0000 {
+                       compatible = "renesas,r9a09g087-dmac", "renesas,r9a09g077-dmac";
+                       reg = <0 0x800c0000 0 0x1000>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKH>;
+                       power-domains = <&cpg>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 0>;
+               };
+
+               dmac1: dma-controller@800c1000 {
+                       compatible = "renesas,r9a09g087-dmac", "renesas,r9a09g077-dmac";
+                       reg = <0 0x800c1000 0 0x1000>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 53 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 54 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 60 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 61 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 62 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 63 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKH>;
+                       power-domains = <&cpg>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 1>;
+               };
+
+               dmac2: dma-controller@800c2000 {
+                       compatible = "renesas,r9a09g087-dmac", "renesas,r9a09g077-dmac";
+                       reg = <0 0x800c2000 0 0x1000>;
+                       interrupts = <GIC_SPI 64 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 65 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 66 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 67 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 69 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 71 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKH>;
+                       power-domains = <&cpg>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       renesas,icu = <&icu 2>;
+               };
+
                gmac0: ethernet@80100000 {
                        compatible = "renesas,r9a09g087-gbeth", "renesas,r9a09g077-gbeth",
                                     "snps,dwmac-5.20";
 
                cpg: clock-controller@80280000 {
                        compatible = "renesas,r9a09g087-cpg-mssr";
-                       reg = <0 0x80280000 0 0x1000>,
-                             <0 0x81280000 0 0x9000>;
+                       reg = <0 0x80280000 0 0x10000>,
+                             <0 0x81280000 0 0x10000>;
                        clocks = <&extal_clk>;
                        clock-names = "extal";
                        #clock-cells = <2>;
                        #power-domain-cells = <0>;
                };
 
+               icu: interrupt-controller@802a0000 {
+                       compatible = "renesas,r9a09g087-icu", "renesas,r9a09g077-icu";
+                       reg = <0 0x802a0000 0 0x10000>,
+                             <0 0x812a0000 0 0x10000>;
+                       #interrupt-cells = <2>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 7 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 9 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 10 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 11 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 12 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 13 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 14 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 15 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 16 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 17 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 18 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 406 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 407 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 408 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 409 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 410 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 411 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 412 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 413 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 414 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 415 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 416 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 417 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 418 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "intcpu0", "intcpu1", "intcpu2",
+                                         "intcpu3", "intcpu4", "intcpu5",
+                                         "intcpu6", "intcpu7", "intcpu8",
+                                         "intcpu9", "intcpu10", "intcpu11",
+                                         "intcpu12", "intcpu13", "intcpu14",
+                                         "intcpu15",
+                                         "irq0", "irq1", "irq2", "irq3",
+                                         "irq4", "irq5", "irq6", "irq7",
+                                         "irq8", "irq9", "irq10", "irq11",
+                                         "irq12", "irq13", "irq14", "irq15",
+                                         "sei",
+                                         "ca55-err0", "ca55-err1",
+                                         "cr520-err0", "cr520-err1",
+                                         "cr521-err0", "cr521-err1",
+                                         "peri-err0", "peri-err1",
+                                         "dsmif-err0", "dsmif-err1",
+                                         "encif-err0", "encif-err1";
+                       clocks = <&cpg CPG_CORE R9A09G087_CLK_PCLKM>;
+                       power-domains = <&cpg>;
+               };
+
                pinctrl: pinctrl@802c0000 {
                        compatible = "renesas,r9a09g087-pinctrl";
                        reg = <0 0x802c0000 0 0x10000>,
                        gpio-controller;
                        #gpio-cells = <2>;
                        gpio-ranges = <&pinctrl 0 0 280>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       interrupt-parent = <&icu>;
                        power-domains = <&cpg>;
                };
 
                snps,blen = <16 8 4 0 0 0 0>;
        };
 
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
+                       thermal-sensors = <&tsu>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&target>;
+                                       cooling-device = <&cpu0 0 1>, <&cpu1 0 1>,
+                                                        <&cpu2 0 1>, <&cpu3 0 1>;
+                                       contribution = <1024>;
+                               };
+                       };
+
+                       trips {
+                               target: trip-point {
+                                       temperature = <95000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               sensor_crit: sensor-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
index 17c0c79fbd96bdb72ce02f6ae616528bdead8cf4..19f0a2c06753065c7fcafcb7aceb5a23f871f843 100644 (file)
@@ -7,6 +7,8 @@
 
 /dts-v1/;
 
+#include <dt-bindings/input/input.h>
+
 #include "r9a09g087m44.dtsi"
 
 /*
 #define SD0_EMMC       1
 #define SD0_SD         (!SD0_EMMC)
 
+/*
+ * To enable CANFD interface disable both eMMC and SD card on SDHI0 by
+ * setting SD0_EMMC and SD0_SD macros to 0 as pins P12_0 and P12_1
+ * will be used for CANFD interface.
+ */
+#define CANFD_ENABLE   (!SD0_EMMC && !SD0_SD)
+
 /*
  * P17_4 = SD1_CD; DSW5[3] = ON; DSW19[1] = OFF; DSW19[2] = ON
  * P08_6 = SD1_IOVS; DSW5[3] = ON
+ * To enable proper operation in 1.8V modes, JP21 must have pins 2 and 3
+ * connected by the jumper. This connects SD1 power-supply control IC output
+ * back to VCC1833_7.
  */
 #define SD1_MICRO_SD   1
 
        model = "Renesas RZ/N2H EVK Board based on r9a09g087m44";
        compatible = "renesas,rzn2h-evk", "renesas,r9a09g087m44", "renesas,r9a09g087";
 
+       keys {
+               compatible = "gpio-keys";
+
+               key-1 {
+                       interrupts-extended = <&pinctrl RZT2H_GPIO(18, 2) IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_1>;
+                       label = "SW2";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+
+               key-2 {
+                       interrupts-extended = <&pinctrl RZT2H_GPIO(0, 4) IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_2>;
+                       label = "SW3";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+
+               key-3 {
+                       interrupts-extended = <&pinctrl RZT2H_GPIO(18, 7) IRQ_TYPE_EDGE_FALLING>;
+                       linux,code = <KEY_3>;
+                       label = "SW4";
+                       wakeup-source;
+                       debounce-interval = <20>;
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
 
        };
 };
 
+&adc2 {
+       status = "okay";
+
+       channel@0 {
+               reg = <0x0>;
+       };
+
+       channel@1 {
+               reg = <0x1>;
+       };
+
+       channel@2 {
+               reg = <0x2>;
+       };
+
+       channel@3 {
+               reg = <0x3>;
+       };
+
+       channel@4 {
+               reg = <0x4>;
+       };
+
+       channel@5 {
+               reg = <0x5>;
+       };
+
+       channel@6 {
+               reg = <0x6>;
+       };
+
+       channel@7 {
+               reg = <0x7>;
+       };
+
+       channel@8 {
+               reg = <0x8>;
+       };
+
+       channel@9 {
+               reg = <0x9>;
+       };
+
+       channel@a {
+               reg = <0xa>;
+       };
+
+       channel@b {
+               reg = <0xb>;
+       };
+
+       channel@c {
+               reg = <0xc>;
+       };
+
+       channel@d {
+               reg = <0xd>;
+       };
+
+       channel@e {
+               reg = <0xe>;
+       };
+};
+
+#if CANFD_ENABLE
+&canfd {
+       pinctrl-0 = <&can1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       channel1 {
+               status = "okay";
+       };
+};
+#endif
+
 #if I2C0
 &i2c0 {
        pinctrl-0 = <&i2c0_pins>;
 };
 
 &pinctrl {
+       /*
+        * CAN1 Pin Configuration:
+        *
+        * DSW5[1] ON; DSW5[2] OFF - Use P12_0 and P12_1 for CAN1 interface.
+        */
+       can1_pins: can1-pins {
+               pinmux = <RZT2H_PORT_PINMUX(12, 0, 0x19)>, /* CANRX1 */
+                        <RZT2H_PORT_PINMUX(12, 1, 0x19)>; /* CANTX1 */
+       };
+
        /*
         * GMAC2 Pin Configuration:
         *
        };
 };
 
-&adc2 {
-       status = "okay";
-
-       channel@0 {
-               reg = <0x0>;
-       };
-
-       channel@1 {
-               reg = <0x1>;
-       };
-
-       channel@2 {
-               reg = <0x2>;
-       };
-
-       channel@3 {
-               reg = <0x3>;
-       };
-
-       channel@4 {
-               reg = <0x4>;
-       };
-
-       channel@5 {
-               reg = <0x5>;
-       };
-
-       channel@6 {
-               reg = <0x6>;
-       };
-
-       channel@7 {
-               reg = <0x7>;
-       };
-
-       channel@8 {
-               reg = <0x8>;
-       };
-
-       channel@9 {
-               reg = <0x9>;
-       };
-
-       channel@a {
-               reg = <0xa>;
-       };
-
-       channel@b {
-               reg = <0xb>;
-       };
-
-       channel@c {
-               reg = <0xc>;
-       };
-
-       channel@d {
-               reg = <0xd>;
-       };
-
-       channel@e {
-               reg = <0xe>;
-       };
-};
index 58561da3007a45cea4ff9ef86a70db28c71565df..b607b5d6c259e6becffb14fc9092ef51129925e4 100644 (file)
  *     0 - SMARC SDIO signal is connected to uSD1
  *     1 - SMARC SDIO signal is connected to M.2 Key E connector
  *
+ * Please set the switch position SW_OPT_MUX.4 on the carrier board and the
+ * corresponding macro SW_SER0_PMOD on the board DTS:
+ *
+ * SW_SER0_PMOD:
+ *     0 - SER0 signals connect to M.2 Key-E, SER2 signals are unconnected
+ *     1 - SER0 signals connect to PMOD, SER2 signals connect to M.2 Key-E
+ *
  * Please set the switch position SW_GPIO_CAN_PMOD on the carrier board and the
  * corresponding macro SW_GPIO8_CAN0_STB/SW_GPIO8_CAN0_STB on the board DTS:
  *
                stdout-path = "serial3:115200n8";
        };
 
-       aliases {
-               i2c0 = &i2c0;
-               serial3 = &scif0;
-               mmc1 = &sdhi1;
-       };
-
        can_transceiver0: can-phy0 {
                compatible = "ti,tcan1042";
                #phy-cells = <0>;
 
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index 7faa44510d98833bef396e9f069c7c2a4fe3991f..3b571c096752237a5bccd5a4cca20b43f2e0bc50 100644 (file)
  *      0 - SD0 is connected to eMMC (default)
  *      1 - SD0 is connected to uSD0 card
  *
+ * Switch position SYS.4, Macro SW_SER2_EN:
+ *      0 - Select Module DSI connector(GPIO)
+ *      1 - Select SER2
+ *
  * Switch position SYS.5, Macro SW_LCD_EN:
  *      0 - Select Misc. Signals routing
  *      1 - Select LCD
        };
 };
 
+&i3c {
+       pinctrl-0 = <&i3c_pins>;
+       pinctrl-names = "default";
+       i2c-scl-hz = <400000>;
+       i3c-scl-hz = <12500000>;
+       status = "okay";
+};
+
 &mdio0 {
        phy0: ethernet-phy@7 {
                compatible = "ethernet-phy-id0022.1640",
                         <RZG3E_PORT_PINMUX(3, 5, 1)>; /* SDA2 */
        };
 
+       i3c_pins: i3c {
+               pinmux = <RZG3E_PORT_PINMUX(2, 0, 2)>, /* I3C0_SCL */
+                        <RZG3E_PORT_PINMUX(2, 1, 2)>; /* I3C0_SDA */
+               drive-push-pull;
+       };
+
        rtc_irq_pin: rtc-irq {
                pins = "PS1";
                bias-pull-up;
index 6f25ab6179829ed2901033f1c70149c4a7a629bf..b45acfe6288a7c9ffa094b7a0f75ead5c81dbf8a 100644 (file)
                                       <100000000>;
                renesas,settings = [
                  80 00 11 19 4c 42 dc 2f 06 7d 20 1a 5f 1e f2 27
-                 00 40 00 00 00 00 00 00 06 0c 19 02 3f f0 90 86
+                 00 40 00 00 00 00 00 00 06 0c 19 02 3b f0 90 86
                  a0 80 30 30 9c
                ];
        };
 };
 
+&pcie_port0 {
+       clocks = <&versa3 5>;
+       clock-names = "ref";
+};
+
 #if SW_CONFIG2 == SW_ON
 /* SD0 slot */
 &sdhi0 {
index 6b0bb2c441af50d9ab413ea416a2a16d40494055..70af605168b07c51fe03b9925cb85957dbdab580 100644 (file)
        status = "okay";
 };
 
+&pcie {
+       pinctrl-0 = <&pcie_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &phyrst {
        status = "okay";
 };
                line-name = "key-3-gpio-irq";
        };
 
+       pcie_pins: pcie {
+               pinmux = <RZG2L_PORT_PINMUX(13, 2, 2)>, /* PCIE_RST_OUT_B */
+                        <RZG2L_PORT_PINMUX(13, 3, 2)>; /* PCIE_CLKREQ_B */
+       };
+
        scif0_pins: scif0 {
                pinmux = <RZG2L_PORT_PINMUX(6, 3, 1)>, /* RXD */
                         <RZG2L_PORT_PINMUX(6, 4, 1)>; /* TXD */
index 3eed1f3948e8eaf698cd82528384be3fb67ce5ca..f87c2492f414a45dc378e78f6b341eaa1045fd31 100644 (file)
@@ -53,6 +53,7 @@
                regulator-max-microvolt = <3300000>;
                gpios-states = <0>;
                states = <3300000 0>, <1800000 1>;
+               regulator-ramp-delay = <60>;
        };
 #endif
 
 #endif
 };
 
+/*
+ * ADC0 AN000 can be connected to a potentiometer on the board or
+ * exposed on ADC header.
+ *
+ * T2H:
+ * SW17[1] = ON, SW17[2] = OFF - Potentiometer
+ * SW17[1] = OFF, SW17[2] = ON  - CN41 header
+ * N2H:
+ * DSW6[1] = OFF, DSW6[2] = ON - Potentiometer
+ * DSW6[1] = ON, DSW6[2] = OFF - CN3 header
+ */
+&adc0 {
+       status = "okay";
+
+       channel@0 {
+               reg = <0x0>;
+       };
+
+       channel@1 {
+               reg = <0x1>;
+       };
+
+       channel@2 {
+               reg = <0x2>;
+       };
+
+       channel@3 {
+               reg = <0x3>;
+       };
+};
+
+/*
+ * ADC1 AN100 can be exposed on ADC header or on mikroBUS connector.
+ *
+ * T2H:
+ * SW18[1] = ON, SW18[2] = OFF - CN42 header
+ * SW18[1] = OFF, SW18[2] = ON - mikroBUS
+ * N2H:
+ * DSW6[3] = ON, DSW6[4] = OFF - CN4 header
+ * DSW6[3] = OFF, DSW6[4] = ON - mikroBUS
+ *
+ * ADC1 AN101 can be exposed on ADC header or on Grove2 connector.
+ *
+ * T2H:
+ * SW18[3] = ON, SW18[4] = OFF - CN42 header
+ * SW18[3] = OFF, SW18[4] = ON - Grove2
+ * N2H:
+ * DSW6[5] = ON, DSW6[6] = OFF - CN4 header
+ * DSW6[5] = OFF, DSW6[6] = ON - Grove2
+ *
+ * ADC1 AN102 can be exposed on ADC header or on Grove2 connector.
+ *
+ * T2H:
+ * SW18[5] = ON, SW18[6] = OFF - CN42 header
+ * SW18[5] = OFF, SW18[6] = ON - Grove2
+ * N2H:
+ * DSW6[7] = ON, DSW6[8] = OFF - CN4 header
+ * DSW6[7] = OFF, DSW6[8] = ON - Grove2
+ */
+&adc1 {
+       status = "okay";
+
+       channel@0 {
+               reg = <0x0>;
+       };
+
+       channel@1 {
+               reg = <0x1>;
+       };
+
+       channel@2 {
+               reg = <0x2>;
+       };
+
+       channel@3 {
+               reg = <0x3>;
+       };
+};
+
 &ehci {
        dr_mode = "otg";
        status = "okay";
                ctrl-pins {
                        pinmux = <RZT2H_PORT_PINMUX(12, 0, 0x29)>, /* SD0_CLK */
                                 <RZT2H_PORT_PINMUX(12, 1, 0x29)>, /* SD0_CMD */
-                                <RZT2H_PORT_PINMUX(22, 5, 0x29)>, /* SD0_CD */
-                                <RZT2H_PORT_PINMUX(22, 6, 0x29)>; /* SD0_WP */
+                                <RZT2H_PORT_PINMUX(22, 5, 0x29)>; /* SD0_CD */
                };
        };
 
        pinctrl-names = "default", "state_uhs";
        vmmc-supply = <&reg_3p3v>;
        vqmmc-supply = <&vqmmc_sdhi0>;
+       wp-gpios = <&pinctrl RZT2H_GPIO(22, 6) GPIO_ACTIVE_HIGH>;
        bus-width = <4>;
        sd-uhs-sdr50;
        sd-uhs-sdr104;
        timeout-sec = <60>;
 };
 
-/*
- * ADC0 AN000 can be connected to a potentiometer on the board or
- * exposed on ADC header.
- *
- * T2H:
- * SW17[1] = ON, SW17[2] = OFF - Potentiometer
- * SW17[1] = OFF, SW17[2] = ON  - CN41 header
- * N2H:
- * DSW6[1] = OFF, DSW6[2] = ON - Potentiometer
- * DSW6[1] = ON, DSW6[2] = OFF - CN3 header
- */
-&adc0 {
-       status = "okay";
-
-       channel@0 {
-               reg = <0x0>;
-       };
-
-       channel@1 {
-               reg = <0x1>;
-       };
-
-       channel@2 {
-               reg = <0x2>;
-       };
-
-       channel@3 {
-               reg = <0x3>;
-       };
-};
-
-/*
- * ADC1 AN100 can be exposed on ADC header or on mikroBUS connector.
- *
- * T2H:
- * SW18[1] = ON, SW18[2] = OFF - CN42 header
- * SW18[1] = OFF, SW18[2] = ON - mikroBUS
- * N2H:
- * DSW6[3] = ON, DSW6[4] = OFF - CN4 header
- * DSW6[3] = OFF, DSW6[4] = ON - mikroBUS
- *
- * ADC1 AN101 can be exposed on ADC header or on Grove2 connector.
- *
- * T2H:
- * SW18[3] = ON, SW18[4] = OFF - CN42 header
- * SW18[3] = OFF, SW18[4] = ON - Grove2
- * N2H:
- * DSW6[5] = ON, DSW6[6] = OFF - CN4 header
- * DSW6[5] = OFF, DSW6[6] = ON - Grove2
- *
- * ADC1 AN102 can be exposed on ADC header or on Grove2 connector.
- *
- * T2H:
- * SW18[5] = ON, SW18[6] = OFF - CN42 header
- * SW18[5] = OFF, SW18[6] = ON - Grove2
- * N2H:
- * DSW6[7] = ON, DSW6[8] = OFF - CN4 header
- * DSW6[7] = OFF, DSW6[8] = ON - Grove2
- */
-&adc1 {
-       status = "okay";
-
-       channel@0 {
-               reg = <0x0>;
-       };
-
-       channel@1 {
-               reg = <0x1>;
-       };
-
-       channel@2 {
-               reg = <0x2>;
-       };
-
-       channel@3 {
-               reg = <0x3>;
-       };
-};
index 0af1e0a6c7f482922a5bc2362a816549612d1091..fc53c1aae3b522a0cf559065506940d73031c953 100644 (file)
@@ -25,6 +25,7 @@
                regulator-max-microvolt = <3300000>;
                gpios-states = <0>;
                states = <3300000 0>, <1800000 1>;
+               regulator-ramp-delay = <60>;
        };
 };
 
index fa8bfee07b3c821c16787175a1c247340382658e..d4a921bed4c3939117ee2f1bfa4572956cba23bd 100644 (file)
                };
        };
 
-       cs2000: clk_multiplier@4f {
+       cs2000: clk-multiplier@4f {
                #clock-cells = <0>;
                compatible = "cirrus,cs2000-cp";
                reg = <0x4f>;
                                reg = <0x00040000 0x140000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
index a9e53b36f1d9cbcfa2383aa24654f5aca368424f..241caf737abbdb14300c2220f82686e52eb74460 100644 (file)
                                reg = <0x00040000 0x140000>;
                                read-only;
                        };
-                       cert_header_sa6@180000 {
+                       cert-header-sa6@180000 {
                                reg = <0x00180000 0x040000>;
                                read-only;
                        };
diff --git a/src/arm64/rockchip/rk3368-lion-haikou-video-demo.dtso b/src/arm64/rockchip/rk3368-lion-haikou-video-demo.dtso
new file mode 100644 (file)
index 0000000..2db0f3d
--- /dev/null
@@ -0,0 +1,170 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2025 Cherry Embedded Solutions GmbH
+ *
+ * DEVKIT ADDON CAM-TS-A01
+ * https://embedded.cherry.de/product/development-kit/
+ *
+ * DT-overlay for the camera / DSI demo appliance for Haikou boards.
+ * In the flavour for use with a Lion system-on-module.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/rk3368-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+&{/} {
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&dc_12v>;
+               pwms = <&pwm1 0 25000 0>;
+       };
+
+       cam_afvdd_2v8: regulator-cam-afvdd-2v8 {
+               compatible = "regulator-fixed";
+               gpio = <&pca9670 2 GPIO_ACTIVE_LOW>;
+               regulator-max-microvolt = <2800000>;
+               regulator-min-microvolt = <2800000>;
+               regulator-name = "cam-afvdd-2v8";
+               vin-supply = <&vcc2v8_video>;
+       };
+
+       cam_avdd_2v8: regulator-cam-avdd-2v8 {
+               compatible = "regulator-fixed";
+               gpio = <&pca9670 4 GPIO_ACTIVE_LOW>;
+               regulator-max-microvolt = <2800000>;
+               regulator-min-microvolt = <2800000>;
+               regulator-name = "cam-avdd-2v8";
+               vin-supply = <&vcc2v8_video>;
+       };
+
+       cam_dovdd_1v8: regulator-cam-dovdd-1v8 {
+               compatible = "regulator-fixed";
+               gpio = <&pca9670 3 GPIO_ACTIVE_LOW>;
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "cam-dovdd-1v8";
+               vin-supply = <&vcc1v8_video>;
+       };
+
+       cam_dvdd_1v2: regulator-cam-dvdd-1v2 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>;
+               regulator-max-microvolt = <1200000>;
+               regulator-min-microvolt = <1200000>;
+               regulator-name = "cam-dvdd-1v2";
+               vin-supply = <&vcc3v3_baseboard>;
+       };
+
+       vcc1v8_video: regulator-vcc1v8-video {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "vcc1v8-video";
+               vin-supply = <&vcc3v3_baseboard>;
+       };
+
+       vcc2v8_video: regulator-vcc2v8-video {
+               compatible = "regulator-fixed";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <2800000>;
+               regulator-min-microvolt = <2800000>;
+               regulator-name = "vcc2v8-video";
+               vin-supply = <&vcc3v3_baseboard>;
+       };
+
+       video-adapter-leds {
+               compatible = "gpio-leds";
+
+               video-adapter-led {
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>;
+                       label = "video-adapter-led";
+                       linux,default-trigger = "none";
+               };
+       };
+};
+
+&dphy {
+       status = "okay";
+};
+
+&i2c_gp2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       /* OV5675, GT911, DW9714 are limited to 400KHz */
+       clock-frequency = <400000>;
+
+       touchscreen@14 {
+               compatible = "goodix,gt911";
+               reg = <0x14>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PB5 IRQ_TYPE_LEVEL_LOW>;
+               irq-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&touch_int>;
+               pinctrl-names = "default";
+               reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>;
+               AVDD28-supply = <&vcc2v8_video>;
+               VDDIO-supply = <&vcc3v3_baseboard>;
+       };
+
+       pca9670: gpio@27 {
+               compatible = "nxp,pca9670";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               pinctrl-0 = <&pca9670_resetn>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&mipi_dsi {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "leadtek,ltk050h3148w";
+               reg = <0>;
+               backlight = <&backlight>;
+               iovcc-supply = <&vcc1v8_video>;
+               reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>;
+               vci-supply = <&vcc2v8_video>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+};
+
+&mipi_out {
+       mipi_out_panel: endpoint {
+               remote-endpoint = <&mipi_in_panel>;
+       };
+};
+
+&pinctrl {
+       pca9670 {
+               pca9670_resetn: pca9670-resetn {
+                       rockchip,pins = <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       touch {
+               touch_int: touch-int {
+                       rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
index ab70ee5f561a2921df38e798f1214f7da0413547..1b3a498d36243ead89208cc6190676770c7d244d 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
-       i2cmux2 {
-               i2c@0 {
-                       eeprom: eeprom@50 {
-                               compatible = "atmel,24c01";
-                               pagesize = <8>;
-                               reg = <0x50>;
-                       };
-               };
-       };
-
        leds {
                pinctrl-0 = <&module_led_pins>, <&sd_card_led_pin>;
 
        };
 };
 
+&display_subsystem {
+       status = "okay";
+};
+
+&hdmi {
+       status = "okay";
+};
+
+&i2c_lvds_blc {
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c01";
+               pagesize = <8>;
+               reg = <0x50>;
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
 &sdmmc {
        bus-width = <4>;
        cap-mmc-highspeed;
        status = "disabled";
 };
 
+&vop {
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
 &pinctrl {
        pinctrl-names = "default";
        pinctrl-0 = <&haikou_pin_hog>;
index 8ccc3184a83628ef09538e4f2a2168872d8408e6..4b4305b9005596e0feea9dcc5f6d58420f6e28c0 100644 (file)
        assigned-clocks = <&cru SCLK_MAC>;
        assigned-clock-parents = <&ext_gmac>;
        clock_in_out = "input";
+       phy-handle = <&vsc8531_2>;
        phy-supply = <&vcc33_io>;
        phy-mode = "rgmii";
        pinctrl-names = "default";
        pinctrl-0 = <&rgmii_pins>;
-       snps,reset-active-low;
-       snps,reset-delays-us = <0 10000 50000>;
-       snps,reset-gpio = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
        tx_delay = <0x10>;
        rx_delay = <0x10>;
        status = "okay";
 };
 
+&hdmi {
+       avdd-0v9-supply = <&vdd10_video>;
+       avdd-1v8-supply = <&vcc18_video>;
+};
+
 &i2c0 {
        status = "okay";
 
        status = "okay";
 };
 
+&mdio {
+       vsc8531_2: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&phy_rst>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <50000>;
+               reset-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_LOW>;
+       };
+};
+
 &pinctrl {
+       ethernet {
+               phy_rst: phy-rst {
+                       rockchip,pins = <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        leds {
                module_led_pins: module-led-pins {
                        rockchip,pins =
index ce4b112b082babfd281d4b14c19009dd3a5a41f9..98d350768fd2db1e4a02ba360f8322803ed02842 100644 (file)
                        "mac_clk_rx", "mac_clk_tx",
                        "clk_mac_ref", "clk_mac_refout",
                        "aclk_mac", "pclk_mac";
+               resets = <&cru SRST_MAC>;
+               reset-names = "stmmaceth";
                status = "disabled";
+
+               mdio: mdio {
+                       compatible = "snps,dwmac-mdio";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
        };
 
        usb_host0_ehci: usb@ff500000 {
                                reg = <0>;
                                remote-endpoint = <&dsi_in_vop>;
                        };
+
+                       vop_out_hdmi: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&hdmi_in_vop>;
+                       };
                };
        };
 
                status = "disabled";
        };
 
+       hdmi: hdmi@ff980000 {
+               compatible = "rockchip,rk3368-dw-hdmi";
+               reg = <0x0 0xff980000 0x0 0x20000>;
+               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>;
+               clock-names = "iahb", "isfr", "cec";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_i2c_xfer>;
+               power-domains = <&power RK3368_PD_VIO>;
+               reg-io-width = <4>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               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>;
+                       };
+               };
+       };
+
        hevc_mmu: iommu@ff9a0440 {
                compatible = "rockchip,iommu";
                reg = <0x0 0xff9a0440 0x0 0x40>,
                        };
                };
 
+               hdmi {
+                       hdmi_i2c_xfer: hdmi-i2c-xfer {
+                               rockchip,pins = <3 RK_PD2 1 &pcfg_pull_none>,
+                                               <3 RK_PD3 1 &pcfg_pull_none>;
+                       };
+               };
+
                i2c0 {
                        i2c0_xfer: i2c0-xfer {
                                rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>,
index 810ab6ff4e670b5324cdd386bce7d372e30e76fa..ae937a3afa1136a62b42c609fc6d28550c38411a 100644 (file)
        status = "okay";
 };
 
-&hdmi_sound {
-       status = "okay";
-};
-
 &i2c0 {
        clock-frequency = <400000>;
        i2c-scl-falling-time-ns = <4>;
                };
        };
 
-       wifi {
-               wifi_host_wake_l: wifi-host-wake-l {
-                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
-               };
-       };
-
        wireless-bluetooth {
                bt_wake_pin: bt-wake-pin {
                        rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
        sd-uhs-sdr104;
-       #address-cells = <1>;
-       #size-cells = <0>;
        status = "okay";
-
-       brcmf: wifi@1 {
-               compatible = "brcm,bcm4329-fmac";
-               reg = <1>;
-               interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "host-wake";
-               pinctrl-names = "default";
-               pinctrl-0 = <&wifi_host_wake_l>;
-       };
 };
 
 &sdhci {
index 5de964d369b09a768dd9a5a541ed89299afd98a7..8d26bd9b75003cfa8ff7e4921f1c94866db95d39 100644 (file)
        status = "okay";
 
        wcam: camera@1a {
-               compatible = "sony,imx258";
+               compatible = "sony,imx258-pdaf";
                reg = <0x1a>;
                clocks = <&cru SCLK_CIF_OUT>; /* MIPI_MCLK0, derived from CIF_CLKO */
                lens-focus = <&wcam_lens>;
                touchscreen-size-x = <720>;
                touchscreen-size-y = <1440>;
        };
+
+       light-sensor@48 {
+               compatible = "sensortek,stk3311";
+               reg = <0x48>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <RK_PD3 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&light_int_l>;
+               proximity-near-level = <300>;
+       };
 };
 
 &i2c4 {
                reg = <0x68>;
                interrupt-parent = <&gpio1>;
                interrupts = <RK_PC6 IRQ_TYPE_LEVEL_LOW>;
+               vdd-supply = <&vcc_1v8>;
                vddio-supply = <&vcc_1v8>;
+
+               mount-matrix =
+                       "1", "0", "0",
+                       "0", "-1", "0",
+                       "0", "0", "-1";
+       };
+};
+
+&i2c4 {
+       af8133j: compass@1c {
+               compatible = "voltafield,af8133j";
+               reg = <0x1c>;
+               avdd-supply = <&vcc_3v0>;
+               dvdd-supply = <&vcc_1v8>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&compass_rst_l>;
+               reset-gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;
+
+               mount-matrix =
+                       "0", "1", "0",
+                       "-1", "0", "0",
+                       "0", "0", "1";
        };
 };
 
                };
        };
 
+       compass {
+               compass_rst_l: compass-rst-l {
+                       rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        leds {
                red_led_pin: red-led-pin {
                        rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
 
+       stk3311 {
+               light_int_l: light-int-l {
+                       rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_input_pull_up>;
+               };
+       };
+
        wifi {
                wifi_host_wake_l: wifi-host-wake-l {
                        rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
index 8e3858cf988cb81a104a644f104ba32277f80770..4f2831097624e4cab363118515010f7e1ce3c168 100644 (file)
                reg = <0x11>;
                clocks = <&cru SCLK_I2S_8CH_OUT>;
                #sound-dai-cells = <0>;
+               AVDD-supply = <&vcca3v0_codec>;
+               DVDD-supply = <&vcca1v8_codec>;
+               HPVDD-supply = <&vcca3v0_codec>;
+               PVDD-supply = <&vcca1v8_codec>;
        };
 };
 
index fc9279627ef6921c5700eb77c8770b9daecb0a28..ac62e8f5d9f5207950ee7ded623c0e450c525463 100644 (file)
 
                        vcca3v0_codec: LDO_REG5 {
                                regulator-name = "vcca3v0_codec";
-                               regulator-always-on;
                                regulator-boot-on;
                                regulator-min-microvolt = <3000000>;
                                regulator-max-microvolt = <3000000>;
index 6d52e3723a4e40f13a3502f8c2a80de55fe8dea3..d9ff777b4913a0cbbbb901f4d00a8e2607c64c22 100644 (file)
                        regulator-off-in-suspend;
                };
        };
+
+       eeprom@50 {
+               compatible = "belling,bl24c04a", "atmel,24c04";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc_3v0_s0>;
+       };
 };
 
 &i2c3 {
index a8b8d4acc33712da01b3b93a0bffd1694aefe3be..c0b931b3c6409002cf2dfdde4ed3c5b559efcc2e 100644 (file)
@@ -8,6 +8,8 @@
 #include "rk3399-t.dtsi"
 #include "rk3399-rock-pi-4.dtsi"
 
+/delete-node/ &eeprom;
+
 / {
        model = "Radxa ROCK 4SE";
        compatible = "radxa,rock-4se", "rockchip,rk3399";
        };
 };
 
+&i2c0 {
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc_3v0>;
+       };
+};
+
 &sdio0 {
        status = "okay";
 
index 046dbe329017867d03f3db816885bd0f6eca880d..a8ab043e40620426420601cc967ac5d79e423fd9 100644 (file)
                        regulator-off-in-suspend;
                };
        };
+
+       eeprom: eeprom@50 {
+               compatible = "belling,bl24c04a", "atmel,24c04";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc_3v0>;
+       };
 };
 
 &i2c1 {
index 304e3c51391c2c6025f7daac4257087a33a9d52a..883d9bcfe792e7f1b17adececd9380996d472126 100644 (file)
                };
        };
 };
+
+&uart0 {
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               max-speed = <1500000>;
+       };
+};
index 4b42717800f777278802941f743c681c5c4c8465..ae3ee91dba2f07f9e650bbc07b3c36ff8ebd7456 100644 (file)
                };
        };
 };
+
+&uart0 {
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               max-speed = <1500000>;
+       };
+};
index 6e21579365a5b794f2e74092a050953f6f2489c4..c41af8fc0c8d14fbb8369c3e41fa08a03e3cc1f0 100644 (file)
        };
 };
 
+&combphy {
+       status = "okay";
+};
+
 &cpu0 {
        cpu-supply = <&vdd_arm>;
 };
        };
 };
 
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20_perstn>;
+       reset-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
 &pinctrl {
        bluetooth {
                bt_reg_on_h: bt-reg-on-h {
                };
        };
 
+       pcie {
+               pcie20_perstn: pcie20-perstn {
+                       rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        rtc {
                rtc_int_l: rtc-int-l {
                        rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
index 5c6f8cc401c9f493bdb4eb1652561343fcf3e920..791719acb9dd0aebec6f7693ca36eb24476886d5 100644 (file)
                        };
                };
        };
+
+       ebc_pmic: pmic@68 {
+               compatible = "ti,tps65185";
+               reg = <0x68>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
+               enable-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&ebc_pmic_pins>;
+               pinctrl-names = "default";
+               pwr-good-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
+               vcom-ctrl-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&vcc_bat>;
+               wakeup-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
+
+               regulators {
+                       v3p3: v3p3 {
+                               regulator-name = "v3p3";
+                               /* Keep it always on because IRQ is pulled up against this line */
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       vcom: vcom {
+                               regulator-name = "vcom";
+                       };
+
+                       vposneg: vposneg {
+                               regulator-name = "vposneg";
+                               regulator-min-microvolt = <15000000>;
+                               regulator-max-microvolt = <15000000>;
+                       };
+               };
+       };
 };
 
 &i2c5 {
                };
        };
 
+       ebc-pmic {
+               ebc_pmic_pins: ebc-pmic-pins {
+                       rockchip,pins = /* wakeup */
+                                       <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       /* int */
+                                       <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
+                                       /* pwr_good */
+                                       <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       /* pwrup */
+                                       <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       /* vcom_ctrl */
+                                       <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        led {
                led_pin: led-pin {
                        rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
diff --git a/src/arm64/rockchip/rk3566-qnap-ts133.dts b/src/arm64/rockchip/rk3566-qnap-ts133.dts
new file mode 100644 (file)
index 0000000..d605a71
--- /dev/null
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2024 Heiko Stuebner <heiko@sntech.de>
+ */
+
+/dts-v1/;
+
+#include "rk3566.dtsi"
+#include "rk3568-qnap-tsx33.dtsi"
+
+/ {
+       model = "Qnap TS-133-2G NAS System 1-Bay";
+       compatible = "qnap,ts133", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+       };
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
+       assigned-clock-rates = <0>, <125000000>;
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy0>;
+       phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_rgmii_bus>;
+       status = "okay";
+};
+
+&mcu {
+       compatible = "qnap,ts133-mcu";
+};
+
+&mdio1 {
+       rgmii_phy0: ethernet-phy@3 {
+               /* Motorcomm YT8521 phy */
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x3>;
+               pinctrl-0 = <&eth_phy0_reset_pin>;
+               pinctrl-names = "default";
+               reset-assert-us = <10000>;
+               reset-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       gmac1 {
+               eth_phy0_reset_pin: eth-phy0-reset-pin {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+/* connected to usb_host1_xhci */
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_otg>;
+       status = "okay";
+};
+
+/* USB3 port on backside */
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
index 80ac40555e023a7fb3660b0372cb1e06013fdf6d..fa28b32f6910835f5dfd7aad90c53276e903059c 100644 (file)
                compatible = "belling,bl24c16a", "atmel,24c16";
                reg = <0x50>;
                pagesize = <16>;
+               read-only;
                vcc-supply = <&vcca1v8_pmu>;
        };
 };
diff --git a/src/arm64/rockchip/rk3568-anbernic-rg-ds.dts b/src/arm64/rockchip/rk3568-anbernic-rg-ds.dts
new file mode 100644 (file)
index 0000000..6ac1fe0
--- /dev/null
@@ -0,0 +1,1237 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.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 "rk3568.dtsi"
+
+/ {
+       model = "Anbernic RG DS";
+       chassis-type = "handset";
+       compatible = "anbernic,rg-ds", "rockchip,rk3568";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc2;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       adc_keys_home: adc-keys-home {
+               compatible = "adc-keys";
+               io-channel-names = "buttons";
+               io-channels = <&saradc 0>;
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <60>;
+
+               button-home {
+                       label = "HOME";
+                       linux,code = <BTN_MODE>;
+                       press-threshold-microvolt = <1750>;
+               };
+       };
+
+       adc_keys_play: adc-keys-play {
+               compatible = "adc-keys";
+               io-channel-names = "buttons";
+               io-channels = <&saradc 2>;
+               keyup-threshold-microvolt = <1300000>;
+               poll-interval = <60>;
+
+               button-play {
+                       label = "PLAY";
+                       linux,code = <KEY_PLAYPAUSE>;
+                       press-threshold-microvolt = <1750>;
+               };
+       };
+
+       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>;
+       };
+
+       adc-joystick {
+               compatible = "adc-joystick";
+               #address-cells = <1>;
+               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>;
+               #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_RY>;
+               };
+
+               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 = <15 1023>;
+                       linux,code = <ABS_RX>;
+               };
+       };
+
+       backlight0: backlight0 {
+               compatible = "pwm-backlight";
+               enable-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
+               pwms = <&pwm12 0 25000 0>;
+       };
+
+       backlight1: backlight1 {
+               compatible = "pwm-backlight";
+               enable-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pwms = <&pwm13 0 25000 0>;
+       };
+
+       /*
+        * Values taken from BSP device-tree except for
+        * "charge-full-design-microamp-hours" which was set
+        * incorrectly at 2500000 (based on markings on the battery it
+        * should be 4000000), "factory-internal-resistance-micro-ohms"
+        * which was set at 8 but based on context should likely be 80000.
+        *
+        * "constant-charge-current-max-microamp" is set at 10 AMPs
+        * which is likely incorrect but I cannot validate; furthermore
+        * the onboard charger of the rk817 cannot charge past 3.5A
+        * anyway.
+        */
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <4000000>;
+               charge-term-current-microamp = <300000>;
+               constant-charge-current-max-microamp = <10000000>;
+               constant-charge-voltage-max-microvolt = <4350000>;
+               factory-internal-resistance-micro-ohms = <80000>;
+               precharge-current-microamp = <180000>;
+               precharge-upper-limit-microvolt = <3600000>;
+               voltage-max-design-microvolt = <4350000>;
+               voltage-min-design-microvolt = <3000000>;
+
+               /*
+                * BSP device-tree missing value for 5 percent, so I
+                * picked a value between 10 and 0.
+                */
+               ocv-capacity-celsius = <20>;
+               ocv-capacity-table-0 =  <4338000 100>, <4251000 95>,
+                                       <4191000 90>, <4136000 85>,
+                                       <4083000 80>, <4039000 75>,
+                                       <3978000 70>, <3947000 65>,
+                                       <3908000 60>, <3861000 55>,
+                                       <3826000 50>, <3786000 45>,
+                                       <3772000 40>, <3761000 35>,
+                                       <3749000 30>, <3731000 25>,
+                                       <3707000 20>, <3677000 15>,
+                                       <3663000 10>, <3446000 5>,
+                                       <3400000 0>;
+       };
+
+       gpio_keys_control: gpio-keys-control {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&gamepad_keys_l>;
+               pinctrl-names = "default";
+
+               button-a {
+                       gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+                       label = "EAST";
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+                       label = "SOUTH";
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       gpios = <&gpio2 RK_PD5 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-DOWN";
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-l1 {
+                       gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_LOW>;
+                       label = "TL";
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "TL2";
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       gpios = <&gpio2 RK_PD7 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-LEFT";
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-menu {
+                       gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
+                       label = "HOME";
+                       linux,code = <KEY_HOME>;
+               };
+
+               button-right {
+                       gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-RIGHT";
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-r1 {
+                       gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "T2";
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
+                       label = "TR2";
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-select {
+                       gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "SELECT";
+                       linux,code = <BTN_SELECT>;
+               };
+
+               button-start {
+                       gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
+                       label = "START";
+                       linux,code = <BTN_START>;
+               };
+
+               button-thumbl {
+                       gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_LOW>;
+                       label = "THUMBL";
+                       linux,code = <BTN_THUMBL>;
+               };
+
+               button-thumbr {
+                       gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
+                       label = "THUMBR";
+                       linux,code = <BTN_THUMBR>;
+               };
+
+               button-up {
+                       gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-UP";
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
+                       label = "NORTH";
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
+                       label = "WEST";
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       gpio_keys_hall: gpio-keys-hall {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&hall_int_l>;
+               pinctrl-names = "default";
+
+               lid-switch {
+                       gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
+                       label = "LID";
+                       linux,code = <SW_LID>;
+                       linux,input-type = <EV_SW>;
+                       wakeup-event-action = <EV_ACT_DEASSERTED>;
+                       wakeup-source;
+               };
+       };
+
+       gpio_keys_volume: gpio-keys-volume {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-0 = <&vol_keys_l>;
+               pinctrl-names = "default";
+
+               vol-down-key {
+                       gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEDOWN";
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               vol-up-key {
+                       gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
+                       label = "VOLUMEUP";
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       gpio_mux: mux-controller {
+               compatible = "gpio-mux";
+               #mux-control-cells = <0>;
+               mux-gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>,
+                           <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&joy_mux_config>;
+               pinctrl-names = "default";
+       };
+
+       leds: pwm-leds {
+               compatible = "pwm-leds";
+
+               green_led: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       max-brightness = <255>;
+                       pwms = <&pwm5 0 25000 0>;
+               };
+
+               amber_led: led-1 {
+                       color = <LED_COLOR_ID_AMBER>;
+                       function = LED_FUNCTION_CHARGING;
+                       max-brightness = <255>;
+                       pwms = <&pwm6 0 25000 0>;
+               };
+
+               red_led: led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_STATUS;
+                       max-brightness = <255>;
+                       pwms = <&pwm7 0 25000 0>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clock-names = "ext_clock";
+               clocks = <&rk817 1>;
+               pinctrl-0 = <&wifi_enable_h>;
+               pinctrl-names = "default";
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_LOW>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-0 = <&hp_det>;
+               pinctrl-names = "default";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,hp-det-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,name = "rk817_ext";
+               simple-audio-card,pin-switches = "Internal Speakers";
+               simple-audio-card,routing =
+                       "MICL", "Mic Jack",
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR",
+                       "Internal Speakers", "HPOL",
+                       "Internal Speakers", "HPOR";
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Headphone", "Headphones",
+                       "Speaker", "Internal Speakers";
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk817>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+       };
+
+       vdd_lcd0: regulator-vdd-lcd0 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vdd_lcd0_h>;
+               pinctrl-names = "default";
+               regulator-name = "vdd_lcd0";
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vccio_lcd0: regulator-vccio-lcd0 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vccio_lcd0_h>;
+               pinctrl-names = "default";
+               regulator-name = "vccio_lcd0";
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_lcd1: regulator-vdd-lcd1 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vdd_lcd1_h>;
+               pinctrl-names = "default";
+               regulator-name = "vdd_lcd1";
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vccio_lcd1: regulator-vccio-lcd1 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&vccio_lcd1_h>;
+               pinctrl-names = "default";
+               regulator-name = "vccio_lcd1";
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vcc3v3_sd: regulator-vcc3v3-sd {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&sdmmc_pwren_l>;
+               pinctrl-names = "default";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "vcc3v3_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vccio_sd>;
+       };
+
+       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";
+       };
+
+       vibrator: pwm-vibrator {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm14 0 100000 0>;
+               vcc-supply = <&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";
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cru {
+       assigned-clocks = <&pmucru CLK_RTC_32K>, <&cru PLL_GPLL>,
+                         <&pmucru PLL_PPLL>, <&cru PLL_VPLL>;
+       assigned-clock-rates = <32768>, <1200000000>,
+                              <200000000>, <292500000>;
+};
+
+&dsi0 {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       ports {
+               dsi0_in: port@0 {
+                       reg = <0>;
+                       dsi0_in_vp0: endpoint {
+                               remote-endpoint = <&vp0_out_dsi0>;
+                       };
+               };
+
+               dsi0_out: port@1 {
+                       reg = <1>;
+                       mipi_out_panel0: endpoint {
+                               remote-endpoint = <&mipi_in_panel0>;
+                       };
+               };
+       };
+
+       panel0: panel@0 {
+               compatible = "anbernic,rg-ds-display-bottom", "jadard,jd9365da-h3";
+               reg = <0>;
+               backlight = <&backlight0>;
+               pinctrl-0 = <&lcd0_rst>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&vdd_lcd0>;
+               vccio-supply = <&vccio_lcd0>;
+
+               port {
+                       mipi_in_panel0: endpoint {
+                               remote-endpoint = <&mipi_out_panel0>;
+                       };
+               };
+       };
+};
+
+&dsi1 {
+       status = "okay";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       ports {
+               dsi1_in: port@0 {
+                       reg = <0>;
+                       dsi1_in_vp1: endpoint {
+                               remote-endpoint = <&vp1_out_dsi1>;
+                       };
+               };
+
+               dsi1_out: port@1 {
+                       reg = <1>;
+                       mipi_out_panel1: endpoint {
+                               remote-endpoint = <&mipi_in_panel1>;
+                       };
+               };
+       };
+
+       panel1: panel@0 {
+               compatible = "anbernic,rg-ds-display-top", "jadard,jd9365da-h3";
+               reg = <0>;
+               backlight = <&backlight1>;
+               pinctrl-0 = <&lcd1_rst>;
+               pinctrl-names = "default";
+               reset-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&vdd_lcd1>;
+               vccio-supply = <&vccio_lcd1>;
+
+               port {
+                       mipi_in_panel1: endpoint {
+                               remote-endpoint = <&mipi_out_panel1>;
+                       };
+               };
+       };
+};
+
+&dsi_dphy0 {
+       status = "okay";
+};
+
+&dsi_dphy1 {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk817: pmic@20 {
+               compatible = "rockchip,rk817";
+               reg = <0x20>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               #clock-cells = <1>;
+               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-0 = <&i2s1m0_mclk &pmic_int_l>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <0>;
+               system-power-controller;
+               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-initial-mode = <0x2>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-min-microvolt = <900000>;
+                               regulator-name = "vdd_logic";
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-min-microvolt = <825000>;
+                               regulator-name = "vdd_gpu";
+                               regulator-ramp-delay = <6001>;
+                               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-initial-mode = <0x2>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               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-max-microvolt = <1800000>;
+                               regulator-min-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-max-microvolt = <900000>;
+                               regulator-min-microvolt = <900000>;
+                               regulator-name = "vdda_0v9";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <900000>;
+                               regulator-min-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-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vccio_acodec";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       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-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               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>;
+                               };
+                       };
+
+                       vcc_1v8: LDO_REG7 {
+                               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;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc2v8_dvp: LDO_REG9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-min-microvolt = <2800000>;
+                               regulator-name = "vcc2v8_dvp";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       dcdc_boost: BOOST {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <5400000>;
+                               regulator-min-microvolt = <4700000>;
+                               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@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <1390000>;
+               regulator-min-microvolt = <712500>;
+               regulator-name = "vdd_cpu";
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc_sys>;
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       /*
+        * Currently the rk817_charger and the cw2015 don't work together.
+        * Disable the cw2015 for now because it performs the same function
+        * as the rk817_charger for battery monitoring.
+        */
+       cw2015: battery@62 {
+               compatible = "cellwise,cw2015";
+               reg = <0x62>;
+               cellwise,battery-profile = /bits/ 8
+                               < 0x17 0x67 0x81 0x6F 0x69 0x65 0x63 0x54
+                                0x75 0x50 0x57 0x56 0x4E 0x4F 0x44 0x35
+                                0x2C 0x24 0x1E 0x1B 0x24 0x32 0x41 0x4D
+                                0x1C 0x57 0x0B 0x85 0x34 0x54 0x59 0x6D
+                                0x85 0x81 0x81 0x84 0x3C 0x1B 0x6C 0x6C
+                                0x0B 0x41 0x1C 0x4D 0x80 0x95 0xA0 0x14
+                                0x38 0x7E 0x98 0xA3 0x80 0x89 0x97 0xCB
+                                0x2F 0x00 0x64 0xA5 0xB5 0xC1 0x46 0xAE>;
+               cellwise,monitor-interval-ms = <5000>;
+               monitored-battery = <&battery>;
+               power-supplies = <&rk817_charger>;
+               status = "disabled";
+       };
+};
+
+&i2c2 {
+       clock-frequency = <200000>;
+       pinctrl-0 = <&i2c2m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       /* awinic,aw87391 at 0x58 */
+       /* awinic,aw87391 at 0x5b */
+       /* invensense,icm42607p at 0x68 */
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c3m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       touch1: touchscreen@14 {
+               compatible = "goodix,gt911";
+               reg = <0x14>;
+               AVDD28-supply = <&vcc2v8_dvp>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PC0 IRQ_TYPE_LEVEL_LOW>;
+               irq-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
+               panel = <&panel1>;
+               reset-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+               touchscreen-size-x = <640>;
+               touchscreen-size-y = <480>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+               pinctrl-0 = <&touch1_rst &touch1_irq>;
+               pinctrl-names = "default";
+               VDDIO-supply = <&vcc3v3_pmu>;
+       };
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c5m0_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       touch0: touchscreen@14 {
+               compatible = "goodix,gt911";
+               reg = <0x14>;
+               AVDD28-supply = <&vcc2v8_dvp>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB6 IRQ_TYPE_LEVEL_LOW>;
+               irq-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+               panel = <&panel0>;
+               reset-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+               touchscreen-size-x = <640>;
+               touchscreen-size-y = <480>;
+               pinctrl-0 = <&touch0_rst &touch0_irq>;
+               pinctrl-names = "default";
+               VDDIO-supply = <&vcc3v3_pmu>;
+       };
+
+       /* Unused iSmartWare SW2001 encryption device at 0x3c */
+};
+
+&i2s1_8ch {
+       pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
+       pinctrl-names = "default";
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&pinctrl {
+       gpio-keys {
+               vol_keys_l: vol-keys_l {
+                       rockchip,pins =
+                               <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               gamepad_keys_l: gamepad-keys-l {
+                       rockchip,pins =
+                               <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PD7 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_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PB0 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_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-lcd {
+               lcd0_rst: lcd0-rst {
+                       rockchip,pins =
+                               <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               lcd1_rst: lcd1-rst {
+                       rockchip,pins =
+                               <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hall-sensor {
+               hall_int_l: hal-int-l {
+                       rockchip,pins =
+                               <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hp-detect {
+               hp_det: hp-det {
+                       rockchip,pins =
+                               <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       joy-mux {
+               joy_mux_en: joy-mux-en {
+                       rockchip,pins =
+                               <3 RK_PC1 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+
+               joy_mux_config: joy-mux-config {
+                       rockchip,pins =
+                               <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC3 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>;
+               };
+       };
+
+       sdmmc {
+               sdmmc_pwren_l: sdmmc-pwren-l {
+                       rockchip,pins =
+                               <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       touch {
+               touch0_rst: touch0-rst {
+                       rockchip,pins =
+                               <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               touch0_irq: touch0-irq {
+                       rockchip,pins =
+                               <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               touch1_rst: touch1-rst {
+                       rockchip,pins =
+                               <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               touch1_irq: touch1-irq {
+                       rockchip,pins =
+                               <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       vcc-lcd {
+               vdd_lcd0_h: vdd-lcd0-h {
+                       rockchip,pins =
+                               <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vccio_lcd0_h: vccio-lcd0-h {
+                       rockchip,pins =
+                               <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vdd_lcd1_h: vdd-lcd1-h {
+                       rockchip,pins =
+                               <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vccio_lcd1_h: vccio-lcd1-h {
+                       rockchip,pins =
+                               <0 RK_PC1 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>;
+               };
+       };
+
+       wifi-irq {
+               wifi_host_wake_irq: wifi-host-wake-irq {
+                       rockchip,pins =
+                               <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       status = "okay";
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_3v3>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_1v8>;
+       vccio7-supply = <&vcc_3v3>;
+};
+
+&pwm5 {
+       pinctrl-0 = <&pwm5_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm6 {
+       pinctrl-0 = <&pwm6_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm7 {
+       pinctrl-0 = <&pwm7_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm12 {
+       pinctrl-0 = <&pwm12m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm13 {
+       pinctrl-0 = <&pwm13m1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pwm14 {
+       pinctrl-0 = <&pwm14m0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       no-sd;
+       no-sdio;
+       non-removable;
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>;
+       pinctrl-names = "default";
+       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 = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc2 {
+       #address-cells = <1>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       max-frequency = <100000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_clk &sdmmc2m0_cmd>;
+       pinctrl-names = "default";
+       sd-uhs-sdr104;
+       #size-cells = <0>;
+       vmmc-supply = <&vcc_wifi>;
+       status = "okay";
+
+       sdio_wifi: wifi@1 {
+               reg = <1>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <RK_PA1 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "host-wake";
+               pinctrl-0 = <&wifi_host_wake_irq>;
+               pinctrl-names = "default";
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <0>;
+       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 = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+/* No DMA for a debug serial console. */
+&uart2 {
+       /delete-property/ dmas;
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "peripheral";
+       phy-names = "usb2-phy";
+       phys = <&usb2phy0_otg>;
+       maximum-speed = "high-speed";
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&cru PLL_VPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 {
+               reg = <ROCKCHIP_VOP2_EP_MIPI0>;
+               remote-endpoint = <&dsi0_in_vp0>;
+       };
+};
+
+&vp1 {
+       vp1_out_dsi1: endpoint@ROCKCHIP_VOP2_EP_MIPI1 {
+               reg = <ROCKCHIP_VOP2_EP_MIPI1>;
+               remote-endpoint = <&dsi1_in_vp1>;
+       };
+};
index f16d1c6287939d7b80ce45c7a5d0553252fb8da5..52b741376ef5abc980c6b2621d3498da7f8d98a6 100644 (file)
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 
+#include "rk3568.dtsi"
 #include "rk3568-qnap-tsx33.dtsi"
 
 / {
@@ -17,8 +18,8 @@
        };
 };
 
-/* connected to sata2 */
-&combphy2 {
+/* Connected to usb_host0_xhci */
+&combphy0 {
        status = "okay";
 };
 
        };
 };
 
+&keys {
+               pinctrl-names = "default";
+               pinctrl-0 = <&copy_button_pin>, <&reset_button_pin>;
+
+               key-copy {
+                       label = "copy";
+                       gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_COPY>;
+               };
+};
+
 &leds {
        led-1 {
                color = <LED_COLOR_ID_GREEN>;
        };
 };
 
-&sata2 {
+&sata1 {
        status = "okay";
 };
 
index d1e3b7e7a280a13aaf11fe221ec1a82a1dce97f7..7d2aedfe616def42163e3680321f3b029b9b3766 100644 (file)
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 
+#include "rk3568.dtsi"
 #include "rk3568-qnap-tsx33.dtsi"
 
 / {
@@ -27,8 +28,8 @@
        };
 };
 
-/* connected to sata2 */
-&combphy2 {
+/* Connected to usb_host0_xhci */
+&combphy0 {
        status = "okay";
 };
 
        };
 };
 
+&keys {
+               pinctrl-names = "default";
+               pinctrl-0 = <&copy_button_pin>, <&reset_button_pin>;
+
+               key-copy {
+                       label = "copy";
+                       gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_COPY>;
+               };
+};
+
 &leds {
        led-1 {
                color = <LED_COLOR_ID_GREEN>;
        };
 };
 
-&sata2 {
+&sata1 {
        status = "okay";
 };
 
index f009275c72c8b324beac2c20a58f63cc940fe3cd..cca7b7d0685f02491398f3b70a10113ab61f24ef 100644 (file)
@@ -1,7 +1,6 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/gpio/gpio.h>
-#include "rk3568.dtsi"
 
 / {
        aliases {
                stdout-path = "serial2:115200n8";
        };
 
-       keys {
+       keys: keys {
                compatible = "gpio-keys";
-               pinctrl-0 = <&copy_button_pin>, <&reset_button_pin>;
+               pinctrl-0 = <&reset_button_pin>;
                pinctrl-names = "default";
 
-               key-copy {
-                       label = "copy";
-                       gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_COPY>;
-               };
-
                key-reset {
                        label = "reset";
                        gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>;
        };
 };
 
-/* connected to usb_host0_xhci */
-&combphy0 {
+/* Connected USB3 on TS133 / SATA1 on all the others */
+&combphy1 {
        status = "okay";
 };
 
-/* connected to sata1 */
-&combphy1 {
+/* Connected to SATA2 */
+&combphy2 {
        status = "okay";
 };
 
        status = "okay";
 };
 
-&sata1 {
+&sata2 {
        status = "okay";
 };
 
index 729e38b9f620eb1e49b74c7e558685f427c4ccff..f97a0eb7f7c0853b3918c15e8b17dd300e1e827b 100644 (file)
                                };
                        };
 
-                       vcc_3v3: SWITCH_REG1 {
+                       gpio_vref: vcc_3v3: SWITCH_REG1 {
                                regulator-name = "vcc_3v3";
                                regulator-always-on;
                                regulator-boot-on;
                        };
                };
        };
+
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&gpio_vref>;
+       };
 };
 
 &pinctrl {
diff --git a/src/arm64/rockchip/rk3568-radxa-cm3j-rpi-cm4.dts b/src/arm64/rockchip/rk3568-radxa-cm3j-rpi-cm4.dts
new file mode 100644 (file)
index 0000000..b91ac0c
--- /dev/null
@@ -0,0 +1,204 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2025 Radxa Computer (Shenzhen) Co., Ltd.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3568-radxa-cm3j.dtsi"
+
+/ {
+       model = "Radxa CM3J on RPi CM4 IO Board";
+       compatible = "radxa,cm3j-rpi-cm4", "radxa,cm3j", "rockchip,rk3568";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc1 = &sdmmc0;
+               rtc0 = &pcf85063;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds-1 {
+               compatible = "gpio-leds";
+
+               led-1 {
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&npwr_led>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pi_nled_activity>;
+               };
+       };
+
+       dc12v: regulator-12v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "dc12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       dc3v3_pcie: regulator-3v3-2 {
+               compatible = "regulator-fixed";
+               regulator-name = "dc3v3_pcie";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&dc12v>;
+       };
+
+       gpio_vref: regulator-3v3-3 {
+               compatible = "regulator-fixed";
+               regulator-name = "gpio_vref";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&dc3v3>;
+       };
+
+       dc5v: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "dc5v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc12v>;
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&combphy2 {
+       status = "okay";
+};
+
+&gmac1 {
+       status = "okay";
+};
+
+&gpio0 {
+       nextrst-hog {
+               gpio-hog;
+               /*
+                * GPIO_ACTIVE_LOW + output-low here means that the pin is set
+                * to high, because output-low decides the value pre-inversion.
+                */
+               gpios = <RK_PC0 GPIO_ACTIVE_LOW>;
+               line-name = "nEXTRST";
+               output-low;
+       };
+};
+
+&hdmi {
+       status = "okay";
+};
+
+&hdmi_sound {
+       status = "okay";
+};
+
+&i2c0 {
+       emc2301: fan-controller@2f {
+               compatible = "microchip,emc2301", "microchip,emc2305";
+               reg = <0x2f>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               #pwm-cells = <3>;
+
+               fan@0 {
+                       reg = <0x0>;
+                       pwms = <&emc2301 26000 0 1>;
+                       #cooling-cells = <2>;
+               };
+       };
+
+       pcf85063: rtc@51 {
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               wakeup-source;
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&pinctrl {
+       leds {
+               npwr_led: npwr-led {
+                       rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pi_nled_activity: pi-nled-activity {
+                       rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pcie2x1 {
+       vpcie3v3-supply = <&dc3v3_pcie>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       broken-cd;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>;
+       vmmc-supply = <&dc3v3>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3568-radxa-cm3j.dtsi b/src/arm64/rockchip/rk3568-radxa-cm3j.dtsi
new file mode 100644 (file)
index 0000000..f21e849
--- /dev/null
@@ -0,0 +1,558 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2025 Radxa Computer (Shenzhen) Co., Ltd.
+ */
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568.dtsi"
+
+/ {
+       aliases {
+               mmc0 = &sdhci;
+               mmc2 = &sdmmc2;
+       };
+
+       gmac1_clkin: clock-125m {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac1_clkin";
+               #clock-cells = <0>;
+       };
+
+       leds-0 {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio0_b4_led>;
+               };
+       };
+
+       vcc3v3_sys: regulator-3v3-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&dc5v>;
+       };
+
+       vcc_3v3_1: regulator-3v3-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_1";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_reg_on_h_gpio3_d4>;
+               reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>;
+       clock_in_out = "input";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3_1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_clkinout
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_rgmii_bus>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vdda0v9_image>;
+       avdd-1v8-supply = <&vcca1v8_image>;
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               #clock-cells = <1>;
+               clock-output-names = "rk809-clkout1", "rk809-clkout2";
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               system-power-controller;
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               wakeup-source;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       dc1v8: vccio_flash: vcc_1v8: DCDC_REG5 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       dc3v3: vcc_3v3: SWITCH_REG1 {
+                               regulator-name = "vcc_3v3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       vdd_cpu: regulator@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1390000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&dc5v>;
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&gpio_vref>;
+       };
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@0 {
+               compatible = "ethernet-phy-id001c.c916";
+               reg = <0x0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gmac1_rstn_gpio3_b0>; // GPIO4_C3
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       bluetooth {
+               bt_reg_on_h_gpio4_b2: bt-reg-on-h-gpio4-b2 {
+                       rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_h_gpio4_b4: bt-wake-host-h-gpio4-b4 {
+                       rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               host_wake_bt_h_gpio4_b5: host-wake-bt-h-gpio4-b5 {
+                       rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ethernet {
+               gmac1_rstn_gpio3_b0: gmac1-rstn-gpio3-b0 {
+                       rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               gpio0_b4_led: gpio0-b4-led {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie20_clkreqnm2: pcie20_clkreqnm2 {
+                       rockchip,pins = <1 RK_PB0 4 &pcfg_pull_none>;
+               };
+
+               pcie_nrst: pcie-nrst {
+                       rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       wifi {
+               wifi_reg_on_h_gpio3_d4: wifi-reg-on-h-gpio3-d4 {
+                       rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20_clkreqnm2 &pcie_nrst>;
+       reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
+       supports-clkreq;
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc_3v3>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vccio_flash>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_1v8>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       max-frequency = <200000000>;
+       no-sd;
+       no-sdio;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vccio_flash>;
+       status = "okay";
+};
+
+&sdmmc2 {
+       #address-cells = <1>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       keep-power-in-suspend;
+       max-frequency = <200000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_clk &sdmmc2m0_cmd>;
+       sd-uhs-sdr104;
+       #size-cells = <0>;
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+       };
+};
+
+&sfc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <104000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+               vcc-supply = <&vccio_flash>;
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart8 {
+       dma-names = "tx", "rx";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn &uart8m0_rtsn>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               clocks = <&rk809 1>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+               max-speed = <1500000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_reg_on_h_gpio4_b2
+                            &bt_wake_host_h_gpio4_b4
+                            &host_wake_bt_h_gpio4_b5>;
+               shutdown-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
+               vbat-supply = <&vcc_3v3_1>;
+               vddio-supply = <&vcc_1v8>;
+       };
+};
+
+&usb_host0_xhci {
+       extcon = <&usb2phy0>;
+       maximum-speed = "high-speed";
+       phys = <&usb2phy0_otg>;
+       phy-names = "usb2-phy";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index 44cfdfeed6681388202fa8f91683d1b86f3f8d54..9214e38648f257e8c349a265e48b202c6c87ec84 100644 (file)
                        };
                };
        };
+
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc3v3_pmu>;
+       };
 };
 
 &i2c3 {
index 3d0c1ccfaa79635c05c7e1526e30f8d02695aa84..69001e453732ecf714fe0bf9cd159dd12ce8d8c2 100644 (file)
                        };
                };
        };
+
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc3v3_sys>;
+       };
 };
 
 &i2c5 {
index e719a3df126c59ce532d3e26cf358fd2160c1d9c..658097ed69714a82f6e7e8870bc35fc285ad1b86 100644 (file)
                      <0x0 0xf2000000 0x0 0x00100000>;
                ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x01e00000>,
-                        <0x03000000 0x0 0x40000000 0x3 0x40000000 0x0 0x40000000>;
+                        <0x03000000 0x3 0x40000000 0x3 0x40000000 0x0 0x40000000>;
                reg-names = "dbi", "apb", "config";
                resets = <&cru SRST_PCIE30X1_POWERUP>;
                reset-names = "pipe";
                      <0x0 0xf0000000 0x0 0x00100000>;
                ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x01e00000>,
-                        <0x03000000 0x0 0x40000000 0x3 0x80000000 0x0 0x40000000>;
+                        <0x03000000 0x3 0x80000000 0x3 0x80000000 0x0 0x40000000>;
                reg-names = "dbi", "apb", "config";
                resets = <&cru SRST_PCIE30X2_POWERUP>;
                reset-names = "pipe";
index 8893b7b6cc9ff3fe337786103be2854230f6fa9a..a2c4957a589921ee47fa98df11486443dd48ce58 100644 (file)
                power-domains = <&power RK3568_PD_PIPE>;
                ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x01e00000>,
-                        <0x03000000 0x0 0x40000000 0x3 0x00000000 0x0 0x40000000>;
+                        <0x03000000 0x3 0x00000000 0x3 0x00000000 0x0 0x40000000>;
                resets = <&cru SRST_PCIE20_POWERUP>;
                reset-names = "pipe";
                #address-cells = <3>;
index 3386084f63183efe62beea86bc6fe310cc4ed565..d372ba252af84715f77ba316e5647e7b29f615b4 100644 (file)
                vin-supply = <&vcc_5v0_sys>;
        };
 
-       vcc_3v3_rtc_s5: regulator-vcc-3v3-rtc-s5 {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc_3v3_rtc_s5";
-               regulator-boot-on;
-               regulator-always-on;
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               vin-supply = <&vcc_5v0_sys>;
-       };
-
        vcc_3v3_s0: regulator-vcc-3v3-s0 {
                compatible = "regulator-fixed";
                regulator-name = "vcc_3v3_s0";
        };
 
        headphone {
-               hp_det: hp-det {
-                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               hp_det_l: hp-det-l {
+                       rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
 
        status = "okay";
 };
 
+&saradc {
+       vref-supply = <&vcca_1v8_s0>;
+       status = "okay";
+};
+
 &sdhci {
        bus-width = <8>;
        full-pwr-cycle-in-suspend;
diff --git a/src/arm64/rockchip/rk3576-evb1-v10-pcie1.dtso b/src/arm64/rockchip/rk3576-evb1-v10-pcie1.dtso
new file mode 100644 (file)
index 0000000..dccf4a5
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * DT-overlay to enable the onboard PCIe x1 slot, which shares pins and the PHY
+ * with the USB3 host port.
+ * To use the PCIe slot, apply this overlay and flip the Dial_Switch_1 right
+ * next to the PCIe slot to low state (labeled "ON - PCIe1"). USB3 host port
+ * will be unusable (not even in 2.0 mode)
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/pinctrl/rockchip.h>
+
+&pcie1 {
+       pinctrl-0 = <&pcie1m0_pins &pcie1_rst>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pinctrl {
+       pcie1 {
+               pcie1_rst: pcie1-rst {
+                       rockchip,pins = <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&usb_drd1_dwc3 {
+       status = "disabled";
+};
index db8fef7a4f1b9570cb517ccc9a857d1c93c9d2db..f5746bc2970b3ea4b3b7dc7fca2a9c068d140278 100644 (file)
                vin-supply = <&vcc_3v3_s3>;
        };
 
+       vcc3v3_sd: regulator-vcc-3v3-sd {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_pwren>;
+               regulator-name = "vcc3v3_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s0>;
+       };
+
        vcc_ufs_s0: regulator-vcc-ufs-s0 {
                compatible = "regulator-fixed";
                regulator-name = "vcc_ufs_s0";
                regulator-max-microvolt = <1800000>;
                vin-supply = <&vcc_1v8_s3>;
        };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_det>;
+               simple-audio-card,name = "On-board Analog ES8388";
+               simple-audio-card,aux-devs = <&hp_power>, <&spk_power>;
+               simple-audio-card,bitclock-master = <&masterdai>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&masterdai>;
+               simple-audio-card,hp-det-gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,routing =
+                       "Headphone Power INL", "LOUT1",
+                       "Headphone Power INR", "ROUT1",
+                       "Speaker Power INL", "LOUT2",
+                       "Speaker Power INR", "ROUT2",
+                       "Headphones", "Headphone Power OUTL",
+                       "Headphones", "Headphone Power OUTR",
+                       "Speaker", "Speaker Power OUTL",
+                       "Speaker", "Speaker Power OUTR",
+                       "LINPUT1", "Main Mic",
+                       "LINPUT2", "Main Mic",
+                       "RINPUT1", "Headset Mic",
+                       "RINPUT2", "Headset Mic";
+               simple-audio-card,widgets =
+                       "Microphone", "Main Mic",
+                       "Microphone", "Headset Mic",
+                       "Headphone", "Headphones",
+                       "Speaker", "Speaker";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai1>;
+               };
+
+               masterdai: simple-audio-card,codec {
+                       sound-dai = <&es8388>;
+                       system-clock-frequency = <12288000>;
+               };
+       };
+
+       hp_power: headphone-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_ctl>;
+               sound-name-prefix = "Headphone Power";
+       };
+
+       spk_power: speaker-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&spk_ctl>;
+               sound-name-prefix = "Speaker Power";
+               VCC-supply = <&vcc5v0_device>;
+       };
 };
 
 &cpu_l0 {
        };
 };
 
+&hdmi_sound {
+       status = "okay";
+};
+
 &hdptxphy {
        status = "okay";
 };
        };
 };
 
+&i2c3 {
+       status = "okay";
+
+       es8388: audio-codec@10 {
+               compatible = "everest,es8388", "everest,es8328";
+               reg = <0x10>;
+               AVDD-supply = <&vcca_3v3_s0>;
+               DVDD-supply = <&vcc_1v8_s0>;
+               HPVDD-supply = <&vcca_3v3_s0>;
+               PVDD-supply = <&vcc_1v8_s0>;
+               assigned-clocks = <&cru CLK_SAI1_MCLKOUT_TO_IO>;
+               assigned-clock-rates = <12288000>;
+               clocks = <&cru CLK_SAI1_MCLKOUT_TO_IO>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sai1m0_mclk>;
+               #sound-dai-cells = <0>;
+       };
+};
+
 &mdio0 {
        rgmii_phy0: ethernet-phy@1 {
                compatible = "ethernet-phy-id001c.c916";
 };
 
 &pinctrl {
+       audio {
+               hp_det: hp-det {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               hp_ctl: hp-ctl {
+                       rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               spk_ctl: spk-ctl {
+                       rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        bluetooth {
                bt_reg_on: bt-reg-on {
                        rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
 
+       sdmmc {
+               sdmmc_pwren: sdmmc-pwren {
+                       rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        usb {
                usb_host_pwren: usb-host-pwren {
                        rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
        };
 };
 
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sai1m0_lrck
+                    &sai1m0_sclk
+                    &sai1m0_sdi0
+                    &sai1m0_sdo0>;
+       status = "okay";
+};
+
+&sai6 {
+       status = "okay";
+};
+
 &sdhci {
        bus-width = <8>;
        full-pwr-cycle-in-suspend;
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
        disable-wp;
        max-frequency = <200000000>;
        no-sdio;
        no-mmc;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
        sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sd>;
        vqmmc-supply = <&vccio_sd_s0>;
        status = "okay";
 };
index 9187012d6fa42495f26b738e28641393ab9e003c..749f0a54b478e42020aa4746a41e0ceec1928355 100644 (file)
        };
 };
 
+&hdmi_sound {
+       status = "okay";
+};
+
 &hdptxphy {
        status = "okay";
 };
        status = "okay";
 };
 
+&sai6 {
+       status = "okay";
+};
+
 &saradc {
        vref-supply = <&vcca_1v8_s0>;
        status = "okay";
index bb2cc2814b83f2e8ea804ceb51816e53a6f25d93..7406a4adf8105a85b9b6f6a874ac3daadbbbd452 100644 (file)
                regulator-name = "vcc12v_dcin";
        };
 
+       vcc1v2_ufs_vccq: regulator-vcc1v2-ufs-vccq {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-name = "vcc1v2_ufs_vccq";
+               vin-supply = <&vcc5v0_sys_s5>;
+       };
+
+       vcc1v8_ufs_vccq2: regulator-vcc1v8-ufs-vccq2 {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-name = "vcc1v8_ufs_vccq2";
+               vin-supply = <&vcc_1v8_s3>;
+       };
+
        vcc3v3_m2_keym: regulator-vcc3v3-m2-keym {
                compatible = "regulator-fixed";
                enable-active-high;
                simple-audio-card,format = "i2s";
                simple-audio-card,hp-det-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_LOW>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "realtek,rt5616-codec";
+               simple-audio-card,name = "Onboard Analog RT5616";
 
                simple-audio-card,routing =
                        "Headphones", "HPOL",
        };
 };
 
+&hdmi_sound {
+       status = "okay";
+};
+
 &hdptxphy {
        status = "okay";
 };
        status = "okay";
 };
 
+&sai6 {
+       status = "okay";
+};
+
 &saradc {
        vref-supply = <&vcca_1v8_s0>;
        status = "okay";
        status = "okay";
 };
 
+&ufshc {
+       vcc-supply = <&vcc_3v3_s3>;
+       vccq-supply = <&vcc1v2_ufs_vccq>;
+       vccq2-supply = <&vcc1v8_ufs_vccq2>;
+       vdd-hba-supply = <&vdda_1v2_s0>;
+       status = "okay";
+};
+
 &usbdp_phy {
        status = "okay";
 };
index 31fbefaeceab49a77bbf7a4a8102692212a8bc10..7ec27b05ff10e616d3d45326df1b8fab0778f666 100644 (file)
                regulator-name = "vcc_3v3_s0";
                vin-supply = <&vcc_3v3_s3>;
        };
+
+       vcc3v3_sd: regulator-vcc-3v3-sd {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_pwren>;
+               regulator-name = "vcc3v3_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s0>;
+       };
 };
 
 &combphy0_ps {
                };
        };
 
+       sdmmc {
+               sdmmc_pwren: sdmmc-pwren {
+                       rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        usb {
                usb_otg0_pwren_h: usb-otg0-pwren-h {
                        rockchip,pins = <0 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
        disable-wp;
        no-mmc;
        no-sdio;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_bus4>;
        sd-uhs-sdr104;
-       vmmc-supply = <&vcc_3v3_s3>;
+       vmmc-supply = <&vcc3v3_sd>;
        vqmmc-supply = <&vccio_sd_s0>;
        status = "okay";
 };
index 0b0851a7e4ea9ef2ff6d226277ca1d51ffc1e9f8..98c9f8013158cafdce43af7178fc7bed8b1f80da 100644 (file)
                                /* ufs_rstn */
                                <4 RK_PD0 1 &pcfg_pull_none>;
                };
+
+               /omit-if-no-ref/
+               ufs_rstgpio: ufs-rstgpio {
+                       rockchip,pins =
+                               /* ufs_rstn */
+                               <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
        };
 
        ufs_testdata0 {
index 7023dc326d0e81bf7f01a690829ad2948e0db40e..899a84b1fbf9e8ad852c1f90be7ef593a62cdd73 100644 (file)
        };
 };
 
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6m3_xfer>;
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "belling,bl24c16f", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc_3v3_s3>;
+       };
+};
+
 &mdio0 {
        rgmii_phy0: ethernet-phy@1 {
                compatible = "ethernet-phy-id001c.c916";
index c72343e7a0456e617d45c542e68f6484c8c3be7d..49ccdf12ef7eb4e67bd1f04250ec92ad95f7dc6f 100644 (file)
                                      "aclk_dbi", "pclk",
                                      "aux";
                        device_type = "pci";
+                       dma-coherent;
                        interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
                                      "aclk_dbi", "pclk",
                                      "aux";
                        device_type = "pci";
+                       dma-coherent;
                        interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
                        status = "disabled";
                };
 
+               vdec: video-codec@27b00000 {
+                       compatible = "rockchip,rk3576-vdec";
+                       reg = <0x0 0x27b00100 0x0 0x500>,
+                             <0x0 0x27b00000 0x0 0x100>,
+                             <0x0 0x27b00600 0x0 0x100>;
+                       reg-names = "function", "link", "cache";
+                       interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru HCLK_RKVDEC>,
+                                <&cru ACLK_RKVDEC_ROOT_BAK>, <&cru CLK_RKVDEC_CORE>,
+                                <&cru CLK_RKVDEC_HEVC_CA>;
+                       clock-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+                       assigned-clocks = <&cru ACLK_RKVDEC_ROOT>, <&cru CLK_RKVDEC_CORE>,
+                                         <&cru ACLK_RKVDEC_ROOT_BAK>, <&cru CLK_RKVDEC_HEVC_CA>;
+                       assigned-clock-rates = <600000000>, <600000000>,
+                                              <500000000>, <1000000000>;
+                       iommus = <&vdec_mmu>;
+                       power-domains = <&power RK3576_PD_VDEC>;
+                       resets = <&cru SRST_A_RKVDEC_BIU>, <&cru SRST_H_RKVDEC_BIU>,
+                                <&cru SRST_H_RKVDEC>, <&cru SRST_RKVDEC_CORE>,
+                                <&cru SRST_RKVDEC_HEVC_CA>;
+                       reset-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+                       sram = <&rkvdec_sram>;
+               };
+
+               vdec_mmu: iommu@27b00800 {
+                       compatible = "rockchip,rk3576-iommu", "rockchip,rk3568-iommu";
+                       reg = <0x0 0x27b00800 0x0 0x40>, <0x0 0x27b00900 0x0 0x40>;
+                       interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cru CLK_RKVDEC_CORE>, <&cru HCLK_RKVDEC>;
+                       clock-names = "aclk", "iface";
+                       power-domains = <&power RK3576_PD_VDEC>;
+                       rockchip,disable-mmu-reset;
+                       #iommu-cells = <0>;
+               };
+
                vop: vop@27d00000 {
                        compatible = "rockchip,rk3576-vop";
                        reg = <0x0 0x27d00000 0x0 0x3000>, <0x0 0x27d05000 0x0 0x1000>;
                        clock-names = "stmmaceth", "clk_mac_ref",
                                      "pclk_mac", "aclk_mac",
                                      "ptp_ref";
+                       dma-coherent;
                        interrupts = <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "macirq", "eth_wake_irq";
                        clock-names = "stmmaceth", "clk_mac_ref",
                                      "pclk_mac", "aclk_mac",
                                      "ptp_ref";
+                       dma-coherent;
                        interrupts = <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "macirq", "eth_wake_irq";
                        assigned-clock-parents = <&cru CLK_REF_MPHY_26M>;
                        interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
                        power-domains = <&power RK3576_PD_USB>;
-                       pinctrl-0 = <&ufs_refclk>;
+                       pinctrl-0 = <&ufs_refclk &ufs_rstgpio>;
                        pinctrl-names = "default";
                        resets = <&cru SRST_A_UFS_BIU>, <&cru SRST_A_UFS_SYS>,
                                 <&cru SRST_A_UFS>, <&cru SRST_P_UFS_GRF>;
                        /* start address and size should be 4k align */
                        rkvdec_sram: rkvdec-sram@0 {
                                reg = <0x0 0x78000>;
+                               pool;
                        };
                };
 
index 7ab12d1054a73bbde041cb6896fdeb4b16279dc2..7fe9593d8c198f0d202ceb6e09a0fe57b98a04b1 100644 (file)
                #iommu-cells = <0>;
        };
 
+       vdec0: video-codec@fdc38000 {
+               compatible = "rockchip,rk3588-vdec";
+               reg = <0x0 0xfdc38100 0x0 0x500>,
+                     <0x0 0xfdc38000 0x0 0x100>,
+                     <0x0 0xfdc38600 0x0 0x100>;
+               reg-names = "function", "link", "cache";
+               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_RKVDEC0>, <&cru HCLK_RKVDEC0>, <&cru CLK_RKVDEC0_CA>,
+                        <&cru CLK_RKVDEC0_CORE>, <&cru CLK_RKVDEC0_HEVC_CA>;
+               clock-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+               assigned-clocks = <&cru ACLK_RKVDEC0>, <&cru CLK_RKVDEC0_CORE>,
+                                 <&cru CLK_RKVDEC0_CA>, <&cru CLK_RKVDEC0_HEVC_CA>;
+               assigned-clock-rates = <800000000>, <600000000>,
+                                      <600000000>, <1000000000>;
+               iommus = <&vdec0_mmu>;
+               power-domains = <&power RK3588_PD_RKVDEC0>;
+               resets = <&cru SRST_A_RKVDEC0>, <&cru SRST_H_RKVDEC0>, <&cru SRST_RKVDEC0_CA>,
+                        <&cru SRST_RKVDEC0_CORE>, <&cru SRST_RKVDEC0_HEVC_CA>;
+               reset-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+               sram = <&vdec0_sram>;
+       };
+
+       vdec0_mmu: iommu@fdc38700 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdc38700 0x0 0x40>, <0x0 0xfdc38740 0x0 0x40>;
+               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_RKVDEC0>, <&cru HCLK_RKVDEC0>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3588_PD_RKVDEC0>;
+               #iommu-cells = <0>;
+       };
+
+       vdec1: video-codec@fdc40000 {
+               compatible = "rockchip,rk3588-vdec";
+               reg = <0x0 0xfdc40100 0x0 0x500>,
+                     <0x0 0xfdc40000 0x0 0x100>,
+                     <0x0 0xfdc40600 0x0 0x100>;
+               reg-names = "function", "link", "cache";
+               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_RKVDEC1>, <&cru HCLK_RKVDEC1>, <&cru CLK_RKVDEC1_CA>,
+                        <&cru CLK_RKVDEC1_CORE>, <&cru CLK_RKVDEC1_HEVC_CA>;
+               clock-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+               assigned-clocks = <&cru ACLK_RKVDEC1>, <&cru CLK_RKVDEC1_CORE>,
+                                 <&cru CLK_RKVDEC1_CA>, <&cru CLK_RKVDEC1_HEVC_CA>;
+               assigned-clock-rates = <800000000>, <600000000>,
+                                      <600000000>, <1000000000>;
+               iommus = <&vdec1_mmu>;
+               power-domains = <&power RK3588_PD_RKVDEC1>;
+               resets = <&cru SRST_A_RKVDEC1>, <&cru SRST_H_RKVDEC1>, <&cru SRST_RKVDEC1_CA>,
+                        <&cru SRST_RKVDEC1_CORE>, <&cru SRST_RKVDEC1_HEVC_CA>;
+               reset-names = "axi", "ahb", "cabac", "core", "hevc_cabac";
+               sram = <&vdec1_sram>;
+       };
+
+       vdec1_mmu: iommu@fdc40700 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdc40700 0x0 0x40>, <0x0 0xfdc40740 0x0 0x40>;
+               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_RKVDEC1>, <&cru HCLK_RKVDEC1>;
+               clock-names = "aclk", "iface";
+               power-domains = <&power RK3588_PD_RKVDEC1>;
+               #iommu-cells = <0>;
+       };
+
        av1d: video-codec@fdc70000 {
                compatible = "rockchip,rk3588-av1-vpu";
                reg = <0x0 0xfdc70000 0x0 0x800>;
                power-domains = <&power RK3588_PD_PCIE>;
                ranges = <0x01000000 0x0 0xf3100000 0x0 0xf3100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf3200000 0x0 0xf3200000 0x0 0x00e00000>,
-                        <0x03000000 0x0 0x40000000 0x9 0xc0000000 0x0 0x40000000>;
+                        <0x03000000 0x9 0xc0000000 0x9 0xc0000000 0x0 0x40000000>;
                reg = <0xa 0x40c00000 0x0 0x00400000>,
                      <0x0 0xfe180000 0x0 0x00010000>,
                      <0x0 0xf3000000 0x0 0x00100000>;
                power-domains = <&power RK3588_PD_PCIE>;
                ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x00e00000>,
-                        <0x03000000 0x0 0x40000000 0xa 0x00000000 0x0 0x40000000>;
+                        <0x03000000 0xa 0x00000000 0xa 0x00000000 0x0 0x40000000>;
                reg = <0xa 0x41000000 0x0 0x00400000>,
                      <0x0 0xfe190000 0x0 0x00010000>,
                      <0x0 0xf4000000 0x0 0x00100000>;
                ranges = <0x0 0x0 0xff001000 0xef000>;
                #address-cells = <1>;
                #size-cells = <1>;
+
+               vdec0_sram: codec-sram@0 {
+                       reg = <0x0 0x78000>;
+                       pool;
+               };
+
+               vdec1_sram: codec-sram@78000 {
+                       reg = <0x78000 0x77000>;
+                       pool;
+               };
        };
 
        pinctrl: pinctrl {
index ff1ba5ed56ef5b985c54fa9e1a433fc81f988f8b..c9d284cb738b7e184a0864787f1398270f36ca14 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pcie2_0_rst>, <&pcie2_0_wake>, <&pcie2_0_clkreq>, <&wifi_host_wake_irq>;
        reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       supports-clkreq;
        vpcie3v3-supply = <&vcc3v3_wlan>;
        status = "okay";
 
 &pcie2x1l1 {
        reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
-       pinctrl-0 = <&pcie2_1_rst>, <&rtl8111_isolate>;
+       pinctrl-0 = <&pcie2_1_rst>, <&rtl8111_isolate>, <&pcie30x1m1_1_clkreqn>;
+       supports-clkreq;
        status = "okay";
 };
 
 
 &pcie3x4 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pcie3_reset>;
+       pinctrl-0 = <&pcie3_reset>, <&pcie30x4m1_clkreqn>;
+       supports-clkreq;
        reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
        vpcie3v3-supply = <&vcc3v3_pcie30>;
        status = "okay";
index 6e5a58428bbabd5344cd44308176ca2493076013..a2640014ee04213e4d304af12d97870872d925ac 100644 (file)
                power-domains = <&power RK3588_PD_PCIE>;
                ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x00e00000>,
-                        <0x03000000 0x0 0x40000000 0x9 0x00000000 0x0 0x40000000>;
+                        <0x03000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
                reg = <0xa 0x40000000 0x0 0x00400000>,
                      <0x0 0xfe150000 0x0 0x00010000>,
                      <0x0 0xf0000000 0x0 0x00100000>;
                power-domains = <&power RK3588_PD_PCIE>;
                ranges = <0x01000000 0x0 0xf1100000 0x0 0xf1100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf1200000 0x0 0xf1200000 0x0 0x00e00000>,
-                        <0x03000000 0x0 0x40000000 0x9 0x40000000 0x0 0x40000000>;
+                        <0x03000000 0x9 0x40000000 0x9 0x40000000 0x0 0x40000000>;
                reg = <0xa 0x40400000 0x0 0x00400000>,
                      <0x0 0xfe160000 0x0 0x00010000>,
                      <0x0 0xf1000000 0x0 0x00100000>;
                power-domains = <&power RK3588_PD_PCIE>;
                ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>,
                         <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x00e00000>,
-                        <0x03000000 0x0 0x40000000 0x9 0x80000000 0x0 0x40000000>;
+                        <0x03000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
                reg = <0xa 0x40800000 0x0 0x00400000>,
                      <0x0 0xfe170000 0x0 0x00010000>,
                      <0x0 0xf2000000 0x0 0x00100000>;
index 5fbbeb6f5a935fd81d04248a4bfb608189a13ace..10a7d3691a26f837d074c580082489264dc2fa1e 100644 (file)
                };
        };
 
+       hdmi1-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi1_con_in: endpoint {
+                               remote-endpoint = <&hdmi1_out_con>;
+                       };
+               };
+       };
+
        ir-receiver {
                compatible = "gpio-ir-receiver";
                gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
        };
 };
 
+&hdmi1 {
+       status = "okay";
+};
+
+&hdmi1_in {
+       hdmi1_in_vp1: endpoint {
+               remote-endpoint = <&vp1_out_hdmi1>;
+       };
+};
+
+&hdmi1_out {
+       hdmi1_out_con: endpoint {
+               remote-endpoint = <&hdmi1_con_in>;
+       };
+};
+
 &hdmi_receiver_cma {
        status = "okay";
 };
        status = "okay";
 };
 
+&hdptxphy1 {
+       status = "okay";
+};
+
 /* Connected to MIPI-DSI0 */
 &i2c5 {
        pinctrl-names = "default";
                remote-endpoint = <&hdmi0_in_vp0>;
        };
 };
+
+&vp1 {
+       vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI1>;
+               remote-endpoint = <&hdmi1_in_vp1>;
+       };
+};
index af431fdcbea7a64d9fac77208f100cac1a296615..49cf4b85c4e966bc954de7095639b7a433d101d6 100644 (file)
                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>;
        domain-supply = <&vdd_gpu_s0>;
 };
 
+&pd_npu {
+       domain-supply = <&vdd_npu_s0>;
+};
+
 &pinctrl {
        gpio-leds {
                led_sys_pin: led-sys-pin {
        };
 };
 
+&rknn_core_0 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_1 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_2 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_mmu_0 {
+       status = "okay";
+};
+
+&rknn_mmu_1 {
+       status = "okay";
+};
+
+&rknn_mmu_2 {
+       status = "okay";
+};
+
 &saradc {
        vref-supply = <&avcc_1v8_s0>;
        status = "okay";
index 176925d0a1a809d1e2500f5e5efbbfa6a6d0bd42..952affaf455cf2b449bcbb3b5be82a1d0ad198cb 100644 (file)
                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>;
        domain-supply = <&vdd_gpu_s0>;
 };
 
+&pd_npu {
+       domain-supply = <&vdd_npu_s0>;
+};
+
 &pinctrl {
        emmc {
                emmc_reset: emmc-reset {
        };
 };
 
+&rknn_core_0 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_1 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_2 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_mmu_0 {
+       status = "okay";
+};
+
+&rknn_mmu_1 {
+       status = "okay";
+};
+
+&rknn_mmu_2 {
+       status = "okay";
+};
+
 &saradc {
        vref-supply = <&vcc_1v8_s0>;
        status = "okay";
index fafeabe9adf9ec3ef09975b2a1d53b23757ad515..90e7fe254491b5c83e61a0447178cad9236c2381 100644 (file)
                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>;
        domain-supply = <&vdd_gpu_s0>;
 };
 
+&pd_npu {
+       domain-supply = <&vdd_npu_s0>;
+};
+
 &pinctrl {
        gpio-leds {
                sys_led_pin: sys-led-pin {
        status = "okay";
 };
 
+&rknn_core_0 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_1 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_2 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_mmu_0 {
+       status = "okay";
+};
+
+&rknn_mmu_1 {
+       status = "okay";
+};
+
+&rknn_mmu_2 {
+       status = "okay";
+};
+
+
 &saradc {
        vref-supply = <&avcc_1v8_s0>;
        status = "okay";
index 172aeabba72a592fd97dfade3603096e545270be..de154adb14974823306adf9b16ce72bf49f715af 100644 (file)
                reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
        };
 
+       spdif_dit: spdif-dit {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       spdif_sound: spdif-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "SPDIF";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&spdif_tx1>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&spdif_dit>;
+               };
+       };
+
        typec_vin: regulator-typec-vin {
                compatible = "regulator-fixed";
                enable-active-high;
        };
 };
 
+&spdif_tx1 {
+       pinctrl-0 = <&spdif1m2_tx>;
+       status = "okay";
+};
+
 &spi2 {
        status = "okay";
        assigned-clocks = <&cru CLK_SPI2>;
index 07a840d9b385959d7e4d07aa70a077b85c444656..30d15c7e860a3a9c4d8ffcf243c6cd7b242f3b58 100644 (file)
        };
 };
 
+&i2c1 {
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc_3v3_s3>;
+       };
+};
+
 &pcie30phy {
        data-lanes = <1 1 2 2>;
 };
index 0dd90c744380b7797beaaad3082b2da2d88cb35a..425036146b6d951b7703dd10faaf8f211d059c35 100644 (file)
        status = "okay";
 };
 
+&i2c1 {
+       eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+               read-only;
+               vcc-supply = <&vcc_3v3_s3>;
+       };
+};
+
 &pcie2x1l1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pcie2_1_rst>;
index 365c1d958f2d5cb8739749ac866a23e3b54865d9..27269b7b08aa729f673c0bd317ecd70224a19072 100644 (file)
                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>;
        domain-supply = <&vdd_gpu_s0>;
 };
 
+&pd_npu {
+       domain-supply = <&vdd_npu_s0>;
+};
+
 &pinctrl {
        emmc {
                emmc_reset: emmc-reset {
        pinctrl-names = "default";
 };
 
+&rknn_core_0 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_1 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_2 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_mmu_0 {
+       status = "okay";
+};
+
+&rknn_mmu_1 {
+       status = "okay";
+};
+
+&rknn_mmu_2 {
+       status = "okay";
+};
+
 &saradc {
        vref-supply = <&vcc_1v8_s0>;
        status = "okay";
index 6daea8961fdd651584932e6309b13ddaca908de2..b11d24dcc1806f2d7d26d4c8ccff354d037fe4fe 100644 (file)
                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>;
        domain-supply = <&vdd_gpu_s0>;
 };
 
+&pd_npu {
+       domain-supply = <&vdd_npu_s0>;
+};
+
 &pinctrl {
        fan {
                fan_int: fan-int {
        status = "okay";
 };
 
+&rknn_core_0 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_1 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_core_2 {
+       npu-supply = <&vdd_npu_s0>;
+       sram-supply = <&vdd_npu_s0>;
+       status = "okay";
+};
+
+&rknn_mmu_0 {
+       status = "okay";
+};
+
+&rknn_mmu_1 {
+       status = "okay";
+};
+
+&rknn_mmu_2 {
+       status = "okay";
+};
+
 &sdhci {
        bus-width = <8>;
        no-sdio;
index 21eb003198fe04acc5e25ec280179ad834ca344d..e8ad525ba3f9bcb133e5d0f469a06d581fb96882 100644 (file)
                sound-name-prefix = "Headphones Amplifier";
        };
 
+       hdmi0-con {
+               compatible = "hdmi-connector";
+               ddc-en-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&hdmi0_en>;
+               pinctrl-names = "default";
+               type = "d";
+
+               port {
+                       hdmi0_con_in: endpoint {
+                               remote-endpoint = <&hdmi0_out_con>;
+                       };
+               };
+       };
+
        pwm_fan: pwm-fan {
                compatible = "pwm-fan";
                #cooling-cells = <2>;
        status = "okay";
 };
 
+&hdmi0 {
+       no-hpd;
+       pinctrl-0 = <&hdmim0_tx0_cec>, <&hdmim0_tx0_scl>,
+                   <&hdmim0_tx0_sda>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&hdmi0_in {
+       hdmi0_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi0>;
+       };
+};
+
+&hdmi0_out {
+       hdmi0_out_con: endpoint {
+               remote-endpoint = <&hdmi0_con_in>;
+       };
+};
+
+&hdmi0_sound {
+       status = "okay";
+};
+
+&hdptxphy0 {
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        pinctrl-names = "default";
        status = "okay";
 };
 
+&i2s5_8ch {
+       status = "okay";
+};
+
 &mipidcphy0 {
        status = "okay";
 };
                };
        };
 
+       hdmi {
+               hdmi0_en: hdmi0-en {
+                       rockchip,pins =
+                               <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        hym8563 {
                hym8563_int: hym8563-int {
                        rockchip,pins =
        status = "okay";
 };
 
+&vp0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi0_in_vp0>;
+       };
+};
+
 &vp3 {
        #address-cells = <1>;
        #size-cells = <0>;
diff --git a/src/arm64/rockchip/rk3588s-orangepi-cm5-base.dts b/src/arm64/rockchip/rk3588s-orangepi-cm5-base.dts
new file mode 100644 (file)
index 0000000..06120b2
--- /dev/null
@@ -0,0 +1,355 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#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>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+
+#include "rk3588s-orangepi-cm5.dtsi"
+
+/ {
+       model = "Xunlong Orange Pi CM5 Base";
+       compatible = "xunlong,orangepi-cm5-base", "xunlong,orangepi-cm5", "rockchip,rk3588s";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc1 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key1_pin>;
+
+               button {
+                       debounce-interval = <50>;
+                       gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
+                       label = "USERKEY";
+                       linux,code = <BTN_MISC>;
+                       wakeup-source;
+               };
+       };
+
+       hdmi0-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi0_con_in: endpoint {
+                               remote-endpoint = <&hdmi0_out_con>;
+                       };
+               };
+       };
+
+       pwm-leds {
+               compatible = "pwm-leds";
+
+               led-1 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_STATUS;
+                       linux,default-trigger = "heartbeat";
+                       max-brightness = <255>;
+                       pwms = <&pwm2 0 25000 0>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WAN;
+                       max-brightness = <255>;
+                       pwms = <&pwm4 0 25000 PWM_POLARITY_INVERTED>;
+               };
+
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       function-enumerator = <0>;
+                       max-brightness = <255>;
+                       pwms = <&pwm5 0 25000 PWM_POLARITY_INVERTED>;
+               };
+
+               led-4 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       function-enumerator = <1>;
+                       max-brightness = <255>;
+                       pwms = <&pwm6 0 25000 0>;
+               };
+       };
+
+       vbus_5v0: regulator-vbus-5v0 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vbus_5v0_en_pin>;
+               regulator-name = "vbus_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_3v3: regulator-vcc-3v3 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_3v3_en_pin>;
+               regulator-name = "vcc_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <50000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: regulator-vcc-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&gmac1 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1_miim
+                    &gmac1_rx_bus2
+                    &gmac1_tx_bus2
+                    &gmac1_rgmii_clk
+                    &gmac1_rgmii_bus>;
+       status = "okay";
+};
+
+&hdmi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd
+                    &hdmim0_tx0_scl &hdmim0_tx0_sda
+                    &hdmi_frl_pin>;
+       status = "okay";
+};
+
+&hdmi0_in {
+       hdmi0_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi0>;
+       };
+};
+
+&hdmi0_out {
+       hdmi0_out_con: endpoint {
+               remote-endpoint = <&hdmi0_con_in>;
+       };
+};
+
+&hdmi0_sound {
+       status = "okay";
+};
+
+&hdptxphy0 {
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-0 = <&i2c1m2_xfer>;
+       status = "okay";
+
+       rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtc_int_pin>;
+               wakeup-source;
+       };
+};
+
+&i2s5_8ch {
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy: ethernet-phy@1 {
+               /* YT8531C */
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rgmii_phy_pin>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1l1 {
+       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&pinctrl {
+       camera {
+               cam1_reset_pin: cam1-reset-pin {
+                       rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               cam2_reset_pin: cam2-reset-pin {
+                       rockchip,pins = <1 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               cam3_reset_pin: cam3-reset-pin {
+                       rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               cam4_reset_pin: cam4-reset-pin {
+                       rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ethernet {
+               rgmii_phy_pin: rgmii-phy-pin {
+                       rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       gpio-key {
+               key1_pin: key1-pin {
+                       rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       hdmi {
+               hdmi_frl_pin: hdmi-frl-pin {
+                       rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       power {
+               vcc_3v3_en_pin: vcc-3v3-en-pin {
+                       rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       rtc {
+               rtc_int_pin: rtc-int-pin {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vbus_5v0_en_pin: vbus-5v0-en-pin {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&pwm5 {
+       pinctrl-0 = <&pwm5m1_pins>;
+       status = "okay";
+};
+
+&pwm6 {
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       phy-supply = <&vbus_5v0>;
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vbus_5v0>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbdp_phy0 {
+       status = "okay";
+};
+
+&vop {
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi0_in_vp0>;
+       };
+};
diff --git a/src/arm64/rockchip/rk3588s-orangepi-cm5.dtsi b/src/arm64/rockchip/rk3588s-orangepi-cm5.dtsi
new file mode 100644 (file)
index 0000000..32357eb
--- /dev/null
@@ -0,0 +1,472 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/clock/rockchip,rk3588-cru.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "rk3588s.dtsi"
+#include "rk8xx.h"
+
+/ {
+       aliases {
+               mmc0 = &sdhci;
+       };
+
+       /* Can't be verified due to missing schematics for the CM5. */
+       vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
+               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>;
+       };
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-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;
+               };
+       };
+};
+
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
+&sdhci {
+       bus-width = <8>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       max-frequency = <200000000>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       status = "okay";
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       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;
+               rockchip,reset-mode = <RK806_RESET>;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: 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: 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-max-microvolt = <1100000>;
+                               regulator-min-microvolt = <1100000>;
+
+                               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-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-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-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 {
+       /*
+        * The TSADC_SHUT pin is exposed to carrier boards as a signal named
+        * PMIC_RESET_L, meant to be driven externally. Reference carrier
+        * boards connect it to a reset button that pulls the signal to GND
+        * through a 100Ω resistor. This is too weak to overcome even the
+        * minimum drive strength of the TSADC_SHUT pin when driven in
+        * push-pull mode. Configure it as a GPIO, reset will be generated
+        * through the CRU.
+        */
+       pinctrl-0 = <&tsadc_gpio_func>;
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588s-radxa-cm5-io.dts b/src/arm64/rockchip/rk3588s-radxa-cm5-io.dts
new file mode 100644 (file)
index 0000000..f80d5a0
--- /dev/null
@@ -0,0 +1,339 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2025 Joseph Kogut <joseph.kogut@gmail.com>
+ */
+
+/*
+ * CM5 IO board data sheet
+ * https://dl.radxa.com/cm5/v2200/radxa_cm5_io_v2200_schematic.pdf
+ */
+
+/dts-v1/;
+#include "rk3588s.dtsi"
+#include "rk3588s-radxa-cm5.dtsi"
+
+/ {
+       model = "Radxa Compute Module 5 (CM5) IO Board";
+       compatible = "radxa,cm5-io", "radxa,cm5", "rockchip,rk3588s";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc1 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi0_out_con>;
+                       };
+               };
+       };
+
+       vcc12v_dcin: regulator-12v0-vcc-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: regulator-5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vbus5v0_typec: vbus5v0-typec {
+               compatible = "regulator-fixed";
+               regulator-name = "vbus5v0_typec";
+               gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vbus5v0_typec_en>;
+               enable-active-high;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie: regulator-3v3-vcc-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <50000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_3v3_s0: pldo-reg4 {
+               compatible = "regulator-fixed";
+               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;
+               };
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&gmac1 {
+       status = "okay";
+};
+
+&hdmi0 {
+       status = "okay";
+};
+
+&hdmi0_in {
+       hdmi0_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi0>;
+       };
+};
+
+&hdmi0_out {
+       hdmi0_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&hdmi0_sound {
+       status = "okay";
+};
+
+&hdptxphy0 {
+       status = "okay";
+};
+
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6m3_xfer>;
+       status = "okay";
+
+       fusb302: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PC4 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vbus5v0_typec>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
+                       op-sink-microwatt = <1000000>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_orientation_switch: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_role_switch: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       usbc0_dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&i2s5_8ch {
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+&pinctrl {
+       fusb302 {
+               vbus5v0_typec_en: vbus5v0-typec-en {
+                       rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       no-sdio;
+       sd-uhs-sdr104;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb_host0_xhci_role_switch: endpoint {
+                       remote-endpoint = <&usbc0_role_switch>;
+               };
+       };
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host2_xhci {
+       status = "okay";
+};
+
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orientation_switch>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&usbc0_dp_altmode_mux>;
+               };
+       };
+};
+
+&vop {
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi0_in_vp0>;
+       };
+};
diff --git a/src/arm64/rockchip/rk3588s-radxa-cm5.dtsi b/src/arm64/rockchip/rk3588s-radxa-cm5.dtsi
new file mode 100644 (file)
index 0000000..d307e19
--- /dev/null
@@ -0,0 +1,280 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2025 Joseph Kogut <joseph.kogut@gmail.com>
+ */
+
+/*
+ * CM5 data sheet
+ * https://dl.radxa.com/cm5/v2210/radxa_cm5_v2210_schematic.pdf
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include <dt-bindings/usb/pd.h>
+
+/ {
+       compatible = "radxa,cm5", "rockchip,rk3588s";
+
+       aliases {
+               mmc0 = &sdhci;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_sys: led-0 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
+
+&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>;
+};
+
+&gmac1 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3_s0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1_miim
+                    &gmac1_tx_bus2
+                    &gmac1_rx_bus2
+                    &gmac1_rgmii_clk
+                    &gmac1_rgmii_bus
+                    &gmac1_clkinout>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,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;
+               };
+       };
+};
+
+&mdio1 {
+       rgmii_phy1: phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+       };
+};
+
+&pd_gpu {
+       domain-supply = <&vdd_gpu_s0>;
+};
+
+&sdhci {
+       bus-width = <8>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       max-frequency = <200000000>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       mmc-hs200-1_8v;
+       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>;
+               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 = <&vdd2_ddr_s3>;
+               vcc14-supply = <&vdd2_ddr_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: dcdc-reg1 {
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-boot-on;
+                               regulator-enable-ramp-delay = <400>;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+
+                               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;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       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>;
+                               };
+                       };
+               };
+       };
+};
index 045a853d39ec757dd83003ccaef072fab873559f..0991f6a21190058aea2dc305d96150872971cacf 100644 (file)
                compatible = "belling,bl24c16a", "atmel,24c16";
                reg = <0x50>;
                pagesize = <16>;
+               read-only;
                vcc-supply = <&vcc_3v3_pmu>;
        };
 };
index b837c4e08cec075e48264e3ff9ec4ed57e978446..7fe42f4ff82798ee90d792008809afc95205bbe1 100644 (file)
                compatible = "belling,bl24c16a", "atmel,24c16";
                reg = <0x50>;
                pagesize = <16>;
+               read-only;
                vcc-supply = <&vcc_3v3_pmu>;
        };
 };
index 864ef0a17425c3e07178c68aa48c2a17aadc553a..765acde4867ca496cff0ef644c2efaef2a7ed395 100644 (file)
        idle-states {
                entry-method = "psci";
 
-               CORE_PD: core_pd {
+               CORE_PD: cpu-pd {
                        compatible = "arm,idle-state";
                        entry-latency-us = <1000>;
                        exit-latency-us = <700>;
                        arm,psci-suspend-param = <0x00010002>;
                };
 
-               CLUSTER_PD: cluster_pd {
+               CLUSTER_PD: cluster-pd {
                        compatible = "arm,idle-state";
                        entry-latency-us = <1000>;
                        exit-latency-us = <1000>;
                        reg = <0 0x10003000 0 0x1000>;
                        clocks = <&ext_26m>;
                        clock-names = "apb_pclk";
-                       out-ports {
+
+                       in-ports {
                                port {
                                        etb_in: endpoint {
                                                remote-endpoint =
index e97000e560e711967d2658501280bab2e1137312..31799579d7f2ef1416b003740e87c2907fa9ce60 100644 (file)
 
        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>;
                        };
                };
 
-               ap-ahb {
+               ahb {
                        compatible = "simple-bus";
                        #address-cells = <2>;
                        #size-cells = <2>;
index bf58702c4e07dcbbee527c19fdb303f586739c47..1c8c23e04136178549867143adfa3b1b735d88dd 100644 (file)
@@ -16,7 +16,7 @@
                #size-cells = <2>;
                ranges;
 
-               ap-apb {
+               apb {
                        compatible = "simple-bus";
                        #address-cells = <2>;
                        #size-cells = <2>;
index 2ecaa56001b8087ea0c0f48fb06b136930301dde..87a834d4640c3e92751c32e2abff6906f0498fa0 100644 (file)
@@ -81,7 +81,7 @@
                        #clock-cells = <1>;
                };
 
-               ap-apb@70000000 {
+               apb@70000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        };
                };
 
-               ap-ahb {
+               ahb {
                        compatible = "simple-bus";
                        #address-cells = <2>;
                        #size-cells = <2>;
                        };
                };
 
-               aon {
+               aon-bus {
                        compatible = "simple-bus";
                        #address-cells = <2>;
                        #size-cells = <2>;
                        };
                };
 
-               agcp {
+               agcp-bus {
                        compatible = "simple-bus";
                        #address-cells = <2>;
                        #size-cells = <2>;
diff --git a/src/arm64/st/stm32mp21xc.dtsi b/src/arm64/st/stm32mp21xc.dtsi
deleted file mode 100644 (file)
index e33b00b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
-/*
- * Copyright (C) STMicroelectronics 2025 - All Rights Reserved
- * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
- */
-
-/ {
-};
index 88e214d395ab7af53e2707dbc2dfc6b3d000a798..b5d81d1ee153fc2b7e74bd76aec1a63aef1828d3 100644 (file)
                                       <&hpdma 52 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 23>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                                       <&hpdma 54 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 24>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                                       <&hpdma 28 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 41>;
+                               power-domains = <&cluster_pd>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 31 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 42>;
+                               power-domains = <&cluster_pd>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 46 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 47>;
+                               power-domains = <&cluster_pd>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 50 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 22>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                                       <&hpdma 56 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 25>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                                       <&hpdma 58 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 26>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                                       <&hpdma 169 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 48>;
+                               power-domains = <&cluster_pd>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                         <&rcc CK_KER_CSIPHY>;
                                clock-names = "pclk", "txesc", "csi2phy";
                                access-controllers = <&rifsc 86>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                                clocks = <&rcc CK_BUS_DCMIPP>, <&rcc CK_KER_CSI>;
                                clock-names = "kclk", "mclk";
                                access-controllers = <&rifsc 87>;
+                               power-domains = <&cluster_pd>;
                                status = "disabled";
                        };
 
                        #address-cells = <1>;
                        #size-cells = <1>;
 
-                       part_number_otp@24 {
+                       part-number-otp@24 {
                                reg = <0x24 0x4>;
                        };
 
-                       package_otp@1e8 {
+                       package-otp@1e8 {
                                reg = <0x1e8 0x1>;
                                bits = <0 3>;
                        };
index c3e68806822365ab9ec7ccee2eba73a117a8c331..5ecc5ef615907e336f62af6f777472426640a4ed 100644 (file)
        gpio-leds {
                compatible = "gpio-leds";
 
-               led-blue {
+               led_blue: led-blue {
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpioh 7 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
+
+               led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpioh 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
+                       gpios = <&gpioh 6 GPIO_ACTIVE_HIGH>;
+               };
        };
 
        memory@80000000 {
                reg = <0x0 0x80000000 0x0 0x80000000>;
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_blue>;
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
                phy1_eth1: ethernet-phy@1 {
                        compatible = "ethernet-phy-id001c.c916";
                        reg = <1>;
-                       reset-gpios =  <&gpioa 2 GPIO_ACTIVE_LOW>;
+                       reset-gpios = <&gpioa 2 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <10000>;
                        reset-deassert-us = <80000>;
                };
diff --git a/src/arm64/st/stm32mp23xc.dtsi b/src/arm64/st/stm32mp23xc.dtsi
deleted file mode 100644 (file)
index e33b00b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
-/*
- * Copyright (C) STMicroelectronics 2025 - All Rights Reserved
- * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
- */
-
-/ {
-};
index a8e6e0f77b8394f62846aaa5fabd797748b27ed2..8b925ed0d8818df6b53d8fe2c66186010bf4254a 100644 (file)
                                       <&hpdma 52 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 23>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 54 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 24>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 28 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 41>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 31 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 42>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 34 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 43>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 37 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 44>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 40 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 45>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 43 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 46>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 46 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 47>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                       <&hpdma 50 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 22>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 56 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 25>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 58 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 26>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 60 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 27>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 62 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 28>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 172 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 29>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                       <&hpdma 169 0x20 0x3021>;
                                dma-names = "rx", "tx";
                                access-controllers = <&rifsc 48>;
+                               power-domains = <&CLUSTER_PD>;
+                               i2c-analog-filter;
                                status = "disabled";
                        };
 
                                         <&rcc CK_KER_CSIPHY>;
                                clock-names = "pclk", "txesc", "csi2phy";
                                access-controllers = <&rifsc 86>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                                clocks = <&rcc CK_BUS_DCMIPP>, <&rcc CK_KER_CSI>;
                                clock-names = "kclk", "mclk";
                                access-controllers = <&rifsc 87>;
+                               power-domains = <&CLUSTER_PD>;
                                status = "disabled";
                        };
 
                        #address-cells = <1>;
                        #size-cells = <1>;
 
-                       part_number_otp@24 {
+                       part-number-otp@24 {
                                reg = <0x24 0x4>;
                        };
 
-                       package_otp@1e8 {
+                       package-otp@1e8 {
                                reg = <0x1e8 0x1>;
                                bits = <0 3>;
                        };
index e718d888ce21b6f124331543c09c1e66e6304964..4135e7c0d9a359eec905fe2d8851719f37d66b86 100644 (file)
        gpio-leds {
                compatible = "gpio-leds";
 
-               led-blue {
+               led_blue: led-blue {
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_BLUE>;
                        gpios = <&gpioh 7 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
+
+               led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpioh 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
+                       gpios = <&gpioh 6 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       lpddr_channel: sdram-channel-0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "jedec,lpddr4-channel";
+               io-width = <32>;
        };
 
        memory@80000000 {
                reg = <0x0 0x80000000 0x1 0x0>;
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_blue>;
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
                phy1_eth1: ethernet-phy@1 {
                        compatible = "ethernet-phy-id001c.c916";
                        reg = <1>;
-                       reset-gpios =  <&gpioa 2 GPIO_ACTIVE_LOW>;
+                       reset-gpios = <&gpioa 2 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <10000>;
                        reset-deassert-us = <80000>;
                };
index bb6d6393d2e46d7788a586eb831dda3ec36a1b98..852a73b0c516eb360db7274cc1893dfad951736f 100644 (file)
@@ -7,6 +7,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/regulator/st,stm32mp25-regulator.h>
 #include "stm32mp257.dtsi"
 #include "stm32mp25xf.dtsi"
                };
        };
 
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               led_blue: led-blue {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpioj 7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+
+               led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpiod 8 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-orange {
+                       color = <LED_COLOR_ID_ORANGE>;
+                       gpios = <&gpioj 6 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       ddr_channel: sdram-channel-0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "jedec,ddr4-channel";
+               io-width = <32>;
+       };
+
        imx335_2v9: regulator-2v9 {
                compatible = "regulator-fixed";
                regulator-name = "imx335-avdd";
                reg = <0x0 0x80000000 0x1 0x0>;
        };
 
+       options {
+               u-boot {
+                       compatible = "u-boot,config";
+                       boot-led = <&led_blue>;
+               };
+       };
+
        panel_lvds: display {
                compatible = "edt,etml0700z9ndha", "panel-lvds";
                enable-gpios = <&gpiog 15 GPIO_ACTIVE_HIGH>;
                phy1_eth1: ethernet-phy@4 {
                        compatible = "ethernet-phy-id001c.c916";
                        reg = <4>;
-                       reset-gpios =  <&gpioj 9 GPIO_ACTIVE_LOW>;
+                       reset-gpios = <&gpioj 9 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <10000>;
                        reset-deassert-us = <80000>;
                };
diff --git a/src/arm64/st/stm32mp25xc.dtsi b/src/arm64/st/stm32mp25xc.dtsi
deleted file mode 100644 (file)
index 5e83a69..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
-/*
- * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
- * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
- */
-
-/ {
-};
diff --git a/src/arm64/st/stm32mp25xxal-pinctrl.dtsi b/src/arm64/st/stm32mp25xxal-pinctrl.dtsi
deleted file mode 100644 (file)
index 2406e97..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
-/*
- * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
- * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
- */
-
-&pinctrl {
-       st,package = <STM32MP_PKG_AL>;
-
-       gpioa: gpio@44240000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 0 16>;
-       };
-
-       gpiob: gpio@44250000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 16 16>;
-       };
-
-       gpioc: gpio@44260000 {
-               status = "okay";
-               ngpios = <14>;
-               gpio-ranges = <&pinctrl 0 32 14>;
-       };
-
-       gpiod: gpio@44270000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 48 16>;
-       };
-
-       gpioe: gpio@44280000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 64 16>;
-       };
-
-       gpiof: gpio@44290000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 80 16>;
-       };
-
-       gpiog: gpio@442a0000 {
-               status = "okay";
-               ngpios = <16>;
-               gpio-ranges = <&pinctrl 0 96 16>;
-       };
-
-       gpioh: gpio@442b0000 {
-               status = "okay";
-               ngpios = <12>;
-               gpio-ranges = <&pinctrl 2 114 12>;
-       };
-
-       gpioi: gpio@442c0000 {
-               status = "okay";
-               ngpios = <12>;
-               gpio-ranges = <&pinctrl 0 128 12>;
-       };
-};
-
-&pinctrl_z {
-       gpioz: gpio@46200000 {
-               status = "okay";
-               ngpios = <10>;
-               gpio-ranges = <&pinctrl_z 0 400 10>;
-       };
-};
index 878d267bc663bc380283f3fd8e9060c460899505..e15da771bc07d362a2784ee10ec0f5e5db0bbaa2 100644 (file)
        bootph-all;
 };
 
+&cpsw_mac_syscon {
+       bootph-all;
+};
+
 &cpsw3g_mdio {
        pinctrl-names = "default";
        pinctrl-0 = <&main_mdio1_pins_default>;
        };
 };
 
+&phy_gmii_sel {
+       bootph-all;
+};
+
 &sdhci0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc0_pins_default>;
index b24a63feeab83dcd916c13f2b51969165bf0906c..de4048a3564bcac9558f88c94381f07db30d4f99 100644 (file)
        bootph-all;
 };
 
+&cpsw_mac_syscon {
+       bootph-all;
+};
+
 &cpsw3g_mdio {
        pinctrl-names = "default";
        pinctrl-0 = <&main_mdio1_pins_default>;
        };
 };
 
+&phy_gmii_sel {
+       bootph-all;
+};
+
 &sdhci0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc0_pins_default>;
index 2b233bc0323dd1f932d0c19f5b3517c2ea43de22..a5d5dc0a7bec8c3a5dfa63e984ae398af3ede7c0 100644 (file)
        pinctrl-0 = <&ospi0_pins_default>;
        status = "okay";
 
-       flash@0{
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-tx-bus-width = <8>;
index 3cf7c2b3ce2ddd1516e67578043a9ff102a4a169..0e1af2a69ca2ed608b2547e77572e0f96be5e17f 100644 (file)
                clocks = <&k3_clks 204 2>;
                power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
        };
+
+       hsm: remoteproc@43c00000 {
+               compatible = "ti,hsm-m4fss";
+               /* contiguous regions but instantiated separately in HW */
+               reg = <0x00 0x43c00000 0x00 0x20000>,
+                     <0x00 0x43c20000 0x00 0x10000>,
+                     <0x00 0x43c30000 0x00 0x10000>;
+               reg-names = "sram0_0", "sram0_1", "sram1";
+               resets = <&k3_reset 225 1>;
+               firmware-name = "am62p-hsm-m4f-fw";
+               bootph-pre-ram;
+               ti,sci = <&dmsc>;
+               ti,sci-dev-id = <225>;
+               ti,sci-proc-ids = <0x80 0xff>;
+               /* reserved for early-stage bootloader */
+               status = "reserved";
+       };
 };
index 5e050cbb9eaf3bacefc18699306b4e63650e2a74..34954df692a39f0b573ec362c954a6edf81da465 100644 (file)
                regulator-max-microvolt = <3300000>;
                regulator-min-microvolt = <3300000>;
                regulator-name = "+V3.3_SD";
-               startup-delay-us = <2000>;
+               startup-delay-us = <20000>;
        };
 
        reg_sd1_vqmmc: regulator-sdhci1-vqmmc {
                pinctrl-single,pins = <
                        AM62PX_IOPAD(0x0120, PIN_INPUT,  0) /* (K24) MMC2_CMD  */ /* SODIMM 160, WiFi_SDIO_CMD   */
                        AM62PX_IOPAD(0x0118, PIN_OUTPUT, 0) /* (K21) MMC2_CLK  */ /* SODIMM 156, WiFi_SDIO_CLK   */
-                       AM62PX_IOPAD(0x011C, PIN_INPUT,  0) /* () MMC2_CLKLB   */
+                       AM62PX_IOPAD(0x011c, PIN_INPUT,  0) /* () MMC2_CLKLB   */
                        AM62PX_IOPAD(0x0114, PIN_INPUT,  0) /* (K23) MMC2_DAT0 */ /* SODIMM 162, WiFi_SDIO_DATA0 */
                        AM62PX_IOPAD(0x0110, PIN_INPUT,  0) /* (K22) MMC2_DAT1 */ /* SODIMM 164, WiFi_SDIO_DATA1 */
                        AM62PX_IOPAD(0x010c, PIN_INPUT,  0) /* (L20) MMC2_DAT2 */ /* SODIMM 166, WiFi_SDIO_DATA2 */
index e2c01328eb2986312c280d585bf763c51ec61488..9d6266d6ddb82554577f9bf0dfa59a09cdef7b8c 100644 (file)
@@ -96,6 +96,7 @@
                         <0x00 0x31100000 0x00 0x31100000 0x00 0x00050000>, /* USB1 DWC3 Core window */
                         <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */
                         <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */
+                        <0x00 0x43c00000 0x00 0x43c00000 0x00 0x00040000>, /* HSM SRAM ranges */
                         <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */
                         <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */
                         <0x00 0x48000000 0x00 0x48000000 0x00 0x06408000>, /* DMSS */
index ef719c6334fc094f01d9e8185992f2f58320e17d..4f7f6f95b02ef94a140edcef595ad8f6cc4b4113 100644 (file)
                pinctrl-single,pins = <
                        AM62PX_IOPAD(0x0120, PIN_INPUT, 0) /* (K24) MMC2_CMD */
                        AM62PX_IOPAD(0x0118, PIN_OUTPUT, 0) /* (K21) MMC2_CLK */
-                       AM62PX_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */
+                       AM62PX_IOPAD(0x011c, PIN_INPUT, 0) /* () MMC2_CLKLB */
                        AM62PX_IOPAD(0x0114, PIN_INPUT, 0) /* (K23) MMC2_DAT0 */
                        AM62PX_IOPAD(0x0110, PIN_INPUT_PULLUP, 0) /* (K22) MMC2_DAT1 */
                        AM62PX_IOPAD(0x010c, PIN_INPUT_PULLUP, 0) /* (L20) MMC2_DAT2 */
index 4bb92fde6ab823f16994784249df67ea4311ea47..5ba4ed56755b44ba7ef8d94f88c543561ee8d9ab 100644 (file)
        status = "okay";
 };
 
-&main_i2c0{
+&main_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c0>;
        clock-frequency = <400000>;
        pinctrl-0 = <&pinctrl_mmc1>;
        disable-wp;
        bootph-all;
-       status="okay";
+       status = "okay";
 };
 
 &ti_csi2rx0 {
index d872cc671094f1467f7ce62fe22350e91b83f938..1b1d3970888b8a66e8c69313c07dc971e6c5d850 100644 (file)
@@ -84,7 +84,7 @@
                #interrupt-cells = <3>;
                interrupt-controller;
                reg = <0x00 0x01800000 0x00 0x10000>,   /* GICD */
-                     <0x00 0x01840000 0x00 0xC0000>,   /* GICR */
+                     <0x00 0x01840000 0x00 0xc0000>,   /* GICR */
                      <0x01 0x00000000 0x00 0x2000>,    /* GICC */
                      <0x01 0x00010000 0x00 0x1000>,    /* GICH */
                      <0x01 0x00020000 0x00 0x2000>;    /* GICV */
                power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
 
-               dmas = <&main_pktdma 0xC500 15>,
-                      <&main_pktdma 0xC501 15>,
-                      <&main_pktdma 0xC502 15>,
-                      <&main_pktdma 0xC503 15>,
-                      <&main_pktdma 0xC504 15>,
-                      <&main_pktdma 0xC505 15>,
-                      <&main_pktdma 0xC506 15>,
-                      <&main_pktdma 0xC507 15>,
+               dmas = <&main_pktdma 0xc500 15>,
+                      <&main_pktdma 0xc501 15>,
+                      <&main_pktdma 0xc502 15>,
+                      <&main_pktdma 0xc503 15>,
+                      <&main_pktdma 0xc504 15>,
+                      <&main_pktdma 0xc505 15>,
+                      <&main_pktdma 0xc506 15>,
+                      <&main_pktdma 0xc507 15>,
                       <&main_pktdma 0x4500 15>;
                dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6",
                            "tx7", "rx";
index e4afa8c0a8ca1323720fe630ed766b6f13aba3a4..793538f94942c5f08093513c6a5cf3da6c2d8ac3 100644 (file)
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x0200, PIN_INPUT, 0)       /* (P2) PRG0_MDIO0_MDIO */
                        AM64X_IOPAD(0x0204, PIN_OUTPUT, 0)      /* (P3) PRG0_MDIO0_MDC */
-                       AM64X_IOPAD(0x01A8, PIN_OUTPUT, 7)      /* (V1) PRG0_PRU0_GPO18.GPIO1_18 */
-                       AM64X_IOPAD(0x01AC, PIN_OUTPUT, 7)      /* (W1) PRG0_PRU0_GPO19.GPIO1_19 */
+                       AM64X_IOPAD(0x01a8, PIN_OUTPUT, 7)      /* (V1) PRG0_PRU0_GPO18.GPIO1_18 */
+                       AM64X_IOPAD(0x01ac, PIN_OUTPUT, 7)      /* (W1) PRG0_PRU0_GPO19.GPIO1_19 */
                >;
        };
 
        main_uart1_pins_default: main-uart1-default-pins {
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x0248, PIN_INPUT, 0)       /* (D16) UART1_CTSn */
-                       AM64X_IOPAD(0x024C, PIN_OUTPUT, 0)      /* (E16) UART1_RTSn */
+                       AM64X_IOPAD(0x024c, PIN_OUTPUT, 0)      /* (E16) UART1_RTSn */
                        AM64X_IOPAD(0x0240, PIN_INPUT, 0)       /* (E15) UART1_RXD */
                        AM64X_IOPAD(0x0244, PIN_OUTPUT, 0)      /* (E14) UART1_TXD */
                >;
index bea8efa3e909418c34abdeefd71ca0ea5ea61416..39306bf8eec170d588edd32adadf8a0c554f14ff 100644 (file)
@@ -29,9 +29,9 @@
        main_spi1_pins_default: main-spi1-default-pins {
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x0224, PIN_INPUT, 0)       /* (C14) SPI1_CLK */
-                       AM64X_IOPAD(0x021C, PIN_OUTPUT, 0)      /* (B14) SPI1_CS0 */
+                       AM64X_IOPAD(0x021c, PIN_OUTPUT, 0)      /* (B14) SPI1_CS0 */
                        AM64X_IOPAD(0x0228, PIN_OUTPUT, 0)      /* (B15) SPI1_D0 */
-                       AM64X_IOPAD(0x022C, PIN_INPUT, 0)       /* (A15) SPI1_D1 */
+                       AM64X_IOPAD(0x022c, PIN_INPUT, 0)       /* (A15) SPI1_D1 */
                >;
        };
 
index 7ff0abd7c62ed0c537add5f53e45f02e5137a95c..6c7fdaf1f2c423cb67065e969076c58c6b3248a3 100644 (file)
        d2_uart0_ctsn: d2-uart0-ctsn-pins {
                pinctrl-single,pins = <
                        /* (P1) MCU_UART0_CTSn */
-                       AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 4)
+                       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)
+                       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)
+                       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)
+                       AM65X_WKUP_IOPAD(0x004c, PIN_INPUT_PULLDOWN, 7)
                >;
        };
 
        a2_gpio: a2-gpio-pins {
                pinctrl-single,pins = <
                        /* (L5) WKUP_GPIO0_43 */
-                       AM65X_WKUP_IOPAD(0x007C, PIN_INPUT, 7)
+                       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)
+                       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)
+                       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)
+                       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)
+                       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)
+                       AM65X_WKUP_IOPAD(0x006c, PIN_INPUT_PULLDOWN, 7)
                >;
        };
 
        a5_gpio: a5-gpio-pins {
                pinctrl-single,pins = <
                        /* (N5) WKUP_GPIO0_35 */
-                       AM65X_WKUP_IOPAD(0x005C, PIN_INPUT, 7)
+                       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)
+                       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)
+                       AM65X_WKUP_IOPAD(0x005c, PIN_INPUT_PULLDOWN, 7)
                >;
        };
 
        d5_ehrpwm1_a: d5-ehrpwm1-a-pins {
                pinctrl-single,pins = <
                        /* (AF17) EHRPWM1_A */
-                       AM65X_IOPAD(0x008C, PIN_OUTPUT, 5)
+                       AM65X_IOPAD(0x008c, PIN_OUTPUT, 5)
                >;
        };
 
        d5_gpio: d5-gpio-pins {
                pinctrl-single,pins = <
                        /* (AF17) GPIO0_35 */
-                       AM65X_IOPAD(0x008C, PIN_INPUT, 7)
+                       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)
+                       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)
+                       AM65X_IOPAD(0x008c, PIN_INPUT_PULLDOWN, 7)
                >;
        };
 
        d7_ehrpwm3_a: d7-ehrpwm3-a-pins {
                pinctrl-single,pins = <
                        /* (AH15) EHRPWM3_A */
-                       AM65X_IOPAD(0x00AC, PIN_OUTPUT, 5)
+                       AM65X_IOPAD(0x00ac, PIN_OUTPUT, 5)
                >;
        };
 
        d7_gpio: d7-gpio-pins {
                pinctrl-single,pins = <
                        /* (AH15) GPIO0_43 */
-                       AM65X_IOPAD(0x00AC, PIN_INPUT, 7)
+                       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)
+                       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)
+                       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)
+                       AM65X_IOPAD(0x00c0, PIN_OUTPUT, 5)
                >;
        };
 
        d8_gpio: d8-gpio-pins {
                pinctrl-single,pins = <
                        /* (AG15) GPIO0_48 */
-                       AM65X_IOPAD(0x00C0, PIN_INPUT, 7)
+                       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)
+                       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)
+                       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)
+                       AM65X_IOPAD(0x00cc, PIN_OUTPUT, 5)
                >;
        };
 
        d9_gpio: d9-gpio-pins {
                pinctrl-single,pins = <
                        /* (AD15) GPIO0_51 */
-                       AM65X_IOPAD(0x00CC, PIN_INPUT, 7)
+                       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)
+                       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)
+                       AM65X_IOPAD(0x00cc, PIN_INPUT_PULLDOWN, 7)
                >;
        };
 };
index a9a4e7401a494975a866a12aaa865ee178c09f22..f3ee73e64d69c8210bf09fe8ef3f4840c357e313 100644 (file)
        minipcie_pins_default: minipcie-default-pins {
                pinctrl-single,pins = <
                        /* (P2) MCU_OSPI1_DQS.WKUP_GPIO0_27 */
-                       AM65X_WKUP_IOPAD(0x003C, PIN_OUTPUT, 7)
+                       AM65X_WKUP_IOPAD(0x003c, PIN_OUTPUT, 7)
                >;
        };
 };
index 61c11dc92d9c27fc9e47123698c17118cd522be1..d6ee7b9a6b6879aac557055876eabf8916790079 100644 (file)
                #address-cells = <3>;
                #size-cells = <2>;
                ranges = <0x81000000 0 0          0x0 0x10020000 0 0x00010000>,
-                        <0x82000000 0 0x10030000 0x0 0x10030000 0 0x07FD0000>;
+                        <0x82000000 0 0x10030000 0x0 0x10030000 0 0x07fd0000>;
                ti,syscon-pcie-id = <&scm_conf 0x210>;
                ti,syscon-pcie-mode = <&scm_conf 0x4060>;
                bus-range = <0x0 0xff>;
                #address-cells = <3>;
                #size-cells = <2>;
                ranges = <0x81000000 0 0          0x0   0x18020000 0 0x00010000>,
-                        <0x82000000 0 0x18030000 0x0   0x18030000 0 0x07FD0000>;
+                        <0x82000000 0 0x18030000 0x0   0x18030000 0 0x07fd0000>;
                ti,syscon-pcie-id = <&scm_conf 0x210>;
                ti,syscon-pcie-mode = <&scm_conf 0x4070>;
                bus-range = <0x0 0xff>;
index 46c58162eca0d8434bb03225aabded8d561a37bb..e0262c2743eb2d77d4b24cab12b89e46ca182533 100644 (file)
                pinctrl-single,pins = <
                        AM65X_WKUP_IOPAD(0x0044, PIN_INPUT, 4)  /* (P4) MCU_OSPI1_D1.MCU_UART0_RXD */
                        AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4) /* (P5) MCU_OSPI1_D2.MCU_UART0_TXD */
-                       AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 4)  /* (P1) MCU_OSPI1_D3.MCU_UART0_CTSn */
+                       AM65X_WKUP_IOPAD(0x004c, PIN_INPUT, 4)  /* (P1) MCU_OSPI1_D3.MCU_UART0_CTSn */
                        AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 4) /* (N3) MCU_OSPI1_CSn1.MCU_UART0_RTSn */
                >;
                bootph-all;
index 7169d934adac582ad3ebec743dbfd1353dba77ff..95234c8460ed0d5746a1127e88afd71d8c651de6 100644 (file)
@@ -85,8 +85,7 @@
                linux,cma {
                        compatible = "shared-dma-pool";
                        reusable;
-                       size = <0x10000000>;
-                       alignment = <0x2000>;
+                       size = <0x00 0x10000000>;
                        linux,cma-default;
                };
 
                regulator-max-microvolt = <3300000>;
                vin-supply = <&vcc_3p3_s0>;
                regulator-boot-on;
+               enable-active-high;
                enable-gpios = <&main_gpio0 7 GPIO_ACTIVE_HIGH>;
                gpios = <&main_gpio0 8 GPIO_ACTIVE_HIGH>;
                states = <3300000 0x0>,
index 88f202f266c656dabf7c815544c860b595df84f7..8178333fb2b4a997e5ef256dc26169785ebb2e95 100644 (file)
 
        mcu_cpsw_pins_default: mcu-cpsw-default-pins {
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x02C, PIN_INPUT, 0) /* (B22) MCU_RGMII1_RD0 */
+                       J721S2_WKUP_IOPAD(0x02c, PIN_INPUT, 0) /* (B22) MCU_RGMII1_RD0 */
                        J721S2_WKUP_IOPAD(0x028, PIN_INPUT, 0) /* (B21) MCU_RGMII1_RD1 */
                        J721S2_WKUP_IOPAD(0x024, PIN_INPUT, 0) /* (C22) MCU_RGMII1_RD2 */
                        J721S2_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (D23) MCU_RGMII1_RD3 */
-                       J721S2_WKUP_IOPAD(0x01C, PIN_INPUT, 0) /* (D22) MCU_RGMII1_RXC */
+                       J721S2_WKUP_IOPAD(0x01c, PIN_INPUT, 0) /* (D22) MCU_RGMII1_RXC */
                        J721S2_WKUP_IOPAD(0x004, PIN_INPUT, 0) /* (E23) MCU_RGMII1_RX_CTL */
                        J721S2_WKUP_IOPAD(0x014, PIN_OUTPUT, 0) /* (F23) MCU_RGMII1_TD0 */
                        J721S2_WKUP_IOPAD(0x010, PIN_OUTPUT, 0) /* (G22) MCU_RGMII1_TD1 */
-                       J721S2_WKUP_IOPAD(0x00C, PIN_OUTPUT, 0) /* (E21) MCU_RGMII1_TD2 */
+                       J721S2_WKUP_IOPAD(0x00c, PIN_OUTPUT, 0) /* (E21) MCU_RGMII1_TD2 */
                        J721S2_WKUP_IOPAD(0x008, PIN_OUTPUT, 0) /* (E22) MCU_RGMII1_TD3 */
                        J721S2_WKUP_IOPAD(0x018, PIN_OUTPUT, 0) /* (F21) MCU_RGMII1_TXC */
                        J721S2_WKUP_IOPAD(0x000, PIN_OUTPUT, 0) /* (F22) MCU_RGMII1_TX_CTL */
 
        mcu_mcan1_pins_default: mcu-mcan1-default-pins {
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x06C, PIN_INPUT, 0) /* (F26) WKUP_GPIO0_5.MCU_MCAN1_RX */
+                       J721S2_WKUP_IOPAD(0x06c, PIN_INPUT, 0) /* (F26) WKUP_GPIO0_5.MCU_MCAN1_RX */
                        J721S2_WKUP_IOPAD(0x068, PIN_OUTPUT, 0) /* (C23) WKUP_GPIO0_4.MCU_MCAN1_TX*/
                >;
        };
        mcu_rpi_header_gpio0_pins0_default: mcu-rpi-header-gpio0-default-pins-0 {
                pinctrl-single,pins = <
                        J721S2_WKUP_IOPAD(0x118, PIN_INPUT, 7) /* (G25) WKUP_GPIO0_66 */
-                       J721S2_WKUP_IOPAD(0x05C, PIN_INPUT, 7) /* (E24) MCU_SPI1_D0.WKUP_GPIO0_1 */
+                       J721S2_WKUP_IOPAD(0x05c, PIN_INPUT, 7) /* (E24) MCU_SPI1_D0.WKUP_GPIO0_1 */
                        J721S2_WKUP_IOPAD(0x060, PIN_INPUT, 7) /* (C28) MCU_SPI1_D1.WKUP_GPIO0_2 */
                        J721S2_WKUP_IOPAD(0x058, PIN_INPUT, 7) /* (D26) MCU_SPI1_CLK.WKUP_GPIO0_0 */
                        J721S2_WKUP_IOPAD(0x094, PIN_INPUT, 7) /* (D25) MCU_SPI1_CS2.WKUP_GPIO0_15*/
-                       J721S2_WKUP_IOPAD(0x0B8, PIN_INPUT, 7) /* (G27) WKUP_GPIO0_56 */
+                       J721S2_WKUP_IOPAD(0x0b8, PIN_INPUT, 7) /* (G27) WKUP_GPIO0_56 */
                        J721S2_WKUP_IOPAD(0x114, PIN_INPUT, 7) /* (J26) WKUP_GPIO0_57 */
-                       J721S2_WKUP_IOPAD(0x11C, PIN_INPUT, 7) /* (J27) WKUP_GPIO0_67 */
+                       J721S2_WKUP_IOPAD(0x11c, PIN_INPUT, 7) /* (J27) WKUP_GPIO0_67 */
                        J721S2_WKUP_IOPAD(0x064, PIN_INPUT, 7) /* (C27) MCU_SPI1_CS0.WKUP_GPIO0_3 */
                >;
        };
index 55fd214a82e44ccdf0a932e650c46dbbeae91cb8..ec8ff458771574c64597aa68616c9ab578021a17 100644 (file)
        pinctrl-0 = <&pinctrl_main_spi2>,
                    <&pinctrl_main_spi2_cs0>,
                    <&pinctrl_gpio_05>;
-       cs-gpios = <0>, <&wkup_gpio0 29 GPIO_ACTIVE_LOW>;
+       cs-gpios = <&main_gpio0 39 GPIO_ACTIVE_LOW>,
+                  <&wkup_gpio0 29 GPIO_ACTIVE_LOW>;
        status = "okay";
 
        tpm@1 {
                        try-power-role = "sink";
                        self-powered;
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       op-sink-microwatt = <1000000>;
+                       sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
+                       op-sink-microwatt = <0>;
 
                        ports {
                                #address-cells = <1>;
index c7ce804eac703829cbf8b4388e6c6f76092cb4ed..f48601ae38b7c72d36fdaf6d0284d44603a33ac1 100644 (file)
                        try-power-role = "sink";
                        self-powered;
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       op-sink-microwatt = <1000000>;
+                       sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
+                       op-sink-microwatt = <0>;
 
                        ports {
                                #address-cells = <1>;
index 0866eb8a6f34825b6d1c73cf6721190f81ca9b55..5119baf62a4c23621c318b4505e628d4f4141b2d 100644 (file)
        /* Aquila SPI_2 CS */
        pinctrl_main_spi0_cs0: main-spi0-cs0-default-pins {
                pinctrl-single,pins = <
-                       J784S4_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (AM37) SPI0_CS0 */ /* AQUILA D16 */
+                       J784S4_IOPAD(0x0cc, PIN_OUTPUT, 7) /* (AM37) SPI0_CS0.GPIO0_51 */ /* AQUILA D16 */
                >;
        };
 
        /* Aquila SPI_1 CS */
        pinctrl_main_spi2_cs0: main-spi2-cs0-default-pins {
                pinctrl-single,pins = <
-                       J784S4_IOPAD(0x09c, PIN_OUTPUT, 10) /* (AF35) MCASP0_AXR11.SPI2_CS1 */ /* AQUILA D9 */
+                       J784S4_IOPAD(0x09c, PIN_OUTPUT, 7) /* (AF35) MCASP0_AXR11.GPIO0_39 */ /* AQUILA D9 */
                >;
        };
 
 &main_spi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_main_spi0>, <&pinctrl_main_spi0_cs0>;
+       cs-gpios = <&main_gpio0 51 GPIO_ACTIVE_LOW>;
        status = "disabled";
 };
 
 &main_spi2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_main_spi2>, <&pinctrl_main_spi2_cs0>;
+       cs-gpios = <&main_gpio0 39 GPIO_ACTIVE_LOW>;
        status = "disabled";
 };
 
index abe2f21e0e1db5babae87ba6ac68a3f7a5eb484f..e56772a334c58b592d582569257b22d4cb42822a 100644 (file)
 
        vdd_sd_dv_pins_default: vdd-sd-dv-default-pins {
                pinctrl-single,pins = <
-                       J784S4_IOPAD(0x0C4, PIN_INPUT, 7) /* (AD36) ECAP0_IN_APWM_OUT.GPIO0_49 */
+                       J784S4_IOPAD(0x0c4, PIN_INPUT, 7) /* (AD36) ECAP0_IN_APWM_OUT.GPIO0_49 */
                >;
        };
 
        rpi_header_gpio0_pins_default: rpi-header-gpio0-default-pins {
                pinctrl-single,pins = <
-                       J784S4_IOPAD(0x0BC, PIN_INPUT, 7) /* (AD33) MCASP1_AFSX.GPIO0_47 */
-                       J784S4_IOPAD(0x06C, PIN_INPUT, 7) /* (AJ37) MCASP4_AFSX.GPIO0_27 */
-                       J784S4_IOPAD(0x0B4, PIN_INPUT, 7) /* (AL34) MCASP1_AXR4.GPIO0_45 */
-                       J784S4_IOPAD(0x0C0, PIN_INPUT, 7) /* (AD38) MCASP1_AXR0.GPIO0_48 */
-                       J784S4_IOPAD(0x00C, PIN_INPUT, 7) /* (AF33) MCAN13_TX.GPIO0_3 */
-                       J784S4_IOPAD(0x0B8, PIN_INPUT, 7) /* (AC34) MCASP1_ACLKX.GPIO0_46 */
+                       J784S4_IOPAD(0x0bc, PIN_INPUT, 7) /* (AD33) MCASP1_AFSX.GPIO0_47 */
+                       J784S4_IOPAD(0x06c, PIN_INPUT, 7) /* (AJ37) MCASP4_AFSX.GPIO0_27 */
+                       J784S4_IOPAD(0x0b4, PIN_INPUT, 7) /* (AL34) MCASP1_AXR4.GPIO0_45 */
+                       J784S4_IOPAD(0x0c0, PIN_INPUT, 7) /* (AD38) MCASP1_AXR0.GPIO0_48 */
+                       J784S4_IOPAD(0x00c, PIN_INPUT, 7) /* (AF33) MCAN13_TX.GPIO0_3 */
+                       J784S4_IOPAD(0x0b8, PIN_INPUT, 7) /* (AC34) MCASP1_ACLKX.GPIO0_46 */
                        J784S4_IOPAD(0x090, PIN_INPUT, 7) /* (AC35) MCASP0_AXR8.GPIO0_36 */
-                       J784S4_IOPAD(0x0A8, PIN_INPUT, 7) /* (AF34) MCASP0_AXR14.GPIO0_42 */
-                       J784S4_IOPAD(0x0A4, PIN_INPUT, 7) /* (AJ36) MCASP0_AXR13.GPIO0_41 */
+                       J784S4_IOPAD(0x0a8, PIN_INPUT, 7) /* (AF34) MCASP0_AXR14.GPIO0_42 */
+                       J784S4_IOPAD(0x0a4, PIN_INPUT, 7) /* (AJ36) MCASP0_AXR13.GPIO0_41 */
                        J784S4_IOPAD(0x034, PIN_INPUT, 7) /* (AJ34) PMIC_WAKE0n.GPIO0_13 */
-                       J784S4_IOPAD(0x0CC, PIN_INPUT, 7) /* (AM37) SPI0_CS0.GPIO0_51 */
-                       J784S4_IOPAD(0x08C, PIN_INPUT, 7) /* (AE35) MCASP0_AXR7.GPIO0_35 */
+                       J784S4_IOPAD(0x0cc, PIN_INPUT, 7) /* (AM37) SPI0_CS0.GPIO0_51 */
+                       J784S4_IOPAD(0x08c, PIN_INPUT, 7) /* (AE35) MCASP0_AXR7.GPIO0_35 */
                        J784S4_IOPAD(0x008, PIN_INPUT, 7) /* (AJ33) MCAN12_RX.GPIO0_2 */
                        J784S4_IOPAD(0x004, PIN_INPUT, 7) /* (AG36) MCAN12_TX.GPIO0_1 */
                >;
 
        main_mcan7_pins_default: main-mcan7-default-pins {
                pinctrl-single,pins = <
-                       J784S4_IOPAD(0x0A0, PIN_INPUT, 0) /* (AD34) MCAN7_RX */
-                       J784S4_IOPAD(0x09C, PIN_OUTPUT, 0) /* (AF35) MCAN7_TX */
+                       J784S4_IOPAD(0x0a0, PIN_INPUT, 0) /* (AD34) MCAN7_RX */
+                       J784S4_IOPAD(0x09c, PIN_OUTPUT, 0) /* (AF35) MCAN7_TX */
                >;
        };
 
index fec1db8b133d303b716e59dba76ec3308205ce2b..dc5c02a025f8fd71b16fe009a75882e3ce4bcdbe 100644 (file)
                reg = <0x0 0x40f04200 0x0 0x28>;
                #pinctrl-cells = <1>;
                pinctrl-single,register-width = <32>;
-               pinctrl-single,function-mask = <0x0000000F>;
+               pinctrl-single,function-mask = <0x0000000f>;
                status = "reserved";
        };
 
                reg = <0x0 0x40f04280 0x0 0x28>;
                #pinctrl-cells = <1>;
                pinctrl-single,register-width = <32>;
-               pinctrl-single,function-mask = <0x0000000F>;
+               pinctrl-single,function-mask = <0x0000000f>;
                status = "reserved";
        };
 
index 050776cb4df8fefb03afeb579e8c152ce600ea58..689ba2ff81f7fd44a4b1bb3e1c9690225c89d457 100644 (file)
 
        rpi_header_gpio0_pins_default: rpi-header-gpio0-default-pins {
                pinctrl-single,pins = <
-                       J721E_IOPAD(0x01C, PIN_INPUT, 7) /* (AD22) PRG1_PRU0_GPO6.GPIO0_7 */
+                       J721E_IOPAD(0x01c, PIN_INPUT, 7) /* (AD22) PRG1_PRU0_GPO6.GPIO0_7 */
                        J721E_IOPAD(0x120, PIN_INPUT, 7) /* (AA28) PRG0_PRU1_GPO8.GPIO0_71 */
-                       J721E_IOPAD(0x14C, PIN_INPUT, 7) /* (AA29) PRG0_PRU1_GPO19.GPIO0_82 */
-                       J721E_IOPAD(0x02C, PIN_INPUT, 7) /* (AD21) PRG1_PRU0_GPO10.GPIO0_11 */
+                       J721E_IOPAD(0x14c, PIN_INPUT, 7) /* (AA29) PRG0_PRU1_GPO19.GPIO0_82 */
+                       J721E_IOPAD(0x02c, PIN_INPUT, 7) /* (AD21) PRG1_PRU0_GPO10.GPIO0_11 */
                        J721E_IOPAD(0x198, PIN_INPUT, 7) /* (V25) RGMII6_TD1.GPIO0_101 */
-                       J721E_IOPAD(0x1B0, PIN_INPUT, 7) /* (W24) RGMII6_RD1.GPIO0_107 */
-                       J721E_IOPAD(0x1A0, PIN_INPUT, 7) /* (W29) RGMII6_TXC.GPIO0_103 */
+                       J721E_IOPAD(0x1b0, PIN_INPUT, 7) /* (W24) RGMII6_RD1.GPIO0_107 */
+                       J721E_IOPAD(0x1a0, PIN_INPUT, 7) /* (W29) RGMII6_TXC.GPIO0_103 */
                        J721E_IOPAD(0x008, PIN_INPUT, 7) /* (AG22) PRG1_PRU0_GPO1.GPIO0_2 */
-                       J721E_IOPAD(0x1D0, PIN_INPUT, 7) /* (AA3) SPI0_D1.GPIO0_115 */
-                       J721E_IOPAD(0x11C, PIN_INPUT, 7) /* (AA24) PRG0_PRU1_GPO7.GPIO0_70 */
+                       J721E_IOPAD(0x1d0, PIN_INPUT, 7) /* (AA3) SPI0_D1.GPIO0_115 */
+                       J721E_IOPAD(0x11c, PIN_INPUT, 7) /* (AA24) PRG0_PRU1_GPO7.GPIO0_70 */
                        J721E_IOPAD(0x148, PIN_INPUT, 7) /* (AA26) PRG0_PRU1_GPO18.GPIO0_81 */
                        J721E_IOPAD(0x004, PIN_INPUT, 7) /* (AC23) PRG1_PRU0_GPO0.GPIO0_1 */
                        J721E_IOPAD(0x014, PIN_INPUT, 7) /* (AH23) PRG1_PRU0_GPO4.GPIO0_5 */
                        J721E_IOPAD(0x020, PIN_INPUT, 7) /* (AE20) PRG1_PRU0_GPO7.GPIO0_8 */
-                       J721E_IOPAD(0x19C, PIN_INPUT, 7) /* (W27) RGMII6_TD0.GPIO0_102 */
-                       J721E_IOPAD(0x1B4, PIN_INPUT, 7) /* (W25) RGMII6_RD0.GPIO0_108 */
+                       J721E_IOPAD(0x19c, PIN_INPUT, 7) /* (W27) RGMII6_TD0.GPIO0_102 */
+                       J721E_IOPAD(0x1b4, PIN_INPUT, 7) /* (W25) RGMII6_RD0.GPIO0_108 */
                        J721E_IOPAD(0x188, PIN_INPUT, 7) /* (Y28) RGMII6_TX_CTL.GPIO0_97 */
-                       J721E_IOPAD(0x00C, PIN_INPUT, 7) /* (AF22) PRG1_PRU0_GPO2.GPIO0_3 */
+                       J721E_IOPAD(0x00c, PIN_INPUT, 7) /* (AF22) PRG1_PRU0_GPO2.GPIO0_3 */
                        J721E_IOPAD(0x010, PIN_INPUT, 7) /* (AJ23) PRG1_PRU0_GPO3.GPIO0_4 */
                        J721E_IOPAD(0x178, PIN_INPUT, 7) /* (U27) RGMII5_RD3.GPIO0_93 */
-                       J721E_IOPAD(0x17C, PIN_INPUT, 7) /* (U24) RGMII5_RD2.GPIO0_94 */
+                       J721E_IOPAD(0x17c, PIN_INPUT, 7) /* (U24) RGMII5_RD2.GPIO0_94 */
                        J721E_IOPAD(0x190, PIN_INPUT, 7) /* (W23) RGMII6_TD3.GPIO0_99 */
-                       J721E_IOPAD(0x18C, PIN_INPUT, 7) /* (V23) RGMII6_RX_CTL.GPIO0_98 */
+                       J721E_IOPAD(0x18c, PIN_INPUT, 7) /* (V23) RGMII6_RX_CTL.GPIO0_98 */
                >;
        };
 
index b6e22c24295104d4e4449d36116e014cd446b9ed..ba109cc5b2bcc65985f7764bc845b1ed60f3e1f9 100644 (file)
@@ -41,7 +41,7 @@
                        reg = <0x000>;
                        device_type = "cpu";
                        enable-method = "psci";
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
@@ -55,7 +55,7 @@
                        reg = <0x001>;
                        device_type = "cpu";
                        enable-method = "psci";
-                       i-cache-size = <0xC000>;
+                       i-cache-size = <0xc000>;
                        i-cache-line-size = <64>;
                        i-cache-sets = <256>;
                        d-cache-size = <0x8000>;
index 2a7f9c519735ae256e946a44066ee7dafafffb14..32ee8031cfcb63a3d5ef170b1de731cd4936e740 100644 (file)
@@ -87,7 +87,7 @@
        wkup_pmx1: pinctrl@4301c038 {
                compatible = "pinctrl-single";
                /* Proxy 0 addressing */
-               reg = <0x00 0x4301c038 0x00 0x02C>;
+               reg = <0x00 0x4301c038 0x00 0x02c>;
                #pinctrl-cells = <1>;
                pinctrl-single,register-width = <32>;
                pinctrl-single,function-mask = <0xffffffff>;
                /* reserved for MCU_R5F0_1 */
                status = "reserved";
        };
+
+       hsm: remoteproc@43c00000 {
+               compatible = "ti,hsm-m4fss";
+               /* contiguous regions but instantiated separately in HW */
+               reg = <0x00 0x43c00000 0x00 0x20000>,
+                     <0x00 0x43c20000 0x00 0x10000>,
+                     <0x00 0x43c30000 0x00 0x10000>;
+               reg-names = "sram0_0", "sram0_1", "sram1";
+               resets = <&k3_reset 304 1>;
+               firmware-name = "j721s2-hsm-m4f-fw";
+               bootph-pre-ram;
+               ti,sci = <&sms>;
+               ti,sci-dev-id = <304>;
+               ti,sci-proc-ids = <0x80 0xff>;
+               /* reserved for early-stage bootloader */
+               status = "reserved";
+       };
 };
index 7baf5764862b1bad8a956a2483ef83e03176d9a6..e66330c71593adac9a3e14e4d73d2749c7902d20 100644 (file)
        mcu_mcan1_pins_default: mcu-mcan1-default-pins {
                pinctrl-single,pins = <
                        J722S_MCU_IOPAD(0x040, PIN_INPUT, 0) /* (B1) MCU_MCAN1_RX */
-                       J722S_MCU_IOPAD(0x03C, PIN_OUTPUT, 0) /*(C1) MCU_MCAN1_TX */
+                       J722S_MCU_IOPAD(0x03c, PIN_OUTPUT, 0) /*(C1) MCU_MCAN1_TX */
                >;
        };
 
index 873415ec4fa37c8fed0342376fad8d91f0b8f431..9ee5d0c8ffd1ef9be023a2739708b1718fbf0539 100644 (file)
        firmware-name = "j722s-wkup-r5f0_0-fw";
 };
 
+/* MAIN domain overrides */
+&hsm {
+       firmware-name = "j722s-hsm-m4f-fw";
+};
+
 &main_conf {
        serdes_ln_ctrl: mux-controller@4080 {
                compatible = "reg-mux";
index cdc8570e54b29d068aab4e2788a8b36dfa539cfa..059c65ece183f60b9b1c6e5447579cee1524f0b3 100644 (file)
                         <0x00 0x0fd20200 0x00 0x0fd20200 0x00 0x00000200>, /* JPEGENC0_CORE_MMU */
                         <0x00 0x20000000 0x00 0x20000000 0x00 0x0a008000>, /* Third peripheral window */
                         <0x00 0x30040000 0x00 0x30040000 0x00 0x00080000>, /* PRUSS-M */
-                        <0x00 0x301C0000 0x00 0x301C0000 0x00 0x00001000>, /* DPHY-TX */
+                        <0x00 0x301c0000 0x00 0x301c0000 0x00 0x00001000>, /* DPHY-TX */
                         <0x00 0x30101000 0x00 0x30101000 0x00 0x00080100>, /* CSI window */
                         <0x00 0x30200000 0x00 0x30200000 0x00 0x00010000>, /* DSS */
                         <0x00 0x30210000 0x00 0x30210000 0x00 0x00010000>, /* VPU */
                         <0x00 0x31200000 0x00 0x31200000 0x00 0x00040000>, /* USB1 DWC3 Core window */
                         <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */
                         <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */
+                        <0x00 0x43c00000 0x00 0x43c00000 0x00 0x00040000>, /* HSM SRAM ranges */
                         <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */
                         <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */
                         <0x00 0x48000000 0x00 0x48000000 0x00 0x06408000>, /* DMSS */
index 61db2348d6a4755d22cc2fe3316059b999ee2411..2f40afcfa67c44cd59b301c7bd81f8d9faba7037 100644 (file)
@@ -15,3 +15,7 @@
 &mcu_r5fss0_core1 {
        firmware-name = "j742s2-mcu-r5f0_1-fw";
 };
+
+&hsm {
+       firmware-name = "j742s2-hsm-m4f-fw";
+};
index e5073557773711b28a6049d0c27958c1147c1f39..ff3a85cbc524a906a7cb85e3b80764f3431c7b13 100644 (file)
                        J784S4_WKUP_IOPAD(0x024, PIN_OUTPUT, 0) /* (G32) MCU_OSPI1_CSn0 */
                        J784S4_WKUP_IOPAD(0x014, PIN_INPUT, 0) /* (E35) MCU_OSPI1_D0 */
                        J784S4_WKUP_IOPAD(0x018, PIN_INPUT, 0) /* (D31) MCU_OSPI1_D1 */
-                       J784S4_WKUP_IOPAD(0x01C, PIN_INPUT, 0) /* (G31) MCU_OSPI1_D2 */
+                       J784S4_WKUP_IOPAD(0x01c, PIN_INPUT, 0) /* (G31) MCU_OSPI1_D2 */
                        J784S4_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (F33) MCU_OSPI1_D3 */
                        J784S4_WKUP_IOPAD(0x010, PIN_INPUT, 0) /* (F31) MCU_OSPI1_DQS */
-                       J784S4_WKUP_IOPAD(0x00C, PIN_INPUT, 0) /* (C31) MCU_OSPI1_LBCLKO */
+                       J784S4_WKUP_IOPAD(0x00c, PIN_INPUT, 0) /* (C31) MCU_OSPI1_LBCLKO */
                >;
        };
 };
index 9cc0901d58fbf96bf6a8c7fd128694d53f319b69..c2636e624f18ba29d3241f52d553980720d57ef4 100644 (file)
                assigned-clock-parents = <&k3_clks 351 4>;
        };
 
-       watchdog4: watchdog@2240000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x2240000 0x00 0x100>;
-               clocks = <&k3_clks 352 0>;
-               power-domains = <&k3_pds 352 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 352 0>;
-               assigned-clock-parents = <&k3_clks 352 4>;
-       };
-
-       watchdog5: watchdog@2250000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x2250000 0x00 0x100>;
-               clocks = <&k3_clks 353 0>;
-               power-domains = <&k3_pds 353 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 353 0>;
-               assigned-clock-parents = <&k3_clks 353 4>;
-       };
-
-       watchdog6: watchdog@2260000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x2260000 0x00 0x100>;
-               clocks = <&k3_clks 354 0>;
-               power-domains = <&k3_pds 354 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 354 0>;
-               assigned-clock-parents = <&k3_clks 354 4>;
-       };
-
-       watchdog7: watchdog@2270000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x2270000 0x00 0x100>;
-               clocks = <&k3_clks 355 0>;
-               power-domains = <&k3_pds 355 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 355 0>;
-               assigned-clock-parents = <&k3_clks 355 4>;
-       };
-
        /*
         * The following RTI instances are coupled with MCU R5Fs, c7x and
         * GPU so keeping them reserved as these will be used by their
index cc22bfb5f5996070853268f5300ea1a43b096883..df37902c963ffd79c113d0a6cd8cd1c8d6450357 100644 (file)
                /* reserved for MCU_R5F0_1 */
                status = "reserved";
        };
+
+       hsm: remoteproc@43c00000 {
+               compatible = "ti,hsm-m4fss";
+               /* contiguous regions but instantiated separately in HW */
+               reg = <0x00 0x43c00000 0x00 0x20000>,
+                     <0x00 0x43c20000 0x00 0x10000>,
+                     <0x00 0x43c30000 0x00 0x10000>;
+               reg-names = "sram0_0", "sram0_1", "sram1";
+               resets = <&k3_reset 371 1>;
+               firmware-name = "j784s4-hsm-m4f-fw";
+               bootph-pre-ram;
+               ti,sci = <&sms>;
+               ti,sci-dev-id = <371>;
+               ti,sci-proc-ids = <0x80 0xff>;
+               /* reserved for early-stage bootloader */
+               status = "reserved";
+       };
 };
index 0160fe0da98388680d98007908fb8ba950745121..78fcd0c40abcfa80e75b26b8666cdd46b2c06e67 100644 (file)
@@ -6,17 +6,40 @@
  */
 
 &cbass_main {
-       c71_3: dsp@67800000 {
-               compatible = "ti,j721s2-c71-dsp";
-               reg = <0x00 0x67800000 0x00 0x00080000>,
-                     <0x00 0x67e00000 0x00 0x0000c000>;
-               reg-names = "l2sram", "l1dram";
-               resets = <&k3_reset 40 1>;
-               firmware-name = "j784s4-c71_3-fw";
-               ti,sci = <&sms>;
-               ti,sci-dev-id = <40>;
-               ti,sci-proc-ids = <0x33 0xff>;
-               status = "disabled";
+       watchdog4: watchdog@2240000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x2240000 0x00 0x100>;
+               clocks = <&k3_clks 352 0>;
+               power-domains = <&k3_pds 352 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 352 0>;
+               assigned-clock-parents = <&k3_clks 352 4>;
+       };
+
+       watchdog5: watchdog@2250000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x2250000 0x00 0x100>;
+               clocks = <&k3_clks 353 0>;
+               power-domains = <&k3_pds 353 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 353 0>;
+               assigned-clock-parents = <&k3_clks 353 4>;
+       };
+
+       watchdog6: watchdog@2260000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x2260000 0x00 0x100>;
+               clocks = <&k3_clks 354 0>;
+               power-domains = <&k3_pds 354 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 354 0>;
+               assigned-clock-parents = <&k3_clks 354 4>;
+       };
+
+       watchdog7: watchdog@2270000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x2270000 0x00 0x100>;
+               clocks = <&k3_clks 355 0>;
+               power-domains = <&k3_pds 355 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 355 0>;
+               assigned-clock-parents = <&k3_clks 355 4>;
        };
 
        pcie2_rc: pcie@2920000 {
                        status = "disabled";
                };
        };
+
+       c71_3: dsp@67800000 {
+               compatible = "ti,j721s2-c71-dsp";
+               reg = <0x00 0x67800000 0x00 0x00080000>,
+                     <0x00 0x67e00000 0x00 0x0000c000>;
+               reg-names = "l2sram", "l1dram";
+               resets = <&k3_reset 40 1>;
+               firmware-name = "j784s4-c71_3-fw";
+               ti,sci = <&sms>;
+               ti,sci-dev-id = <40>;
+               ti,sci-proc-ids = <0x33 0xff>;
+               status = "disabled";
+       };
 };
 
 &scm_conf {
index d209fdc985979bc7a269718b9434a8a99ea712f0..8d099b2370254a88ada317c3fd3e717c8e181a2f 100644 (file)
@@ -43,7 +43,7 @@
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
 
-       mdio0 {
+       mdio {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "snps,dwmac-mdio";
index ed7aa7e457b164a00ea8a31285964c118afd462f..4439b3e8acbbe536d3b2925754775995bfa8f365 100644 (file)
@@ -43,7 +43,7 @@
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
 
-       mdio0 {
+       mdio {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "snps,dwmac-mdio";
index 0c8321022a73abeb085d2c8916253aa888fdbbdf..af406f7285c4b033c101f3536d156305b1786d13 100644 (file)
@@ -26,7 +26,7 @@
 &spi0 {
        status = "okay";
 
-       mmc-slot@0 {
+       mmc@0 {
                compatible = "mmc-spi-slot";
                reg = <0>;
                gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
index 9aa7b1872bd69e09f1a9f249cbde928c480368f9..88e38d6efcaab414f2f5902761fc4b1ae0c77bad 100644 (file)
                              <0 0x24006000 0 0x2000>;
                };
 
-               pmux: pmux@24190000 {
+               pmux: pinctrl@24190000 {
                        compatible = "toshiba,tmpv7708-pinctrl";
                        reg = <0 0x24190000 0 0x10000>;
                };
                        status = "disabled";
                };
 
-               wdt: wdt@28330000 {
+               wdt: watchdog@28330000 {
                        compatible = "toshiba,visconti-wdt";
                        reg = <0 0x28330000 0 0x1000>;
                        clocks = <&pismu TMPV770X_CLK_WDTCLK>;
index a480c6ba5f5d7b157c83f0c80333b1816fa5d893..5ea835fe08a87a86528b9f6ae2d5303065e04014 100644 (file)
@@ -91,7 +91,7 @@
                bias-pull-up;
        };
 
-       pwm_mux: pwm_mux {
+       pwm_mux: pwm-pins {
                function = "pwm";
        };
 
index 412af9a394aae5d4c0705542b7d6f489f41519dd..15f767608e67fd79115074b54ac5575d506e28b5 100644 (file)
                };
 
                spi0: spi@f1960000 {
-                       compatible = "cdns,spi-r1p6";
+                       compatible = "xlnx,versal-net-spi-r1p6", "cdns,spi-r1p6";
                        status = "disabled";
                        interrupts = <0 23 4>;
                        reg = <0 0xf1960000 0 0x1000>;
                };
 
                spi1: spi@f1970000 {
-                       compatible = "cdns,spi-r1p6";
+                       compatible = "xlnx,versal-net-spi-r1p6", "cdns,spi-r1p6";
                        status = "disabled";
                        interrupts = <0 24 4>;
                        reg = <0 0xf1970000 0 0x1000>;
index 52e122fc7c9e7986345c3206407f0282849a149b..482f432ba7f3d313d4f4b674e9b5878bd2d1cbf8 100644 (file)
@@ -14,7 +14,7 @@
                bootph-all;
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency = <33333333>;
+               clock-frequency = <33333000>;
                clock-output-names = "pss_ref_clk";
        };
 
index 02be5e1e8686da588d84cc662b58661f7c4d2b45..23f6695d86b48cbee927e788fadeca6fe4d2217f 100644 (file)
                ethernet0 = "/axi/ethernet@ff0c0000"; /* &gem1 */
        };
 
-       ina260-u3 {
-               compatible = "iio-hwmon";
-               io-channels = <&u3 0>, <&u3 1>, <&u3 2>;
-       };
-
        clk_26: clock2 { /* u17 - USB */
                compatible = "fixed-clock";
                #clock-cells = <0>;
@@ -67,7 +62,6 @@
 
        u3: ina260@40 { /* u3 */
                compatible = "ti,ina260";
-               #io-channel-cells = <1>;
                label = "ina260-u14";
                reg = <0x40>;
        };
@@ -75,7 +69,6 @@
        slg7xl45106: gpio@11 { /* u13 - reset logic */
                compatible = "dlg,slg7xl45106";
                reg = <0x11>;
-               label = "resetchip";
                gpio-controller;
                #gpio-cells = <2>;
                gpio-line-names = "USB0_PHY_RESET_B", "",
index b92dcb86e87e9c7c36196da234130434a0271026..b82a056be2f9903f0ea68aa89c2cda517fd13b3f 100644 (file)
                ethernet1 = "/axi/ethernet@ff0c0000"; /* &gem1 */
        };
 
-       ina260-u14 {
-               compatible = "iio-hwmon";
-               io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
-       };
-
        clk_27: clock0 { /* u86 - DP */
                compatible = "fixed-clock";
                #clock-cells = <0>;
@@ -95,7 +90,6 @@
 
        u14: ina260@40 { /* u14 */
                compatible = "ti,ina260";
-               #io-channel-cells = <1>;
                label = "ina260-u14";
                reg = <0x40>;
        };
        slg7xl45106: gpio@11 { /* u19 - reset logic */
                compatible = "dlg,slg7xl45106";
                reg = <0x11>;
-               label = "resetchip";
                gpio-controller;
                #gpio-cells = <2>;
                gpio-line-names = "USB0_PHY_RESET_B", "USB1_PHY_RESET_B",
index 99ad220d13d6ff65f50aeb7a52462d5f079a87aa..4dcf92a2158fd02cf82d7397b8250d36fae4dc27 100644 (file)
                ethernet1 = "/axi/ethernet@ff0c0000"; /* &gem1 */
        };
 
-       ina260-u14 {
-               compatible = "iio-hwmon";
-               io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
-       };
-
        clk_125: clock0 { /* u87 - GEM0/1 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
@@ -96,7 +91,6 @@
 
        u14: ina260@40 { /* u14 */
                compatible = "ti,ina260";
-               #io-channel-cells = <1>;
                label = "ina260-u14";
                reg = <0x40>;
        };
        slg7xl45106: gpio@11 { /* u19 - reset logic */
                compatible = "dlg,slg7xl45106";
                reg = <0x11>;
-               label = "resetchip";
                gpio-controller;
                #gpio-cells = <2>;
                gpio-line-names = "USB0_PHY_RESET_B", "USB1_PHY_RESET_B",
index d7351a17d3e88d589123c7cc723b4af81393735b..923a70d750bfcc72ec1d0659d124020469aab026 100644 (file)
                ethernet0 = "/axi/ethernet@ff0e0000"; /* &gem3 */
        };
 
-       ina260-u14 {
-               compatible = "iio-hwmon";
-               io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
-       };
-
        si5332_0: si5332-0 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
@@ -96,7 +91,6 @@
 
        u14: ina260@40 { /* u14 */
                compatible = "ti,ina260";
-               #io-channel-cells = <1>;
                label = "ina260-u14";
                reg = <0x40>;
        };
index a4ae37ebaccf6f8eb39da938ab388c3dcbd087cc..563e750b0e082223a10482e4bb499c81d58991c8 100644 (file)
                ethernet0 = "/axi/ethernet@ff0e0000"; /* &gem3 */
        };
 
-       ina260-u14 {
-               compatible = "iio-hwmon";
-               io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
-       };
-
        si5332_0: si5332-0 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
@@ -92,7 +87,6 @@
 
        u14: ina260@40 { /* u14 */
                compatible = "ti,ina260";
-               #io-channel-cells = <1>;
                label = "ina260-u14";
                reg = <0x40>;
        };
index 938b014ca9231d265314c0d6a934d0be706e420b..29058e633fe998ab7d7a5c3d6b1bc36ded941800 100644 (file)
        cpu_opp_table: opp-table-cpu {
                compatible = "operating-points-v2";
                opp-shared;
-               opp00 {
-                       opp-hz = /bits/ 64 <1199999988>;
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
                        opp-microvolt = <1000000>;
                        clock-latency-ns = <500000>;
                };
-               opp01 {
-                       opp-hz = /bits/ 64 <599999994>;
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
                        opp-microvolt = <1000000>;
                        clock-latency-ns = <500000>;
                };
-               opp02 {
-                       opp-hz = /bits/ 64 <399999996>;
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
                        opp-microvolt = <1000000>;
                        clock-latency-ns = <500000>;
                };
-               opp03 {
-                       opp-hz = /bits/ 64 <299999997>;
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
                        opp-microvolt = <1000000>;
                        clock-latency-ns = <500000>;
                };
        };
 
        firmware {
-               optee: optee  {
-                       compatible = "linaro,optee-tz";
-                       method = "smc";
-               };
-
                zynqmp_firmware: zynqmp-firmware {
                        compatible = "xlnx,zynqmp-firmware";
                        #power-domain-cells = <1>;
                };
 
                spi0: spi@ff040000 {
-                       compatible = "cdns,spi-r1p6";
+                       compatible = "xlnx,zynqmp-spi-r1p6", "cdns,spi-r1p6";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                spi1: spi@ff050000 {
-                       compatible = "cdns,spi-r1p6";
+                       compatible = "xlnx,zynqmp-spi-r1p6", "cdns,spi-r1p6";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
index 018ed904352a738b6dc80ae8849bf0014251119d..7ace54c84244e0802abbca884151423621dde73e 100644 (file)
        };
 };
 
+&apbdma0 {
+       status = "okay";
+};
+
+&nand {
+       status = "okay";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       nand@0 {
+               reg = <0>;
+               label = "ls2k0500-nand";
+               nand-use-soft-ecc-engine;
+               nand-ecc-algo = "bch";
+               nand-ecc-strength = <8>;
+               nand-ecc-step-size = <512>;
+       };
+};
+
 &apbdma3 {
        status = "okay";
 };
index e759fae77dcf46612bfd6c3ef62302b8c8514e83..1b502064df1100b6ada3e4caf9d834a5a510834d 100644 (file)
@@ -84,7 +84,7 @@
                        clock-names = "ref_100m";
                };
 
-               dma-controller@1fe10c00 {
+               apbdma0: dma-controller@1fe10c00 {
                        compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
                        reg = <0 0x1fe10c00 0 0x8>;
                        interrupt-parent = <&eiointc>;
                        interrupts = <3>;
                };
 
+               nand: nand-controller@1ff58000 {
+                       compatible = "loongson,ls2k0500-nand-controller";
+                       reg = <0 0x1ff58000 0 0x24>,
+                             <0 0x1ff58040 0 0x4>;
+                       reg-names = "nand", "nand-dma";
+                       dmas = <&apbdma0 0>;
+                       dma-names = "rxtx";
+                       status = "disabled";
+               };
+
                pwm@1ff5c000 {
                        compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
                        reg = <0x0 0x1ff5c000 0x0 0x10>;
index d9a452ada5d771b32b5a157b437c8c9309c354df..51b8e53cb60840055852ea687300fc02071a6e36 100644 (file)
        };
 };
 
+&apbdma0 {
+       status = "okay";
+};
+
+&nand {
+       status = "okay";
+
+       pinctrl-0 = <&nand_pins_default>;
+       pinctrl-names = "default";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       nand@0 {
+               reg = <0>;
+               label = "ls2k1000-nand";
+               nand-use-soft-ecc-engine;
+               nand-ecc-algo = "bch";
+               nand-ecc-strength = <8>;
+               nand-ecc-step-size = <512>;
+       };
+};
+
 &apbdma1 {
        status = "okay";
 };
index be4f7d119660ee0090bd39a0ea3df159759d78ee..ab6a55937e9ebf78b3f8557aa0b64ef43be3fd32 100644 (file)
                        #thermal-sensor-cells = <1>;
                };
 
-               dma-controller@1fe00c00 {
+               apbdma0: dma-controller@1fe00c00 {
                        compatible = "loongson,ls2k1000-apbdma";
                        reg = <0x0 0x1fe00c00 0x0 0x8>;
                        interrupt-parent = <&liointc1>;
                        status = "disabled";
                };
 
+               nand: nand-controller@1fe26000 {
+                       compatible = "loongson,ls2k1000-nand-controller";
+                       reg = <0 0x1fe26000 0 0x24>,
+                             <0 0x1fe26040 0 0x4>,
+                             <0 0x1fe00438 0 0x8>;
+                       reg-names = "nand", "nand-dma", "dma-config";
+                       dmas = <&apbdma0 0>;
+                       dma-names = "rxtx";
+                       status = "disabled";
+               };
+
                pmc: power-management@1fe27000 {
                        compatible = "loongson,ls2k1000-pmc", "loongson,ls2k0500-pmc", "syscon";
                        reg = <0x0 0x1fe27000 0x0 0x58>;
index ee71045883e7e72baa938eb59787e2d7135c2cee..6dee85909f5a617b7c104f771bb2549eee3e0dd0 100644 (file)
                                             <13 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-names = "macirq", "eth_lpi";
                                interrupt-parent = <&pic>;
-                               phy-mode = "rgmii";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&phy0>;
                                mdio {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                             <15 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-names = "macirq", "eth_lpi";
                                interrupt-parent = <&pic>;
-                               phy-mode = "rgmii";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&phy1>;
                                mdio {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
diff --git a/src/openrisc/de0-nano-common.dtsi b/src/openrisc/de0-nano-common.dtsi
new file mode 100644 (file)
index 0000000..02e329e
--- /dev/null
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       leds0: leds {
+               compatible = "gpio-leds";
+
+               led-heartbeat {
+                       gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       linux,default-trigger = "heartbeat";
+                       label = "heartbeat";
+               };
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x02000000>;
+       };
+
+       /* 8 Green LEDs */
+       gpio0: gpio@91000000 {
+               compatible = "opencores,gpio";
+               reg = <0x91000000 0x1>, <0x91000001 0x1>;
+               reg-names = "dat", "dirout";
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       /* 4 DIP Switches */
+       gpio1: gpio@92000000 {
+               compatible = "opencores,gpio";
+               reg = <0x92000000 0x1>, <0x92000001 0x1>;
+               reg-names = "dat", "dirout";
+               gpio-controller;
+               #gpio-cells = <2>;
+               status = "disabled";
+       };
+};
diff --git a/src/openrisc/de0-nano-multicore.dts b/src/openrisc/de0-nano-multicore.dts
new file mode 100644 (file)
index 0000000..b6cf286
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/dts-v1/;
+
+#include "simple-smp.dtsi"
+#include "de0-nano-common.dtsi"
+
+/ {
+       model = "Terasic DE0 Nano - Multicore";
+};
+
+&cpu0 {
+       clock-frequency = <50000000>;
+};
+
+&cpu1 {
+       clock-frequency = <50000000>;
+};
+
+&serial0 {
+       clock-frequency = <50000000>;
+};
diff --git a/src/openrisc/de0-nano.dts b/src/openrisc/de0-nano.dts
new file mode 100644 (file)
index 0000000..b5b854e
--- /dev/null
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+
+#include "de0-nano-common.dtsi"
+
+/ {
+       model = "Terasic DE0 Nano";
+       compatible = "opencores,or1ksim";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       interrupt-parent = <&pic>;
+
+       aliases {
+               uart0 = &serial0;
+       };
+
+       chosen {
+               stdout-path = "uart0:115200";
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       compatible = "opencores,or1200-rtlsvn481";
+                       reg = <0>;
+                       clock-frequency = <50000000>;
+               };
+       };
+
+       /*
+        * OR1K PIC is built into CPU and accessed via special purpose
+        * registers.  It is not addressable and, hence, has no 'reg'
+        * property.
+        */
+       pic: pic {
+               compatible = "opencores,or1k-pic";
+               #interrupt-cells = <1>;
+               interrupt-controller;
+       };
+
+       serial0: serial@90000000 {
+               compatible = "opencores,uart16550-rtlsvn105", "ns16550a";
+               reg = <0x90000000 0x100>;
+               interrupts = <2>;
+               clock-frequency = <50000000>;
+       };
+};
+
+&gpio1 {
+       status = "okay";
+};
diff --git a/src/openrisc/simple-smp.dts b/src/openrisc/simple-smp.dts
new file mode 100644 (file)
index 0000000..01cf219
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+
+#include "simple-smp.dtsi"
+
+/ {
+       model = "Simple SMP Board";
+};
+
+&cpu0 {
+       clock-frequency = <20000000>;
+};
+
+&cpu1 {
+       clock-frequency = <20000000>;
+};
+
+&enet0 {
+       status = "okay";
+};
+
+&serial0 {
+       clock-frequency = <20000000>;
+};
similarity index 90%
rename from src/openrisc/simple_smp.dts
rename to src/openrisc/simple-smp.dtsi
index 71af0e117bfe5f675806c63beaf78def53433a82..42d6eda33b71e1d0722735fd29e248f448e50e5d 100644 (file)
@@ -1,4 +1,3 @@
-/dts-v1/;
 / {
        compatible = "opencores,or1ksim";
        #address-cells = <1>;
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
-               cpu@0 {
+
+               cpu0: cpu@0 {
                        compatible = "opencores,or1200-rtlsvn481";
                        reg = <0>;
-                       clock-frequency = <20000000>;
                };
-               cpu@1 {
+
+               cpu1: cpu@1 {
                        compatible = "opencores,or1200-rtlsvn481";
                        reg = <1>;
-                       clock-frequency = <20000000>;
                };
        };
 
@@ -57,7 +56,6 @@
                compatible = "opencores,uart16550-rtlsvn105", "ns16550a";
                reg = <0x90000000 0x100>;
                interrupts = <2>;
-               clock-frequency = <20000000>;
        };
 
        enet0: ethoc@92000000 {
@@ -65,5 +63,6 @@
                reg = <0x92000000 0x800>;
                interrupts = <4>;
                big-endian;
+               status = "disabled";
        };
 };
index 33ddb17d18760df24ac8f068dce38ac60c353f32..c541bd3679831f8f903cdcf9261df5eeeca36748 100644 (file)
@@ -37,7 +37,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x8000000>;   // 128MB at 0
        };
diff --git a/src/powerpc/fsl/interlaken-lac-portals.dtsi b/src/powerpc/fsl/interlaken-lac-portals.dtsi
deleted file mode 100644 (file)
index 9cffccf..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/* T4240 Interlaken LAC Portal device tree stub with 24 portals.
- *
- * Copyright 2012 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#address-cells = <0x1>;
-#size-cells = <0x1>;
-compatible = "fsl,interlaken-lac-portals";
-
-lportal0: lac-portal@0 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x0 0x1000>;
-};
-
-lportal1: lac-portal@1000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x1000 0x1000>;
-};
-
-lportal2: lac-portal@2000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x2000 0x1000>;
-};
-
-lportal3: lac-portal@3000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x3000 0x1000>;
-};
-
-lportal4: lac-portal@4000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x4000 0x1000>;
-};
-
-lportal5: lac-portal@5000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x5000 0x1000>;
-};
-
-lportal6: lac-portal@6000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x6000 0x1000>;
-};
-
-lportal7: lac-portal@7000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x7000 0x1000>;
-};
-
-lportal8: lac-portal@8000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x8000 0x1000>;
-};
-
-lportal9: lac-portal@9000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x9000 0x1000>;
-};
-
-lportal10: lac-portal@A000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0xA000 0x1000>;
-};
-
-lportal11: lac-portal@B000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0xB000 0x1000>;
-};
-
-lportal12: lac-portal@C000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0xC000 0x1000>;
-};
-
-lportal13: lac-portal@D000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0xD000 0x1000>;
-};
-
-lportal14: lac-portal@E000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0xE000 0x1000>;
-};
-
-lportal15: lac-portal@F000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0xF000 0x1000>;
-};
-
-lportal16: lac-portal@10000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x10000 0x1000>;
-};
-
-lportal17: lac-portal@11000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x11000 0x1000>;
-};
-
-lportal18: lac-portal@1200 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x12000 0x1000>;
-};
-
-lportal19: lac-portal@13000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x13000 0x1000>;
-};
-
-lportal20: lac-portal@14000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x14000 0x1000>;
-};
-
-lportal21: lac-portal@15000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x15000 0x1000>;
-};
-
-lportal22: lac-portal@16000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x16000 0x1000>;
-};
-
-lportal23: lac-portal@17000 {
-       compatible = "fsl,interlaken-lac-portal-v1.0";
-       reg = <0x17000 0x1000>;
-};
diff --git a/src/powerpc/fsl/interlaken-lac.dtsi b/src/powerpc/fsl/interlaken-lac.dtsi
deleted file mode 100644 (file)
index e820872..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * T4 Interlaken Look-aside Controller (LAC) device tree stub
- *
- * Copyright 2012 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-lac: lac@229000 {
-       compatible = "fsl,interlaken-lac";
-       reg = <0x229000 0x1000>;
-       interrupts = <16 2 1 18>;
-};
-
-lac-hv@228000 {
-       compatible = "fsl,interlaken-lac-hv";
-       reg = <0x228000 0x1000>;
-       fsl,non-hv-node = <&lac>;
-};
diff --git a/src/powerpc/fsl/pq3-mpic-message-B.dtsi b/src/powerpc/fsl/pq3-mpic-message-B.dtsi
deleted file mode 100644 (file)
index 1cf0b77..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * PQ3 MPIC Message (Group B) device tree stub [ controller @ offset 0x42400 ]
- *
- * Copyright 2012 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-message@42400 {
-       compatible = "fsl,mpic-v3.1-msgr";
-       reg = <0x42400 0x200>;
-       interrupts = <
-               0xb4 2 0 0
-               0xb5 2 0 0
-               0xb6 2 0 0
-               0xb7 2 0 0>;
-};
diff --git a/src/powerpc/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi b/src/powerpc/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
deleted file mode 100644 (file)
index 71eb75e..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * QorIQ FMan v3 1g port #1 device tree stub [ controller @ offset 0x400000 ]
- *
- * Copyright 2012 - 2015 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *      names of its contributors may be used to endorse or promote products
- *      derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-fman@400000 {
-       fman0_rx_0x09: port@89000 {
-               cell-index = <0x9>;
-               compatible = "fsl,fman-v3-port-rx";
-               reg = <0x89000 0x1000>;
-               fsl,fman-10g-port;
-               fsl,fman-best-effort-port;
-       };
-
-       fman0_tx_0x29: port@a9000 {
-               cell-index = <0x29>;
-               compatible = "fsl,fman-v3-port-tx";
-               reg = <0xa9000 0x1000>;
-               fsl,fman-10g-port;
-               fsl,fman-best-effort-port;
-       };
-
-       ethernet@e2000 {
-               cell-index = <1>;
-               compatible = "fsl,fman-memac";
-               reg = <0xe2000 0x1000>;
-               fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>;
-               ptp-timer = <&ptp_timer0>;
-               pcsphy-handle = <&pcsphy1>, <&qsgmiia_pcs1>;
-               pcs-handle-names = "sgmii", "qsgmii";
-       };
-
-       mdio@e1000 {
-               qsgmiia_pcs1: ethernet-pcs@1 {
-                       compatible = "fsl,lynx-pcs";
-                       reg = <1>;
-               };
-       };
-
-       mdio@e3000 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
-               reg = <0xe3000 0x1000>;
-               fsl,erratum-a011043; /* must ignore read errors */
-
-               pcsphy1: ethernet-phy@0 {
-                       reg = <0x0>;
-               };
-       };
-};
index 2638555afcc4546c9e88666d885d8af38cee20af..41f917f97dab8d264f4397be0767027d7563df59 100644 (file)
@@ -37,7 +37,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x08000000>;  // 128MB at 0
        };
index af2ed8380a867ce0c587da9a3f637aca28c0f8c1..39ed26fba410932fbec2adfe4e5a9c7e8455829f 100644 (file)
@@ -38,7 +38,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x08000000>;  // 128MB at 0
        };
index 09508b4c8c73095bf4699e383e7841100d6d7c8f..c9fe4dabc80a78eb0cf66bc616c23902ec9e3f10 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
        model = "MPC8313ERDB";
@@ -38,7 +39,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x08000000>;  // 128MB at 0
        };
@@ -48,7 +49,7 @@
                #size-cells = <1>;
                compatible = "fsl,mpc8313-elbc", "fsl,elbc", "simple-bus";
                reg = <0xe0005000 0x1000>;
-               interrupts = <77 0x8>;
+               interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&ipic>;
 
                // CS0 and CS1 are swapped when
                                cell-index = <0>;
                                compatible = "fsl-i2c";
                                reg = <0x3000 0x100>;
-                               interrupts = <14 0x8>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
                                interrupt-parent = <&ipic>;
                                dfsrr;
                                rtc@68 {
                                compatible = "fsl,sec2.2", "fsl,sec2.1",
                                             "fsl,sec2.0";
                                reg = <0x30000 0x10000>;
-                               interrupts = <11 0x8>;
+                               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                                interrupt-parent = <&ipic>;
                                fsl,num-channels = <1>;
                                fsl,channel-fifo-len = <24>;
                        cell-index = <1>;
                        compatible = "fsl-i2c";
                        reg = <0x3100 0x100>;
-                       interrupts = <15 0x8>;
+                       interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        dfsrr;
                };
                        cell-index = <0>;
                        compatible = "fsl,spi";
                        reg = <0x7000 0x1000>;
-                       interrupts = <16 0x8>;
+                       interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        mode = "cpu";
                };
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupt-parent = <&ipic>;
-                       interrupts = <38 0x8>;
+                       interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
                        phy_type = "utmi_wide";
                        sleep = <&pmc 0x00300000>;
                };
                ptp_clock@24E00 {
                        compatible = "fsl,etsec-ptp";
                        reg = <0x24E00 0xB0>;
-                       interrupts = <12 0x8 13 0x8>;
+                       interrupts = <12 IRQ_TYPE_LEVEL_LOW>,
+                                    <13 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = < &ipic >;
                        fsl,tclk-period = <10>;
                        fsl,tmr-prsc    = <100>;
                        compatible = "gianfar";
                        reg = <0x24000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <37 0x8 36 0x8 35 0x8>;
+                       interrupts = <37 IRQ_TYPE_LEVEL_LOW>,
+                                    <36 IRQ_TYPE_LEVEL_LOW>,
+                                    <35 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        tbi-handle = < &tbi0 >;
                        /* Vitesse 7385 isn't on the MDIO bus */
                                reg = <0x520 0x20>;
                                phy4: ethernet-phy@4 {
                                        interrupt-parent = <&ipic>;
-                                       interrupts = <20 0x8>;
+                                       interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
                                        reg = <0x4>;
                                };
                                tbi0: tbi-phy@11 {
                        reg = <0x25000 0x1000>;
                        ranges = <0x0 0x25000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <34 0x8 33 0x8 32 0x8>;
+                       interrupts = <34 IRQ_TYPE_LEVEL_LOW>,
+                                    <33 IRQ_TYPE_LEVEL_LOW>,
+                                    <32 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        tbi-handle = < &tbi1 >;
                        phy-handle = < &phy4 >;
                        compatible = "fsl,ns16550", "ns16550";
                        reg = <0x4500 0x100>;
                        clock-frequency = <0>;
-                       interrupts = <9 0x8>;
+                       interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                        compatible = "fsl,ns16550", "ns16550";
                        reg = <0x4600 0x100>;
                        clock-frequency = <0>;
-                       interrupts = <10 0x8>;
+                       interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                /* IPIC
-                * interrupts cell = <intr #, sense>
-                * sense values match linux IORESOURCE_IRQ_* defines:
-                * sense == 8: Level, low assertion
-                * sense == 2: Edge, high-to-low change
+                * interrupts cell = <intr #, type>
                 */
                ipic: pic@700 {
                        interrupt-controller;
                pmc: power@b00 {
                        compatible = "fsl,mpc8313-pmc", "fsl,mpc8349-pmc";
                        reg = <0xb00 0x100 0xa00 0x100>;
-                       interrupts = <80 8>;
+                       interrupts = <80 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        fsl,mpc8313-wakeup-timer = <&gtm1>;
 
                gtm1: timer@500 {
                        compatible = "fsl,mpc8313-gtm", "fsl,gtm";
                        reg = <0x500 0x100>;
-                       interrupts = <90 8 78 8 84 8 72 8>;
+                       interrupts = <90 IRQ_TYPE_LEVEL_LOW>,
+                                    <78 IRQ_TYPE_LEVEL_LOW>,
+                                    <84 IRQ_TYPE_LEVEL_LOW>,
+                                    <72 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                timer@600 {
                        compatible = "fsl,mpc8313-gtm", "fsl,gtm";
                        reg = <0x600 0x100>;
-                       interrupts = <91 8 79 8 85 8 73 8>;
+                       interrupts = <91 IRQ_TYPE_LEVEL_LOW>,
+                                    <79 IRQ_TYPE_LEVEL_LOW>,
+                                    <85 IRQ_TYPE_LEVEL_LOW>,
+                                    <73 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
        };
                                         0x7800 0x0 0x0 0x3 &ipic 17 0x8
                                         0x7800 0x0 0x0 0x4 &ipic 18 0x8>;
                        interrupt-parent = <&ipic>;
-                       interrupts = <66 0x8>;
+                       interrupts = <66 IRQ_TYPE_LEVEL_LOW>;
                        bus-range = <0x0 0x0>;
                        ranges = <0x02000000 0x0 0x90000000 0x90000000 0x0 0x10000000
                                  0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000
                        reg = <0xe00082a8 4>;
                        ranges = <0 0xe0008100 0x1a8>;
                        interrupt-parent = <&ipic>;
-                       interrupts = <71 8>;
+                       interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
 
                        dma-channel@0 {
                                compatible = "fsl,mpc8313-dma-channel",
                                             "fsl,elo-dma-channel";
                                reg = <0 0x28>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                                cell-index = <0>;
                        };
 
                                             "fsl,elo-dma-channel";
                                reg = <0x80 0x28>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                                cell-index = <1>;
                        };
 
                                             "fsl,elo-dma-channel";
                                reg = <0x100 0x28>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                                cell-index = <2>;
                        };
 
                                             "fsl,elo-dma-channel";
                                reg = <0x180 0x28>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                                cell-index = <3>;
                        };
                };
index a8f68d6e50b0ddfeffca939254f850a2e119d3a2..7ba1159f88031122558a4be805bba86dfe156c77 100644 (file)
@@ -40,7 +40,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x08000000>;  // 128MB at 0
        };
@@ -50,7 +50,7 @@
                #size-cells = <1>;
                compatible = "fsl,mpc8315-elbc", "fsl,elbc", "simple-bus";
                reg = <0xe0005000 0x1000>;
-               interrupts = <77 0x8>;
+               interrupts = <77 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&ipic>;
 
                // CS0 and CS1 are swapped when
                        cell-index = <0>;
                        compatible = "fsl-i2c";
                        reg = <0x3000 0x100>;
-                       interrupts = <14 0x8>;
+                       interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        dfsrr;
                        rtc@68 {
                        cell-index = <0>;
                        compatible = "fsl,spi";
                        reg = <0x7000 0x1000>;
-                       interrupts = <16 0x8>;
+                       interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        mode = "cpu";
                };
 
                        reg = <0x82a8 4>;
                        ranges = <0 0x8100 0x1a8>;
                        interrupt-parent = <&ipic>;
-                       interrupts = <71 8>;
+                       interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                        cell-index = <0>;
                        dma-channel@0 {
                                compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel";
                                reg = <0 0x80>;
                                cell-index = <0>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                        };
                        dma-channel@80 {
                                compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel";
                                reg = <0x80 0x80>;
                                cell-index = <1>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                        };
                        dma-channel@100 {
                                compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel";
                                reg = <0x100 0x80>;
                                cell-index = <2>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                        };
                        dma-channel@180 {
                                compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel";
                                reg = <0x180 0x28>;
                                cell-index = <3>;
                                interrupt-parent = <&ipic>;
-                               interrupts = <71 8>;
+                               interrupts = <71 IRQ_TYPE_LEVEL_LOW>;
                        };
                };
 
                        #address-cells = <1>;
                        #size-cells = <0>;
                        interrupt-parent = <&ipic>;
-                       interrupts = <38 0x8>;
+                       interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
                        phy_type = "utmi";
                };
 
                        reg = <0x24000 0x1000>;
                        ranges = <0x0 0x24000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <32 0x8 33 0x8 34 0x8>;
+                       interrupts = <32 IRQ_TYPE_LEVEL_LOW>,
+                                    <33 IRQ_TYPE_LEVEL_LOW>,
+                                    <34 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        tbi-handle = <&tbi0>;
                        phy-handle = < &phy0 >;
                        reg = <0x25000 0x1000>;
                        ranges = <0x0 0x25000 0x1000>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 0x8 36 0x8 37 0x8>;
+                       interrupts = <35 IRQ_TYPE_LEVEL_LOW>,
+                                    <36 IRQ_TYPE_LEVEL_LOW>,
+                                    <37 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        tbi-handle = <&tbi1>;
                        phy-handle = < &phy1 >;
                        compatible = "fsl,ns16550", "ns16550";
                        reg = <0x4500 0x100>;
                        clock-frequency = <133333333>;
-                       interrupts = <9 0x8>;
+                       interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                        compatible = "fsl,ns16550", "ns16550";
                        reg = <0x4600 0x100>;
                        clock-frequency = <133333333>;
-                       interrupts = <10 0x8>;
+                       interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                                     "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1",
                                     "fsl,sec2.0";
                        reg = <0x30000 0x10000>;
-                       interrupts = <11 0x8>;
+                       interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        fsl,num-channels = <4>;
                        fsl,channel-fifo-len = <24>;
                        compatible = "fsl,mpc8315-sata", "fsl,pq-sata";
                        reg = <0x18000 0x1000>;
                        cell-index = <1>;
-                       interrupts = <44 0x8>;
+                       interrupts = <44 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                        compatible = "fsl,mpc8315-sata", "fsl,pq-sata";
                        reg = <0x19000 0x1000>;
                        cell-index = <2>;
-                       interrupts = <45 0x8>;
+                       interrupts = <45 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                };
 
                gtm1: timer@500 {
                        compatible = "fsl,mpc8315-gtm", "fsl,gtm";
                        reg = <0x500 0x100>;
-                       interrupts = <90 8 78 8 84 8 72 8>;
+                       interrupts = <90 IRQ_TYPE_LEVEL_LOW>,
+                                    <78 IRQ_TYPE_LEVEL_LOW>,
+                                    <84 IRQ_TYPE_LEVEL_LOW>,
+                                    <72 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        clock-frequency = <133333333>;
                };
                timer@600 {
                        compatible = "fsl,mpc8315-gtm", "fsl,gtm";
                        reg = <0x600 0x100>;
-                       interrupts = <91 8 79 8 85 8 73 8>;
+                       interrupts = <91 IRQ_TYPE_LEVEL_LOW>,
+                                    <79 IRQ_TYPE_LEVEL_LOW>,
+                                    <85 IRQ_TYPE_LEVEL_LOW>,
+                                    <73 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        clock-frequency = <133333333>;
                };
 
                /* IPIC
-                * interrupts cell = <intr #, sense>
-                * sense values match linux IORESOURCE_IRQ_* defines:
-                * sense == 8: Level, low assertion
-                * sense == 2: Edge, high-to-low change
+                * interrupts cell = <intr #, type>
                 */
                ipic: interrupt-controller@700 {
                        interrupt-controller;
                        compatible = "fsl,ipic-msi";
                        reg = <0x7c0 0x40>;
                        msi-available-ranges = <0 0x100>;
-                       interrupts = <0x43 0x8
-                                     0x4  0x8
-                                     0x51 0x8
-                                     0x52 0x8
-                                     0x56 0x8
-                                     0x57 0x8
-                                     0x58 0x8
-                                     0x59 0x8>;
+                       interrupts = <0x43 IRQ_TYPE_LEVEL_LOW
+                                     0x4  IRQ_TYPE_LEVEL_LOW
+                                     0x51 IRQ_TYPE_LEVEL_LOW
+                                     0x52 IRQ_TYPE_LEVEL_LOW
+                                     0x56 IRQ_TYPE_LEVEL_LOW
+                                     0x57 IRQ_TYPE_LEVEL_LOW
+                                     0x58 IRQ_TYPE_LEVEL_LOW
+                                     0x59 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = < &ipic >;
                };
 
                        compatible = "fsl,mpc8315-pmc", "fsl,mpc8313-pmc",
                                     "fsl,mpc8349-pmc";
                        reg = <0xb00 0x100 0xa00 0x100>;
-                       interrupts = <80 8>;
+                       interrupts = <80 IRQ_TYPE_LEVEL_LOW>;
                        interrupt-parent = <&ipic>;
                        fsl,mpc8313-wakeup-timer = <&gtm1>;
                };
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
                                /* IDSEL 0x0E -mini PCI */
-                                0x7000 0x0 0x0 0x1 &ipic 18 0x8
-                                0x7000 0x0 0x0 0x2 &ipic 18 0x8
-                                0x7000 0x0 0x0 0x3 &ipic 18 0x8
-                                0x7000 0x0 0x0 0x4 &ipic 18 0x8
+                                0x7000 0x0 0x0 0x1 &ipic 18 IRQ_TYPE_LEVEL_LOW
+                                0x7000 0x0 0x0 0x2 &ipic 18 IRQ_TYPE_LEVEL_LOW
+                                0x7000 0x0 0x0 0x3 &ipic 18 IRQ_TYPE_LEVEL_LOW
+                                0x7000 0x0 0x0 0x4 &ipic 18 IRQ_TYPE_LEVEL_LOW
 
                                /* IDSEL 0x0F -mini PCI */
-                                0x7800 0x0 0x0 0x1 &ipic 17 0x8
-                                0x7800 0x0 0x0 0x2 &ipic 17 0x8
-                                0x7800 0x0 0x0 0x3 &ipic 17 0x8
-                                0x7800 0x0 0x0 0x4 &ipic 17 0x8
+                                0x7800 0x0 0x0 0x1 &ipic 17 IRQ_TYPE_LEVEL_LOW
+                                0x7800 0x0 0x0 0x2 &ipic 17 IRQ_TYPE_LEVEL_LOW
+                                0x7800 0x0 0x0 0x3 &ipic 17 IRQ_TYPE_LEVEL_LOW
+                                0x7800 0x0 0x0 0x4 &ipic 17 IRQ_TYPE_LEVEL_LOW
 
                                /* IDSEL 0x10 - PCI slot */
-                                0x8000 0x0 0x0 0x1 &ipic 48 0x8
-                                0x8000 0x0 0x0 0x2 &ipic 17 0x8
-                                0x8000 0x0 0x0 0x3 &ipic 48 0x8
-                                0x8000 0x0 0x0 0x4 &ipic 17 0x8>;
+                                0x8000 0x0 0x0 0x1 &ipic 48 IRQ_TYPE_LEVEL_LOW
+                                0x8000 0x0 0x0 0x2 &ipic 17 IRQ_TYPE_LEVEL_LOW
+                                0x8000 0x0 0x0 0x3 &ipic 48 IRQ_TYPE_LEVEL_LOW
+                                0x8000 0x0 0x0 0x4 &ipic 17 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&ipic>;
-               interrupts = <66 0x8>;
+               interrupts = <66 IRQ_TYPE_LEVEL_LOW>;
                bus-range = <0x0 0x0>;
                ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000
                          0x42000000 0 0x80000000 0x80000000 0 0x10000000
                          0x01000000 0 0x00000000 0xb1000000 0 0x00800000>;
                bus-range = <0 255>;
                interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <0 0 0 1 &ipic 1 8
-                                0 0 0 2 &ipic 1 8
-                                0 0 0 3 &ipic 1 8
-                                0 0 0 4 &ipic 1 8>;
+               interrupt-map = <0 0 0 1 &ipic 1 IRQ_TYPE_LEVEL_LOW
+                                0 0 0 2 &ipic 1 IRQ_TYPE_LEVEL_LOW
+                                0 0 0 3 &ipic 1 IRQ_TYPE_LEVEL_LOW
+                                0 0 0 4 &ipic 1 IRQ_TYPE_LEVEL_LOW>;
                clock-frequency = <0>;
 
                pcie@0 {
                          0x01000000 0 0x00000000 0xd1000000 0 0x00800000>;
                bus-range = <0 255>;
                interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <0 0 0 1 &ipic 2 8
-                                0 0 0 2 &ipic 2 8
-                                0 0 0 3 &ipic 2 8
-                                0 0 0 4 &ipic 2 8>;
+               interrupt-map = <0 0 0 1 &ipic 2 IRQ_TYPE_LEVEL_LOW
+                                0 0 0 2 &ipic 2 IRQ_TYPE_LEVEL_LOW
+                                0 0 0 3 &ipic 2 IRQ_TYPE_LEVEL_LOW
+                                0 0 0 4 &ipic 2 IRQ_TYPE_LEVEL_LOW>;
                clock-frequency = <0>;
 
                pcie@0 {
        leds {
                compatible = "gpio-leds";
 
-               pwr {
+               led-pwr {
                        gpios = <&mcu_pio 0 0>;
                        default-state = "on";
                };
 
-               hdd {
+               led-hdd {
                        gpios = <&mcu_pio 1 0>;
                        linux,default-trigger = "disk-activity";
                };
index ba7caaf98fd58f9a2b56c0aa566673c70eff2013..06f134490d957489729476b71ca4b00f7d5d7fe4 100644 (file)
@@ -38,7 +38,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x04000000>;
        };
index 13f17232ba83d50498f19e6758063cf905fbc326..12d33cb55b72a9765c0e177f4dedd3d60708009d 100644 (file)
@@ -39,7 +39,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;
        };
index eae0afd5abbc39852b8e34b2247223168ab863ca..2998a233a790be20b1409f758fe43f0e00a55150 100644 (file)
@@ -37,7 +37,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;
        };
index f137ccb8cfdedfed98a3cf6899f5508f069834dc..fb311a7eb9f2cb2fcadbe793f9072b122f5b9013 100644 (file)
@@ -39,7 +39,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;  // 256MB at 0
        };
index ce254dd74dd06b19bc8e15e13f2fa9e959dd25f2..f736a15cceffad64ca7f4c5bf469d3a1579e70e7 100644 (file)
@@ -40,7 +40,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x20000000>;  // 512MB at 0
        };
index 19e5473d4161b5d6be6ab84ae0ba78875fc377f8..32c49622b40402001bc90d3c1653f65ca340b9c6 100644 (file)
@@ -39,7 +39,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;  // 256MB at 0
        };
index 61519acca2280427d7237d8d9bbb8485f0c65369..07deb89c5a9bdc9444d7e3918a37e8c6783cf088 100644 (file)
@@ -37,7 +37,7 @@
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x00000000 0x10000000>;  // 256MB at 0
        };
index 08cf716328a05e17b3f1cd7e2798b6cfa3fba590..feaa75d5aead927c992dd8d48c13a11caec54486 100644 (file)
        status = "okay";
 };
 
+&ledc {
+       pinctrl-0 = <&ledc_pc0_pin>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       multi-led@0 {
+               reg = <0x0>;
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+       };
+};
+
 &mmc1 {
        bus-width = <4>;
        mmc-pwrseq = <&wifi_pwrseq>;
index 8dbe717c79ce0158dc87bd82806e008a0cad5634..73840ea300f0702d870d1b0f28198afefaf84c17 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 
 /dts-v1/;
 
        };
 };
 
+&ledc {
+       pinctrl-0 = <&ledc_pc0_pin>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       multi-led@0 {
+               reg = <0x0>;
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+       };
+};
+
 &mdio {
        ext_rgmii_phy: ethernet-phy@1 {
                compatible = "ethernet-phy-ieee802.3-c22";
index b18f368e06e07fa57560745f370a8230565f8061..b0fb0ea377bcaf9054ed4145fb7383236c2b8906 100644 (file)
                function = "i2c2";
        };
 
+       /omit-if-no-ref/
+       ledc_pc0_pin: ledc-pc0-pin {
+               pins = "PC0";
+               function = "ledc";
+       };
+
        /omit-if-no-ref/
        uart0_pb8_pins: uart0-pb8-pins {
                pins = "PB8", "PB9";
index a7442a508433d7d29df71c63817d7abc7c54982c..3f4ee820ef56bbff75cc0d5cc0a99cbf54b9431b 100644 (file)
@@ -1,6 +1,8 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 // Copyright (C) 2021-2022 Samuel Holland <samuel@sholland.org>
 
+#include <dt-bindings/thermal/thermal.h>
+
 #define SOC_PERIPHERAL_IRQ(nr) (nr + 16)
 
 #include "sunxi-d1s-t113.dtsi"
                        <0x00000000 0x0000000e 0xffffffff 0xffffffff 0x00010000>,
                        <0x00000000 0x0000000f 0xffffffff 0xffffffff 0x00020000>;
        };
+
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&ths>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
+                       trips {
+                               cpu_alert: cpu-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
 };
index 63e252b44973fa5eaf360f8a7185ad02f76315b2..82cc85acccb136836669430cef8bcd029503cae2 100644 (file)
                        #reset-cells = <1>;
                };
 
+               ledc: led-controller@2008000 {
+                       compatible = "allwinner,sun20i-d1-ledc",
+                                    "allwinner,sun50i-a100-ledc";
+                       reg = <0x2008000 0x400>;
+                       interrupts = <SOC_PERIPHERAL_IRQ(20) IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_LEDC>, <&ccu CLK_LEDC>;
+                       clock-names = "bus", "mod";
+                       resets = <&ccu RST_BUS_LEDC>;
+                       dmas = <&dma 42>;
+                       dma-names = "tx";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gpadc: adc@2009000 {
                        compatible = "allwinner,sun20i-d1-gpadc";
                        reg = <0x2009000 0x400>;
                        #io-channel-cells = <1>;
                };
 
+               ths: thermal-sensor@2009400 {
+                       compatible = "allwinner,sun20i-d1-ths";
+                       reg = <0x2009400 0x400>;
+                       interrupts = <SOC_PERIPHERAL_IRQ(58) IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_THS>;
+                       clock-names = "bus";
+                       resets = <&ccu RST_BUS_THS>;
+                       nvmem-cells = <&ths_calibration>;
+                       nvmem-cell-names = "calibration";
+                       #thermal-sensor-cells = <0>;
+               };
+
                dmic: dmic@2031000 {
                        compatible = "allwinner,sun20i-d1-dmic",
                                     "allwinner,sun50i-h6-dmic";
                        reg = <0x3006000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       ths_calibration: thermal-sensor-calibration@14 {
+                               reg = <0x14 0x8>;
+                       };
                };
 
                crypto: crypto@3040000 {
index a5d0765ade3231ece0afbe8835d95cd918a44ad9..9fe183f5f5c8d3a51ef38384ea11147637aff8cd 100644 (file)
@@ -27,8 +27,9 @@
                        mmu-type = "riscv,sv39";
                        reg = <0>;
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zbc",
-                                              "zbkc", "zbs", "zicntr", "zicsr", "zifencei",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b",
+                                              "zba", "zbb", "zbc", "zbkc", "zbs",
+                                              "zicntr", "zicsr", "zifencei",
                                               "zihintpause", "zihpm";
 
                        cpu0_intc: interrupt-controller {
index 9883ca3554c50a5258aac50ef10a4c98311956ac..a0ffedc2d344060bf64e168407b4b7d0d7263b0c 100644 (file)
                        #dma-cells = <1>;
                };
 
-               clkcfg: clkcfg@20002000 {
-                       compatible = "microchip,mpfs-clkcfg";
-                       reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
-                       clocks = <&refclk>;
-                       #clock-cells = <1>;
+               mss_top_sysreg: syscon@20002000 {
+                       compatible = "microchip,mpfs-mss-top-sysreg", "syscon", "simple-mfd";
+                       reg = <0x0 0x20002000 0x0 0x1000>;
                        #reset-cells = <1>;
                };
 
+               sysreg_scb: syscon@20003000 {
+                       compatible = "microchip,mpfs-sysreg-scb", "syscon";
+                       reg = <0x0 0x20003000 0x0 0x1000>;
+               };
+
                ccc_se: clock-controller@38010000 {
                        compatible = "microchip,mpfs-ccc";
                        reg = <0x0 0x38010000 0x0 0x1000>, <0x0 0x38020000 0x0 0x1000>,
                        clocks = <&clkcfg CLK_CAN0>, <&clkcfg CLK_MSSPLL3>;
                        interrupt-parent = <&plic>;
                        interrupts = <56>;
+                       resets = <&mss_top_sysreg CLK_CAN0>;
                        status = "disabled";
                };
 
                        clocks = <&clkcfg CLK_CAN1>, <&clkcfg CLK_MSSPLL3>;
                        interrupt-parent = <&plic>;
                        interrupts = <57>;
+                       resets = <&mss_top_sysreg CLK_CAN1>;
                        status = "disabled";
                };
 
                        local-mac-address = [00 00 00 00 00 00];
                        clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>;
                        clock-names = "pclk", "hclk";
-                       resets = <&clkcfg CLK_MAC0>;
+                       resets = <&mss_top_sysreg CLK_MAC0>;
                        status = "disabled";
                };
 
                        local-mac-address = [00 00 00 00 00 00];
                        clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>;
                        clock-names = "pclk", "hclk";
-                       resets = <&clkcfg CLK_MAC1>;
+                       resets = <&mss_top_sysreg CLK_MAC1>;
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
-               mbox: mailbox@37020000 {
+               control_scb: syscon@37020000 {
+                       compatible = "microchip,mpfs-control-scb", "syscon";
+                       reg = <0x0 0x37020000 0x0 0x100>;
+               };
+
+               mbox: mailbox@37020800 {
                        compatible = "microchip,mpfs-mailbox";
-                       reg = <0x0 0x37020000 0x0 0x58>, <0x0 0x2000318C 0x0 0x40>,
-                             <0x0 0x37020800 0x0 0x100>;
+                       reg = <0x0 0x37020800 0x0 0x1000>;
                        interrupt-parent = <&plic>;
                        interrupts = <96>;
                        #mbox-cells = <1>;
                        clocks = <&scbclk>;
                        status = "disabled";
                };
+
+               clkcfg: clkcfg@3e001000 {
+                       compatible = "microchip,mpfs-clkcfg";
+                       reg = <0x0 0x3e001000 0x0 0x1000>;
+                       clocks = <&refclk>;
+                       #clock-cells = <1>;
+               };
        };
 };
index a8bcb26f42700644a431958b5bff985bef3bd4c5..571de3cafa8214e41c73101ee14926ff0d73d45b 100644 (file)
@@ -12,6 +12,8 @@
 #include <arm64/renesas/r9a07g043.dtsi>
 
 / {
+       interrupt-parent = <&plic>;
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -52,7 +54,6 @@
 
 &soc {
        dma-noncoherent;
-       interrupt-parent = <&plic>;
 
        irqc: interrupt-controller@110a0000 {
                compatible = "renesas,r9a07g043f-irqc";
index 1b2b1969a6484e9c3b196eae7384a195543944cd..06b0ce5a2db7af53de5e06649f3cc55c54cb72ba 100644 (file)
                        clocks = <&clk CLK_AXI4_USB>, <&clk CLK_APB_USB>;
                        clock-names = "otg", "utmi";
                        g-np-tx-fifo-size = <32>;
-                       g-rx-fifo-size = <536>;
-                       g-tx-fifo-size = <768 512 512 384 128 128>;
+                       g-rx-fifo-size = <1536>;
+                       g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
                        interrupts = <SOC_PERIPHERAL_IRQ(14) IRQ_TYPE_LEVEL_HIGH>;
                        phys = <&usbphy>;
                        phy-names = "usb2-phy";
index 94a4b71acad320e32bdad8638cdeaacf846b8cb3..509488eee4321c5f01020b4fd8d2239c2349000d 100644 (file)
                        cache-unified;
                };
        };
+
+       soc {
+               intc: interrupt-controller@7090000000 {
+                       compatible = "sophgo,sg2042-plic", "thead,c900-plic";
+                       #address-cells = <0>;
+                       #interrupt-cells = <2>;
+                       reg = <0x00000070 0x90000000 0x00000000 0x04000000>;
+                       interrupt-controller;
+                       interrupts-extended =
+                               <&cpu0_intc 11>,  <&cpu0_intc 9>,
+                               <&cpu1_intc 11>,  <&cpu1_intc 9>,
+                               <&cpu2_intc 11>,  <&cpu2_intc 9>,
+                               <&cpu3_intc 11>,  <&cpu3_intc 9>,
+                               <&cpu4_intc 11>,  <&cpu4_intc 9>,
+                               <&cpu5_intc 11>,  <&cpu5_intc 9>,
+                               <&cpu6_intc 11>,  <&cpu6_intc 9>,
+                               <&cpu7_intc 11>,  <&cpu7_intc 9>,
+                               <&cpu8_intc 11>,  <&cpu8_intc 9>,
+                               <&cpu9_intc 11>,  <&cpu9_intc 9>,
+                               <&cpu10_intc 11>, <&cpu10_intc 9>,
+                               <&cpu11_intc 11>, <&cpu11_intc 9>,
+                               <&cpu12_intc 11>, <&cpu12_intc 9>,
+                               <&cpu13_intc 11>, <&cpu13_intc 9>,
+                               <&cpu14_intc 11>, <&cpu14_intc 9>,
+                               <&cpu15_intc 11>, <&cpu15_intc 9>,
+                               <&cpu16_intc 11>, <&cpu16_intc 9>,
+                               <&cpu17_intc 11>, <&cpu17_intc 9>,
+                               <&cpu18_intc 11>, <&cpu18_intc 9>,
+                               <&cpu19_intc 11>, <&cpu19_intc 9>,
+                               <&cpu20_intc 11>, <&cpu20_intc 9>,
+                               <&cpu21_intc 11>, <&cpu21_intc 9>,
+                               <&cpu22_intc 11>, <&cpu22_intc 9>,
+                               <&cpu23_intc 11>, <&cpu23_intc 9>,
+                               <&cpu24_intc 11>, <&cpu24_intc 9>,
+                               <&cpu25_intc 11>, <&cpu25_intc 9>,
+                               <&cpu26_intc 11>, <&cpu26_intc 9>,
+                               <&cpu27_intc 11>, <&cpu27_intc 9>,
+                               <&cpu28_intc 11>, <&cpu28_intc 9>,
+                               <&cpu29_intc 11>, <&cpu29_intc 9>,
+                               <&cpu30_intc 11>, <&cpu30_intc 9>,
+                               <&cpu31_intc 11>, <&cpu31_intc 9>,
+                               <&cpu32_intc 11>, <&cpu32_intc 9>,
+                               <&cpu33_intc 11>, <&cpu33_intc 9>,
+                               <&cpu34_intc 11>, <&cpu34_intc 9>,
+                               <&cpu35_intc 11>, <&cpu35_intc 9>,
+                               <&cpu36_intc 11>, <&cpu36_intc 9>,
+                               <&cpu37_intc 11>, <&cpu37_intc 9>,
+                               <&cpu38_intc 11>, <&cpu38_intc 9>,
+                               <&cpu39_intc 11>, <&cpu39_intc 9>,
+                               <&cpu40_intc 11>, <&cpu40_intc 9>,
+                               <&cpu41_intc 11>, <&cpu41_intc 9>,
+                               <&cpu42_intc 11>, <&cpu42_intc 9>,
+                               <&cpu43_intc 11>, <&cpu43_intc 9>,
+                               <&cpu44_intc 11>, <&cpu44_intc 9>,
+                               <&cpu45_intc 11>, <&cpu45_intc 9>,
+                               <&cpu46_intc 11>, <&cpu46_intc 9>,
+                               <&cpu47_intc 11>, <&cpu47_intc 9>,
+                               <&cpu48_intc 11>, <&cpu48_intc 9>,
+                               <&cpu49_intc 11>, <&cpu49_intc 9>,
+                               <&cpu50_intc 11>, <&cpu50_intc 9>,
+                               <&cpu51_intc 11>, <&cpu51_intc 9>,
+                               <&cpu52_intc 11>, <&cpu52_intc 9>,
+                               <&cpu53_intc 11>, <&cpu53_intc 9>,
+                               <&cpu54_intc 11>, <&cpu54_intc 9>,
+                               <&cpu55_intc 11>, <&cpu55_intc 9>,
+                               <&cpu56_intc 11>, <&cpu56_intc 9>,
+                               <&cpu57_intc 11>, <&cpu57_intc 9>,
+                               <&cpu58_intc 11>, <&cpu58_intc 9>,
+                               <&cpu59_intc 11>, <&cpu59_intc 9>,
+                               <&cpu60_intc 11>, <&cpu60_intc 9>,
+                               <&cpu61_intc 11>, <&cpu61_intc 9>,
+                               <&cpu62_intc 11>, <&cpu62_intc 9>,
+                               <&cpu63_intc 11>, <&cpu63_intc 9>;
+                       riscv,ndev = <224>;
+               };
+
+               clint_mswi: interrupt-controller@7094000000 {
+                       compatible = "sophgo,sg2042-aclint-mswi", "thead,c900-aclint-mswi";
+                       reg = <0x00000070 0x94000000 0x00000000 0x00004000>;
+                       interrupts-extended = <&cpu0_intc 3>,
+                                             <&cpu1_intc 3>,
+                                             <&cpu2_intc 3>,
+                                             <&cpu3_intc 3>,
+                                             <&cpu4_intc 3>,
+                                             <&cpu5_intc 3>,
+                                             <&cpu6_intc 3>,
+                                             <&cpu7_intc 3>,
+                                             <&cpu8_intc 3>,
+                                             <&cpu9_intc 3>,
+                                             <&cpu10_intc 3>,
+                                             <&cpu11_intc 3>,
+                                             <&cpu12_intc 3>,
+                                             <&cpu13_intc 3>,
+                                             <&cpu14_intc 3>,
+                                             <&cpu15_intc 3>,
+                                             <&cpu16_intc 3>,
+                                             <&cpu17_intc 3>,
+                                             <&cpu18_intc 3>,
+                                             <&cpu19_intc 3>,
+                                             <&cpu20_intc 3>,
+                                             <&cpu21_intc 3>,
+                                             <&cpu22_intc 3>,
+                                             <&cpu23_intc 3>,
+                                             <&cpu24_intc 3>,
+                                             <&cpu25_intc 3>,
+                                             <&cpu26_intc 3>,
+                                             <&cpu27_intc 3>,
+                                             <&cpu28_intc 3>,
+                                             <&cpu29_intc 3>,
+                                             <&cpu30_intc 3>,
+                                             <&cpu31_intc 3>,
+                                             <&cpu32_intc 3>,
+                                             <&cpu33_intc 3>,
+                                             <&cpu34_intc 3>,
+                                             <&cpu35_intc 3>,
+                                             <&cpu36_intc 3>,
+                                             <&cpu37_intc 3>,
+                                             <&cpu38_intc 3>,
+                                             <&cpu39_intc 3>,
+                                             <&cpu40_intc 3>,
+                                             <&cpu41_intc 3>,
+                                             <&cpu42_intc 3>,
+                                             <&cpu43_intc 3>,
+                                             <&cpu44_intc 3>,
+                                             <&cpu45_intc 3>,
+                                             <&cpu46_intc 3>,
+                                             <&cpu47_intc 3>,
+                                             <&cpu48_intc 3>,
+                                             <&cpu49_intc 3>,
+                                             <&cpu50_intc 3>,
+                                             <&cpu51_intc 3>,
+                                             <&cpu52_intc 3>,
+                                             <&cpu53_intc 3>,
+                                             <&cpu54_intc 3>,
+                                             <&cpu55_intc 3>,
+                                             <&cpu56_intc 3>,
+                                             <&cpu57_intc 3>,
+                                             <&cpu58_intc 3>,
+                                             <&cpu59_intc 3>,
+                                             <&cpu60_intc 3>,
+                                             <&cpu61_intc 3>,
+                                             <&cpu62_intc 3>,
+                                             <&cpu63_intc 3>;
+               };
+
+               clint_mtimer0: timer@70ac004000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac014000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac024000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac034000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac044000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac054000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac064000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac074000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac084000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac094000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac0a4000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac0b4000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac0c4000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac0d4000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac0e4000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       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@70ac0f4000 {
+                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
+                       reg = <0x00000070 0xac0f4000 0x00000000 0x0000c000>;
+                       reg-names = "mtimecmp";
+                       interrupts-extended = <&cpu60_intc 7>,
+                                             <&cpu61_intc 7>,
+                                             <&cpu62_intc 7>,
+                                             <&cpu63_intc 7>;
+               };
+       };
 };
index 54d8386bf9c0ff84e63c3827d9ef88ad61edc201..ecf8c1e290792c3a27651040eae3c603741cd0c7 100644 (file)
        status = "okay";
 };
 
+&i2c0 {
+       pinctrl-0 = <&i2c0_cfg>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       rtc: rtc@68 {
+               compatible = "dallas,ds1307";
+               reg = <0x68>;
+       };
+};
+
 &i2c1 {
        pinctrl-0 = <&i2c1_cfg>;
        pinctrl-names = "default";
                };
        };
 
+       i2c0_cfg: i2c0-cfg {
+               i2c0-pins {
+                       pinmux = <PINMUX(PIN_IIC0_SDA, 0)>,
+                                <PINMUX(PIN_IIC0_SCL, 0)>;
+                       bias-pull-up;
+                       drive-strength-microamp = <26800>;
+                       input-schmitt-enable;
+               };
+       };
+
        i2c1_cfg: i2c1-cfg {
                i2c1-pins {
                        pinmux = <PINMUX(PIN_IIC1_SDA, 0)>,
index ec99da39150f7e183d383d959e34c8b617a47f40..9fddf3f0b3b99673653829aa93e8049b16cded34 100644 (file)
                        #clock-cells = <1>;
                };
 
-               pcie_rc0: pcie@7060000000 {
-                       compatible = "sophgo,sg2042-pcie-host";
-                       device_type = "pci";
-                       reg = <0x70 0x60000000  0x0 0x00800000>,
-                             <0x40 0x00000000  0x0 0x00001000>;
-                       reg-names = "reg", "cfg";
-                       linux,pci-domain = <0>;
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-                       ranges = <0x01000000 0x0  0x00000000  0x40 0xc0000000  0x0 0x00400000>,
-                                <0x42000000 0x0  0xd0000000  0x40 0xd0000000  0x0 0x10000000>,
-                                <0x02000000 0x0  0xe0000000  0x40 0xe0000000  0x0 0x20000000>,
-                                <0x43000000 0x42 0x00000000  0x42 0x00000000  0x2 0x00000000>,
-                                <0x03000000 0x41 0x00000000  0x41 0x00000000  0x1 0x00000000>;
-                       bus-range = <0x0 0xff>;
-                       vendor-id = <0x1f1c>;
-                       device-id = <0x2042>;
-                       cdns,no-bar-match-nbits = <48>;
-                       msi-parent = <&msi>;
-                       status = "disabled";
-               };
-
-               pcie_rc1: pcie@7060800000 {
-                       compatible = "sophgo,sg2042-pcie-host";
-                       device_type = "pci";
-                       reg = <0x70 0x60800000  0x0 0x00800000>,
-                             <0x44 0x00000000  0x0 0x00001000>;
-                       reg-names = "reg", "cfg";
-                       linux,pci-domain = <1>;
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-                       ranges = <0x01000000 0x0  0x00000000  0x44 0xc0400000  0x0 0x00400000>,
-                                <0x42000000 0x0  0xd0000000  0x44 0xd0000000  0x0 0x10000000>,
-                                <0x02000000 0x0  0xe0000000  0x44 0xe0000000  0x0 0x20000000>,
-                                <0x43000000 0x46 0x00000000  0x46 0x00000000  0x2 0x00000000>,
-                                <0x03000000 0x45 0x00000000  0x45 0x00000000  0x1 0x00000000>;
-                       bus-range = <0x0 0xff>;
-                       vendor-id = <0x1f1c>;
-                       device-id = <0x2042>;
-                       cdns,no-bar-match-nbits = <48>;
-                       msi-parent = <&msi>;
-                       status = "disabled";
-               };
-
-               pcie_rc2: pcie@7062000000 {
-                       compatible = "sophgo,sg2042-pcie-host";
-                       device_type = "pci";
-                       reg = <0x70 0x62000000  0x0 0x00800000>,
-                             <0x48 0x00000000  0x0 0x00001000>;
-                       reg-names = "reg", "cfg";
-                       linux,pci-domain = <2>;
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-                       ranges = <0x01000000 0x0  0x00000000  0x48 0xc0800000  0x0 0x00400000>,
-                                <0x42000000 0x0  0xd0000000  0x48 0xd0000000  0x0 0x10000000>,
-                                <0x02000000 0x0  0xe0000000  0x48 0xe0000000  0x0 0x20000000>,
-                                <0x03000000 0x49 0x00000000  0x49 0x00000000  0x1 0x00000000>,
-                                <0x43000000 0x4a 0x00000000  0x4a 0x00000000  0x2 0x00000000>;
-                       bus-range = <0x0 0xff>;
-                       vendor-id = <0x1f1c>;
-                       device-id = <0x2042>;
-                       cdns,no-bar-match-nbits = <48>;
-                       msi-parent = <&msi>;
-                       status = "disabled";
-               };
-
-               pcie_rc3: pcie@7062800000 {
-                       compatible = "sophgo,sg2042-pcie-host";
-                       device_type = "pci";
-                       reg = <0x70 0x62800000  0x0 0x00800000>,
-                             <0x4c 0x00000000  0x0 0x00001000>;
-                       reg-names = "reg", "cfg";
-                       linux,pci-domain = <3>;
-                       #address-cells = <3>;
-                       #size-cells = <2>;
-                       ranges = <0x01000000 0x0  0x00000000  0x4c 0xc0c00000  0x0 0x00400000>,
-                                <0x42000000 0x0  0xf8000000  0x4c 0xf8000000  0x0 0x04000000>,
-                                <0x02000000 0x0  0xfc000000  0x4c 0xfc000000  0x0 0x04000000>,
-                                <0x43000000 0x4e 0x00000000  0x4e 0x00000000  0x2 0x00000000>,
-                                <0x03000000 0x4d 0x00000000  0x4d 0x00000000  0x1 0x00000000>;
-                       bus-range = <0x0 0xff>;
-                       vendor-id = <0x1f1c>;
-                       device-id = <0x2042>;
-                       cdns,no-bar-match-nbits = <48>;
-                       msi-parent = <&msi>;
-                       status = "disabled";
-               };
-
-               clint_mswi: interrupt-controller@7094000000 {
-                       compatible = "sophgo,sg2042-aclint-mswi", "thead,c900-aclint-mswi";
-                       reg = <0x00000070 0x94000000 0x00000000 0x00004000>;
-                       interrupts-extended = <&cpu0_intc 3>,
-                                             <&cpu1_intc 3>,
-                                             <&cpu2_intc 3>,
-                                             <&cpu3_intc 3>,
-                                             <&cpu4_intc 3>,
-                                             <&cpu5_intc 3>,
-                                             <&cpu6_intc 3>,
-                                             <&cpu7_intc 3>,
-                                             <&cpu8_intc 3>,
-                                             <&cpu9_intc 3>,
-                                             <&cpu10_intc 3>,
-                                             <&cpu11_intc 3>,
-                                             <&cpu12_intc 3>,
-                                             <&cpu13_intc 3>,
-                                             <&cpu14_intc 3>,
-                                             <&cpu15_intc 3>,
-                                             <&cpu16_intc 3>,
-                                             <&cpu17_intc 3>,
-                                             <&cpu18_intc 3>,
-                                             <&cpu19_intc 3>,
-                                             <&cpu20_intc 3>,
-                                             <&cpu21_intc 3>,
-                                             <&cpu22_intc 3>,
-                                             <&cpu23_intc 3>,
-                                             <&cpu24_intc 3>,
-                                             <&cpu25_intc 3>,
-                                             <&cpu26_intc 3>,
-                                             <&cpu27_intc 3>,
-                                             <&cpu28_intc 3>,
-                                             <&cpu29_intc 3>,
-                                             <&cpu30_intc 3>,
-                                             <&cpu31_intc 3>,
-                                             <&cpu32_intc 3>,
-                                             <&cpu33_intc 3>,
-                                             <&cpu34_intc 3>,
-                                             <&cpu35_intc 3>,
-                                             <&cpu36_intc 3>,
-                                             <&cpu37_intc 3>,
-                                             <&cpu38_intc 3>,
-                                             <&cpu39_intc 3>,
-                                             <&cpu40_intc 3>,
-                                             <&cpu41_intc 3>,
-                                             <&cpu42_intc 3>,
-                                             <&cpu43_intc 3>,
-                                             <&cpu44_intc 3>,
-                                             <&cpu45_intc 3>,
-                                             <&cpu46_intc 3>,
-                                             <&cpu47_intc 3>,
-                                             <&cpu48_intc 3>,
-                                             <&cpu49_intc 3>,
-                                             <&cpu50_intc 3>,
-                                             <&cpu51_intc 3>,
-                                             <&cpu52_intc 3>,
-                                             <&cpu53_intc 3>,
-                                             <&cpu54_intc 3>,
-                                             <&cpu55_intc 3>,
-                                             <&cpu56_intc 3>,
-                                             <&cpu57_intc 3>,
-                                             <&cpu58_intc 3>,
-                                             <&cpu59_intc 3>,
-                                             <&cpu60_intc 3>,
-                                             <&cpu61_intc 3>,
-                                             <&cpu62_intc 3>,
-                                             <&cpu63_intc 3>;
-               };
-
-               clint_mtimer0: timer@70ac004000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac014000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac024000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac034000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac044000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac054000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac064000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac074000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac084000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac094000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac0a4000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac0b4000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac0c4000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac0d4000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac0e4000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       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@70ac0f4000 {
-                       compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
-                       reg = <0x00000070 0xac0f4000 0x00000000 0x0000c000>;
-                       reg-names = "mtimecmp";
-                       interrupts-extended = <&cpu60_intc 7>,
-                                             <&cpu61_intc 7>,
-                                             <&cpu62_intc 7>,
-                                             <&cpu63_intc 7>;
-               };
-
-               intc: interrupt-controller@7090000000 {
-                       compatible = "sophgo,sg2042-plic", "thead,c900-plic";
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x00000070 0x90000000 0x00000000 0x04000000>;
-                       interrupt-controller;
-                       interrupts-extended =
-                               <&cpu0_intc 11>,  <&cpu0_intc 9>,
-                               <&cpu1_intc 11>,  <&cpu1_intc 9>,
-                               <&cpu2_intc 11>,  <&cpu2_intc 9>,
-                               <&cpu3_intc 11>,  <&cpu3_intc 9>,
-                               <&cpu4_intc 11>,  <&cpu4_intc 9>,
-                               <&cpu5_intc 11>,  <&cpu5_intc 9>,
-                               <&cpu6_intc 11>,  <&cpu6_intc 9>,
-                               <&cpu7_intc 11>,  <&cpu7_intc 9>,
-                               <&cpu8_intc 11>,  <&cpu8_intc 9>,
-                               <&cpu9_intc 11>,  <&cpu9_intc 9>,
-                               <&cpu10_intc 11>, <&cpu10_intc 9>,
-                               <&cpu11_intc 11>, <&cpu11_intc 9>,
-                               <&cpu12_intc 11>, <&cpu12_intc 9>,
-                               <&cpu13_intc 11>, <&cpu13_intc 9>,
-                               <&cpu14_intc 11>, <&cpu14_intc 9>,
-                               <&cpu15_intc 11>, <&cpu15_intc 9>,
-                               <&cpu16_intc 11>, <&cpu16_intc 9>,
-                               <&cpu17_intc 11>, <&cpu17_intc 9>,
-                               <&cpu18_intc 11>, <&cpu18_intc 9>,
-                               <&cpu19_intc 11>, <&cpu19_intc 9>,
-                               <&cpu20_intc 11>, <&cpu20_intc 9>,
-                               <&cpu21_intc 11>, <&cpu21_intc 9>,
-                               <&cpu22_intc 11>, <&cpu22_intc 9>,
-                               <&cpu23_intc 11>, <&cpu23_intc 9>,
-                               <&cpu24_intc 11>, <&cpu24_intc 9>,
-                               <&cpu25_intc 11>, <&cpu25_intc 9>,
-                               <&cpu26_intc 11>, <&cpu26_intc 9>,
-                               <&cpu27_intc 11>, <&cpu27_intc 9>,
-                               <&cpu28_intc 11>, <&cpu28_intc 9>,
-                               <&cpu29_intc 11>, <&cpu29_intc 9>,
-                               <&cpu30_intc 11>, <&cpu30_intc 9>,
-                               <&cpu31_intc 11>, <&cpu31_intc 9>,
-                               <&cpu32_intc 11>, <&cpu32_intc 9>,
-                               <&cpu33_intc 11>, <&cpu33_intc 9>,
-                               <&cpu34_intc 11>, <&cpu34_intc 9>,
-                               <&cpu35_intc 11>, <&cpu35_intc 9>,
-                               <&cpu36_intc 11>, <&cpu36_intc 9>,
-                               <&cpu37_intc 11>, <&cpu37_intc 9>,
-                               <&cpu38_intc 11>, <&cpu38_intc 9>,
-                               <&cpu39_intc 11>, <&cpu39_intc 9>,
-                               <&cpu40_intc 11>, <&cpu40_intc 9>,
-                               <&cpu41_intc 11>, <&cpu41_intc 9>,
-                               <&cpu42_intc 11>, <&cpu42_intc 9>,
-                               <&cpu43_intc 11>, <&cpu43_intc 9>,
-                               <&cpu44_intc 11>, <&cpu44_intc 9>,
-                               <&cpu45_intc 11>, <&cpu45_intc 9>,
-                               <&cpu46_intc 11>, <&cpu46_intc 9>,
-                               <&cpu47_intc 11>, <&cpu47_intc 9>,
-                               <&cpu48_intc 11>, <&cpu48_intc 9>,
-                               <&cpu49_intc 11>, <&cpu49_intc 9>,
-                               <&cpu50_intc 11>, <&cpu50_intc 9>,
-                               <&cpu51_intc 11>, <&cpu51_intc 9>,
-                               <&cpu52_intc 11>, <&cpu52_intc 9>,
-                               <&cpu53_intc 11>, <&cpu53_intc 9>,
-                               <&cpu54_intc 11>, <&cpu54_intc 9>,
-                               <&cpu55_intc 11>, <&cpu55_intc 9>,
-                               <&cpu56_intc 11>, <&cpu56_intc 9>,
-                               <&cpu57_intc 11>, <&cpu57_intc 9>,
-                               <&cpu58_intc 11>, <&cpu58_intc 9>,
-                               <&cpu59_intc 11>, <&cpu59_intc 9>,
-                               <&cpu60_intc 11>, <&cpu60_intc 9>,
-                               <&cpu61_intc 11>, <&cpu61_intc 9>,
-                               <&cpu62_intc 11>, <&cpu62_intc 9>,
-                               <&cpu63_intc 11>, <&cpu63_intc 9>;
-                       riscv,ndev = <224>;
-               };
-
                rstgen: reset-controller@7030013000 {
                        compatible = "sophgo,sg2042-reset";
                        reg = <0x00000070 0x30013000 0x00000000 0x0000000c>;
                                      "timer";
                        status = "disabled";
                };
+
+               pcie_rc0: pcie@7060000000 {
+                       compatible = "sophgo,sg2042-pcie-host";
+                       device_type = "pci";
+                       reg = <0x70 0x60000000  0x0 0x00800000>,
+                             <0x40 0x00000000  0x0 0x00001000>;
+                       reg-names = "reg", "cfg";
+                       linux,pci-domain = <0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0  0x00000000  0x40 0xc0000000  0x0 0x00400000>,
+                                <0x42000000 0x0  0xd0000000  0x40 0xd0000000  0x0 0x10000000>,
+                                <0x02000000 0x0  0xe0000000  0x40 0xe0000000  0x0 0x20000000>,
+                                <0x43000000 0x42 0x00000000  0x42 0x00000000  0x2 0x00000000>,
+                                <0x03000000 0x41 0x00000000  0x41 0x00000000  0x1 0x00000000>;
+                       bus-range = <0x0 0xff>;
+                       vendor-id = <0x1f1c>;
+                       device-id = <0x2042>;
+                       cdns,no-bar-match-nbits = <48>;
+                       msi-parent = <&msi>;
+                       status = "disabled";
+               };
+
+               pcie_rc1: pcie@7060800000 {
+                       compatible = "sophgo,sg2042-pcie-host";
+                       device_type = "pci";
+                       reg = <0x70 0x60800000  0x0 0x00800000>,
+                             <0x44 0x00000000  0x0 0x00001000>;
+                       reg-names = "reg", "cfg";
+                       linux,pci-domain = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0  0x00000000  0x44 0xc0400000  0x0 0x00400000>,
+                                <0x42000000 0x0  0xd0000000  0x44 0xd0000000  0x0 0x10000000>,
+                                <0x02000000 0x0  0xe0000000  0x44 0xe0000000  0x0 0x20000000>,
+                                <0x43000000 0x46 0x00000000  0x46 0x00000000  0x2 0x00000000>,
+                                <0x03000000 0x45 0x00000000  0x45 0x00000000  0x1 0x00000000>;
+                       bus-range = <0x0 0xff>;
+                       vendor-id = <0x1f1c>;
+                       device-id = <0x2042>;
+                       cdns,no-bar-match-nbits = <48>;
+                       msi-parent = <&msi>;
+                       status = "disabled";
+               };
+
+               pcie_rc2: pcie@7062000000 {
+                       compatible = "sophgo,sg2042-pcie-host";
+                       device_type = "pci";
+                       reg = <0x70 0x62000000  0x0 0x00800000>,
+                             <0x48 0x00000000  0x0 0x00001000>;
+                       reg-names = "reg", "cfg";
+                       linux,pci-domain = <2>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0  0x00000000  0x48 0xc0800000  0x0 0x00400000>,
+                                <0x42000000 0x0  0xd0000000  0x48 0xd0000000  0x0 0x10000000>,
+                                <0x02000000 0x0  0xe0000000  0x48 0xe0000000  0x0 0x20000000>,
+                                <0x03000000 0x49 0x00000000  0x49 0x00000000  0x1 0x00000000>,
+                                <0x43000000 0x4a 0x00000000  0x4a 0x00000000  0x2 0x00000000>;
+                       bus-range = <0x0 0xff>;
+                       vendor-id = <0x1f1c>;
+                       device-id = <0x2042>;
+                       cdns,no-bar-match-nbits = <48>;
+                       msi-parent = <&msi>;
+                       status = "disabled";
+               };
+
+               pcie_rc3: pcie@7062800000 {
+                       compatible = "sophgo,sg2042-pcie-host";
+                       device_type = "pci";
+                       reg = <0x70 0x62800000  0x0 0x00800000>,
+                             <0x4c 0x00000000  0x0 0x00001000>;
+                       reg-names = "reg", "cfg";
+                       linux,pci-domain = <3>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges = <0x01000000 0x0  0x00000000  0x4c 0xc0c00000  0x0 0x00400000>,
+                                <0x42000000 0x0  0xf8000000  0x4c 0xf8000000  0x0 0x04000000>,
+                                <0x02000000 0x0  0xfc000000  0x4c 0xfc000000  0x0 0x04000000>,
+                                <0x43000000 0x4e 0x00000000  0x4e 0x00000000  0x2 0x00000000>,
+                                <0x03000000 0x4d 0x00000000  0x4d 0x00000000  0x1 0x00000000>;
+                       bus-range = <0x0 0xff>;
+                       vendor-id = <0x1f1c>;
+                       device-id = <0x2042>;
+                       cdns,no-bar-match-nbits = <48>;
+                       msi-parent = <&msi>;
+                       status = "disabled";
+               };
        };
 };
index 523799a1a8b821dceb476e8bdc16e5c372e04d09..3135409c21492fc69766e6205ac3ab2b571a8718 100644 (file)
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache0>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache0>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache0>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache0>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache1>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache1>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache1>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache1>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache2>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache2>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache2>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache2>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache3>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache3>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache3>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache3>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache4>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache4>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache4>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache4>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache5>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache5>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache5>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache5>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache6>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache6>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache6>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache6>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache7>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache7>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache7>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache7>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache8>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache8>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache8>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache8>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache9>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache9>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache9>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache9>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache10>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache10>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache10>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache10>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache11>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache11>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache11>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache11>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache12>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache12>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache12>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache12>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache13>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache13>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache13>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache13>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache14>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache14>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache14>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache14>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache15>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache15>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache15>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
                        device_type = "cpu";
                        mmu-type = "riscv,sv48";
                        next-level-cache = <&l2_cache15>;
-                       riscv,isa = "rv64imafdcv";
+                       riscv,isa = "rv64imafdcbv";
                        riscv,isa-base = "rv64i";
                        riscv,isa-extensions = "i", "m", "a", "f", "d", "c",
-                                              "v", "sscofpmf", "sstc",
+                                              "b", "v", "sscofpmf", "sstc",
                                               "svinval", "svnapot", "svpbmt",
                                               "zawrs", "zba", "zbb", "zbc",
                                               "zbs", "zca", "zcb", "zcd",
index 02f218a16318e5b6f512bcc37035fac37c25ee84..5971605754b3533e1cf3713a27c48448aeb4d96f 100644 (file)
                };
        };
 
+       pcie_vcc_3v3: pcie-vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "PCIE_VCC3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
        reg_dc_in: dc-in-12v {
                compatible = "regulator-fixed";
                regulator-name = "dc_in_12v";
                regulator-always-on;
                vin-supply = <&reg_dc_in>;
        };
+
+       usb3-vbus-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "USB30_VBUS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               gpio = <&gpio K1_GPIO(97) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb3_hub_5v: usb3-hub-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "USB30_HUB";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio K1_GPIO(123) GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&combo_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_3_cfg>;
+       status = "okay";
 };
 
 &emmc {
        };
 };
 
+&pcie1_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie1_3_cfg>;
+       status = "okay";
+};
+
+&pcie1_port {
+       phys = <&pcie1_phy>;
+};
+
+&pcie1 {
+       vpcie3v3-supply = <&pcie_vcc_3v3>;
+       status = "okay";
+};
+
+&pcie2_phy {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_4_cfg>;
+       status = "okay";
+};
+
+&pcie2_port {
+       phys = <&pcie2_phy>;
+};
+
+&pcie2 {
+       vpcie3v3-supply = <&pcie_vcc_3v3>;
+       status = "okay";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_2_cfg>;
        status = "okay";
 };
+
+&usbphy2 {
+       status = "okay";
+};
+
+&usb_dwc3 {
+       dr_mode = "host";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       hub_2_0: hub@1 {
+               compatible = "usb2109,2817";
+               reg = <0x1>;
+               vdd-supply = <&usb3_hub_5v>;
+               peer-hub = <&hub_3_0>;
+               reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
+       };
+
+       hub_3_0: hub@2 {
+               compatible = "usb2109,817";
+               reg = <0x2>;
+               vdd-supply = <&usb3_hub_5v>;
+               peer-hub = <&hub_2_0>;
+               reset-gpios = <&gpio K1_GPIO(124) GPIO_ACTIVE_LOW>;
+       };
+};
index 28afd39b28da3f07d53455423f6b33806ed86b61..800a112d5d7054508f03089f0e2adb9965879ebe 100644 (file)
        chosen {
                stdout-path = "serial0";
        };
+
+       reg_dc_in: dc-in-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_in_12v";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_vcc_4v: vcc-4v {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_4v";
+               regulator-min-microvolt = <4000000>;
+               regulator-max-microvolt = <4000000>;
+               regulator-boot-on;
+               regulator-always-on;
+               vin-supply = <&reg_dc_in>;
+       };
 };
 
 &eth0 {
        status = "okay";
 };
 
+&i2c8 {
+       pinctrl-0 = <&i2c8_cfg>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       pmic@41 {
+               compatible = "spacemit,p1";
+               reg = <0x41>;
+               interrupts = <64>;
+               vin-supply = <&reg_vcc_4v>;
+
+               regulators {
+                       buck1 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3450000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck2 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3450000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck3_1v8: buck3 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck4 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck5 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3450000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       buck6 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3450000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-always-on;
+                       };
+
+                       aldo1 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                       };
+
+                       aldo2 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       aldo3 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       aldo4 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       dldo1 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                       };
+
+                       dldo2 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       dldo3 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       dldo4 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-always-on;
+                       };
+
+                       dldo5 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+
+                       dldo6 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-always-on;
+                       };
+
+                       dldo7 {
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+               };
+       };
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_2_cfg>;
index 58098c4a2aabdab5be59ca2fa957ac59b0486338..de75f6aac740553da3dd0596819d89c66990c819 100644 (file)
@@ -52,6 +52,7 @@
 
                rgmii0: phy@1 {
                        reg = <0x1>;
+                       motorcomm,auto-sleep-disabled;
                };
        };
 };
@@ -75,6 +76,7 @@
 
                rgmii1: phy@1 {
                        reg = <0x1>;
+                       motorcomm,auto-sleep-disabled;
                };
        };
 };
index 41dc8e35e6ebe4c00bdfa69b8a62f0e1d23d319a..7b7331cb3c726f11d597f81917f3a3f5fc21e1b9 100644 (file)
@@ -54,6 +54,7 @@
 
                rgmii0: phy@1 {
                        reg = <0x1>;
+                       motorcomm,auto-sleep-disabled;
                };
        };
 };
@@ -77,6 +78,7 @@
 
                rgmii1: phy@1 {
                        reg = <0x1>;
+                       motorcomm,auto-sleep-disabled;
                };
        };
 };
index e922e05ff856df78c90978b0bb312e5d20ef121a..b13dcb10f4d66022d27307de73a6ea3287e97441 100644 (file)
                };
        };
 
+       pcie0_3_cfg: pcie0-3-cfg {
+               pcie0-3-pins {
+                       pinmux = <K1_PADCONF(54, 3)>,   /* PERST# */
+                                <K1_PADCONF(55, 3)>,   /* WAKE# */
+                                <K1_PADCONF(53, 3)>;   /* CLKREQ# */
+
+                       bias-pull-up = <0>;
+                       drive-strength = <21>;
+               };
+       };
+
+       pcie1_3_cfg: pcie1-3-cfg {
+               pcie1-3-pins {
+                       pinmux = <K1_PADCONF(59, 4)>,   /* PERST# */
+                                <K1_PADCONF(60, 4)>,   /* WAKE# */
+                                <K1_PADCONF(61, 4)>;   /* CLKREQ# */
+
+                       bias-pull-up = <0>;
+                       drive-strength = <21>;
+               };
+       };
+
+       pcie2_4_cfg: pcie2-4-cfg {
+               pcie2-4-pins {
+                       pinmux = <K1_PADCONF(62, 4)>,   /* PERST# */
+                                <K1_PADCONF(112, 3)>,  /* WAKE# */
+                                <K1_PADCONF(117, 4)>;  /* CLKREQ# */
+
+                       bias-pull-up = <0>;
+                       drive-strength = <21>;
+               };
+       };
+
        pwm14_1_cfg: pwm14-1-cfg {
                pwm14-1-pins {
                        pinmux = <K1_PADCONF(44, 4)>;
index 7818ca4979b6a7755722919a5958512aa11950ab..529ec68e9c23eb2a93c04e9ccd3f22a01c4cc4ff 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/spacemit,k1-syscon.h>
+#include <dt-bindings/phy/phy.h>
 
 /dts-v1/;
 / {
@@ -53,9 +54,9 @@
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <0>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
@@ -83,9 +84,9 @@
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <1>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <2>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <3>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <4>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <5>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <6>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                        compatible = "spacemit,x60", "riscv";
                        device_type = "cpu";
                        reg = <7>;
-                       riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
+                       riscv,isa = "rv64imafdcbv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
                        riscv,isa-base = "rv64i";
-                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "zicbom",
                                               "zicbop", "zicboz", "zicntr", "zicond", "zicsr",
                                               "zifencei", "zihintpause", "zihpm", "zfh", "zba",
                                               "zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
                                 <&syscon_apbc CLK_TWSI0_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI0>;
                        interrupts = <36>;
                        status = "disabled";
                };
                                 <&syscon_apbc CLK_TWSI1_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI1>;
                        interrupts = <37>;
                        status = "disabled";
                };
                                 <&syscon_apbc CLK_TWSI2_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI2>;
                        interrupts = <38>;
                        status = "disabled";
                };
                                 <&syscon_apbc CLK_TWSI4_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI4>;
                        interrupts = <40>;
                        status = "disabled";
                };
                                 <&syscon_apbc CLK_TWSI5_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI5>;
                        interrupts = <41>;
                        status = "disabled";
                };
 
+               usbphy2: phy@c0a30000 {
+                       compatible = "spacemit,k1-usb2-phy";
+                       reg = <0x0 0xc0a30000 0x0 0x200>;
+                       clocks = <&syscon_apmu CLK_USB30>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               combo_phy: phy@c0b10000 {
+                       compatible = "spacemit,k1-combo-phy";
+                       reg = <0x0 0xc0b10000 0x0 0x1000>;
+                       clocks = <&vctcxo_24m>,
+                                <&syscon_apmu CLK_PCIE0_DBI>,
+                                <&syscon_apmu CLK_PCIE0_MASTER>,
+                                <&syscon_apmu CLK_PCIE0_SLAVE>;
+                       clock-names = "refclk",
+                                     "dbi",
+                                     "mstr",
+                                     "slv";
+                       resets = <&syscon_apmu RESET_PCIE0_GLOBAL>,
+                                <&syscon_apmu RESET_PCIE0_DBI>,
+                                <&syscon_apmu RESET_PCIE0_MASTER>,
+                                <&syscon_apmu RESET_PCIE0_SLAVE>;
+                       reset-names = "phy",
+                                     "dbi",
+                                     "mstr",
+                                     "slv";
+                       #phy-cells = <1>;
+                       spacemit,apmu = <&syscon_apmu>;
+                       status = "disabled";
+               };
+
+               pcie1_phy: phy@c0c10000 {
+                       compatible = "spacemit,k1-pcie-phy";
+                       reg = <0x0 0xc0c10000 0x0 0x1000>;
+                       clocks = <&vctcxo_24m>;
+                       clock-names = "refclk";
+                       resets = <&syscon_apmu RESET_PCIE1_GLOBAL>;
+                       reset-names = "phy";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               pcie2_phy: phy@c0d10000 {
+                       compatible = "spacemit,k1-pcie-phy";
+                       reg = <0x0 0xc0d10000 0x0 0x1000>;
+                       clocks = <&vctcxo_24m>;
+                       clock-names = "refclk";
+                       resets = <&syscon_apmu RESET_PCIE2_GLOBAL>;
+                       reset-names = "phy";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
                syscon_apbc: system-controller@d4015000 {
                        compatible = "spacemit,k1-syscon-apbc";
                        reg = <0x0 0xd4015000 0x0 0x1000>;
                                 <&syscon_apbc CLK_TWSI6_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI6>;
                        interrupts = <70>;
                        status = "disabled";
                };
                                 <&syscon_apbc CLK_TWSI7_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI7>;
                        interrupts = <18>;
                        status = "disabled";
                };
                                 <&syscon_apbc CLK_TWSI8_BUS>;
                        clock-names = "func", "bus";
                        clock-frequency = <400000>;
+                       resets = <&syscon_apbc RESET_TWSI8>;
                        interrupts = <19>;
                        status = "disabled";
                };
 
                pinctrl: pinctrl@d401e000 {
                        compatible = "spacemit,k1-pinctrl";
-                       reg = <0x0 0xd401e000 0x0 0x400>;
+                       reg = <0x0 0xd401e000 0x0 0x1000>;
                        clocks = <&syscon_apbc CLK_AIB>,
                                 <&syscon_apbc CLK_AIB_BUS>;
                        clock-names = "func", "bus";
+                       spacemit,apbc = <&syscon_apbc>;
                };
 
                pwm8: pwm@d4020000 {
                        #size-cells = <2>;
                        dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
                                     <0x0 0xb8000000 0x1 0x38000000 0x3 0x48000000>;
+                       pcie0: pcie@ca000000 {
+                               device_type = "pci";
+                               compatible = "spacemit,k1-pcie";
+                               reg = <0x0 0xca000000 0x0 0x00001000>,
+                                     <0x0 0xca300000 0x0 0x0001ff24>,
+                                     <0x0 0x8f000000 0x0 0x00002000>,
+                                     <0x0 0xc0b20000 0x0 0x00001000>;
+                               reg-names = "dbi",
+                                           "atu",
+                                           "config",
+                                           "link";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges = <0x01000000 0x0 0x00000000 0x0 0x8f002000 0x0 0x00100000>,
+                                        <0x02000000 0x0 0x80000000 0x0 0x80000000 0x0 0x0f000000>;
+                               interrupts = <141>;
+                               interrupt-names = "msi";
+                               clocks = <&syscon_apmu CLK_PCIE0_DBI>,
+                                        <&syscon_apmu CLK_PCIE0_MASTER>,
+                                        <&syscon_apmu CLK_PCIE0_SLAVE>;
+                               clock-names = "dbi",
+                                             "mstr",
+                                             "slv";
+                               resets = <&syscon_apmu RESET_PCIE0_DBI>,
+                                        <&syscon_apmu RESET_PCIE0_MASTER>,
+                                        <&syscon_apmu RESET_PCIE0_SLAVE>;
+                               reset-names = "dbi",
+                                             "mstr",
+                                             "slv";
+                               spacemit,apmu = <&syscon_apmu 0x03cc>;
+                               status = "disabled";
+
+                               pcie0_port: pcie@0 {
+                                       device_type = "pci";
+                                       compatible = "pciclass,0604";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
+                       };
+
+                       pcie1: pcie@ca400000 {
+                               device_type = "pci";
+                               compatible = "spacemit,k1-pcie";
+                               reg = <0x0 0xca400000 0x0 0x00001000>,
+                                     <0x0 0xca700000 0x0 0x0001ff24>,
+                                     <0x0 0x9f000000 0x0 0x00002000>,
+                                     <0x0 0xc0c20000 0x0 0x00001000>;
+                               reg-names = "dbi",
+                                           "atu",
+                                           "config",
+                                           "link";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges = <0x01000000 0x0 0x00000000 0x0 0x9f002000 0x0 0x00100000>,
+                                        <0x02000000 0x0 0x90000000 0x0 0x90000000 0x0 0x0f000000>;
+                               interrupts = <142>;
+                               interrupt-names = "msi";
+                               clocks = <&syscon_apmu CLK_PCIE1_DBI>,
+                                        <&syscon_apmu CLK_PCIE1_MASTER>,
+                                        <&syscon_apmu CLK_PCIE1_SLAVE>;
+                               clock-names = "dbi",
+                                             "mstr",
+                                             "slv";
+                               resets = <&syscon_apmu RESET_PCIE1_DBI>,
+                                        <&syscon_apmu RESET_PCIE1_MASTER>,
+                                        <&syscon_apmu RESET_PCIE1_SLAVE>;
+                               reset-names = "dbi",
+                                             "mstr",
+                                             "slv";
+                               spacemit,apmu = <&syscon_apmu 0x3d4>;
+                               status = "disabled";
+
+                               pcie1_port: pcie@0 {
+                                       device_type = "pci";
+                                       compatible = "pciclass,0604";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
+                       };
+
+                       pcie2: pcie@ca800000 {
+                               device_type = "pci";
+                               compatible = "spacemit,k1-pcie";
+                               reg = <0x0 0xca800000 0x0 0x00001000>,
+                                     <0x0 0xcab00000 0x0 0x0001ff24>,
+                                     <0x0 0xb7000000 0x0 0x00002000>,
+                                     <0x0 0xc0d20000 0x0 0x00001000>;
+                               reg-names = "dbi",
+                                           "atu",
+                                           "config",
+                                           "link";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges = <0x01000000 0x0 0x00000000 0x0 0xb7002000 0x0 0x00100000>,
+                                        <0x42000000 0x0 0xa0000000 0x0 0xa0000000 0x0 0x10000000>,
+                                        <0x02000000 0x0 0xb0000000 0x0 0xb0000000 0x0 0x07000000>;
+                               interrupts = <143>;
+                               interrupt-names = "msi";
+                               clocks = <&syscon_apmu CLK_PCIE2_DBI>,
+                                        <&syscon_apmu CLK_PCIE2_MASTER>,
+                                        <&syscon_apmu CLK_PCIE2_SLAVE>;
+                               clock-names = "dbi",
+                                             "mstr",
+                                             "slv";
+                               resets = <&syscon_apmu RESET_PCIE2_DBI>,
+                                        <&syscon_apmu RESET_PCIE2_MASTER>,
+                                        <&syscon_apmu RESET_PCIE2_SLAVE>;
+                               reset-names = "dbi",
+                                             "mstr",
+                                             "slv";
+                               spacemit,apmu = <&syscon_apmu 0x3dc>;
+                               status = "disabled";
+
+                               pcie2_port: pcie@0 {
+                                       device_type = "pci";
+                                       compatible = "pciclass,0604";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
+                       };
                };
 
                storage-bus {
                        #size-cells = <2>;
                        dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>;
 
+                       usb_dwc3: usb@c0a00000 {
+                               compatible = "spacemit,k1-dwc3";
+                               reg = <0x0 0xc0a00000 0x0 0x10000>;
+                               clocks = <&syscon_apmu CLK_USB30>;
+                               clock-names = "usbdrd30";
+                               interrupts = <125>;
+                               phys = <&usbphy2>, <&combo_phy PHY_TYPE_USB3>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                               phy_type = "utmi";
+                               resets = <&syscon_apmu RESET_USB30_AHB>,
+                                        <&syscon_apmu RESET_USB30_VCC>,
+                                        <&syscon_apmu RESET_USB30_PHY>;
+                               reset-names = "ahb", "vcc", "phy";
+                               reset-delay = <2>;
+                               snps,hsphy_interface = "utmi";
+                               snps,dis_enblslpm_quirk;
+                               snps,dis-u2-freeclk-exists-quirk;
+                               snps,dis-del-phy-power-chg-quirk;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_u3_susphy_quirk;
+                               snps,dis_rxdet_inp3_quirk;
+                               status = "disabled";
+                       };
+
                        emmc: mmc@d4281000 {
                                compatible = "spacemit,k1-sdhci";
                                reg = <0x0 0xd4281000 0x0 0x200>;
                                clocks = <&syscon_apmu CLK_SDH_AXI>,
                                         <&syscon_apmu CLK_SDH2>;
                                clock-names = "core", "io";
+                               resets = <&syscon_apmu RESET_SDH_AXI>,
+                                        <&syscon_apmu RESET_SDH2>;
+                               reset-names = "axi", "sdh";
                                interrupts = <101>;
                                status = "disabled";
                        };
diff --git a/src/riscv/spacemit/k3-pico-itx.dts b/src/riscv/spacemit/k3-pico-itx.dts
new file mode 100644 (file)
index 0000000..b691304
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2026 SpacemiT (Hangzhou) Technology Co. Ltd
+ * Copyright (c) 2026 Guodong Xu <guodong@riscstar.com>
+ */
+
+#include "k3.dtsi"
+
+/ {
+       model = "SpacemiT K3 Pico-ITX";
+       compatible = "spacemit,k3-pico-itx", "spacemit,k3";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       memory@100000000 {
+               device_type = "memory";
+               reg = <0x1 0x00000000 0x4 0x00000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/src/riscv/spacemit/k3.dtsi b/src/riscv/spacemit/k3.dtsi
new file mode 100644 (file)
index 0000000..b69cf81
--- /dev/null
@@ -0,0 +1,578 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2026 SpacemiT (Hangzhou) Technology Co. Ltd
+ * Copyright (c) 2026 Guodong Xu <guodong@riscstar.com>
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/dts-v1/;
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       model = "SpacemiT K3";
+       compatible = "spacemit,k3";
+
+       cpus: cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               timebase-frequency = <24000000>;
+
+               cpu_0: cpu@0 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <0>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache0>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu0_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_1: cpu@1 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <1>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache0>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu1_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_2: cpu@2 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <2>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache0>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu2_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_3: cpu@3 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <3>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache0>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu3_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_4: cpu@4 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <4>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache1>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu4_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_5: cpu@5 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <5>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache1>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu5_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_6: cpu@6 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <6>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache1>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu6_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               cpu_7: cpu@7 {
+                       compatible = "spacemit,x100", "riscv";
+                       device_type = "cpu";
+                       reg = <7>;
+                       riscv,isa-base = "rv64i";
+                       riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
+                                              "sha", "shcounterenw", "shgatpa", "shtvala",
+                                              "shvsatpa", "shvstvala", "shvstvecd", "smaia",
+                                              "smstateen", "ssaia", "ssccptr", "sscofpmf",
+                                              "sscounterenw", "ssnpm", "ssstateen", "sstc",
+                                              "sstvala", "sstvecd", "ssu64xl", "svade",
+                                              "svinval", "svnapot", "svpbmt", "za64rs",
+                                              "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
+                                              "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
+                                              "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
+                                              "ziccamoa", "ziccif", "zicclsm", "zicntr",
+                                              "zicond", "zicsr", "zifencei", "zihintntl",
+                                              "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
+                                              "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
+                                              "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
+                                              "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
+                                              "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
+                       riscv,cbom-block-size = <64>;
+                       riscv,cbop-block-size = <64>;
+                       riscv,cboz-block-size = <64>;
+                       i-cache-block-size = <64>;
+                       i-cache-size = <65536>;
+                       i-cache-sets = <256>;
+                       d-cache-block-size = <64>;
+                       d-cache-size = <65536>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache1>;
+                       mmu-type = "riscv,sv39";
+
+                       cpu7_intc: interrupt-controller {
+                               compatible = "riscv,cpu-intc";
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               l2_cache0: cache-controller-0 {
+                       compatible = "cache";
+                       cache-block-size = <64>;
+                       cache-level = <2>;
+                       cache-size = <4194304>;
+                       cache-sets = <4096>;
+                       cache-unified;
+               };
+
+               l2_cache1: cache-controller-1 {
+                       compatible = "cache";
+                       cache-block-size = <64>;
+                       cache-level = <2>;
+                       cache-size = <4194304>;
+                       cache-sets = <4096>;
+                       cache-unified;
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu_0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_1>;
+                               };
+                               core2 {
+                                       cpu = <&cpu_2>;
+                               };
+                               core3 {
+                                       cpu = <&cpu_3>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu_4>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_5>;
+                               };
+                               core2 {
+                                       cpu = <&cpu_6>;
+                               };
+                               core3 {
+                                       cpu = <&cpu_7>;
+                               };
+                       };
+               };
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&saplic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-noncoherent;
+               ranges;
+
+               uart0: serial@d4017000 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017000 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <42 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart2: serial@d4017100 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017100 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart3: serial@d4017200 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017200 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart4: serial@d4017300 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017300 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart5: serial@d4017400 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017400 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart6: serial@d4017500 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017500 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart7: serial@d4017600 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017600 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <49 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart8: serial@d4017700 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017700 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart9: serial@d4017800 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd4017800 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               uart10: serial@d401f000 {
+                       compatible = "spacemit,k3-uart", "intel,xscale-uart";
+                       reg = <0x0 0xd401f000 0x0 0x100>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clock-frequency = <14700000>;
+                       interrupts = <281 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               simsic: interrupt-controller@e0400000 {
+                       compatible = "spacemit,k3-imsics", "riscv,imsics";
+                       reg = <0x0 0xe0400000 0x0 0x200000>;
+                       #interrupt-cells = <0>;
+                       #msi-cells = <0>;
+                       interrupt-controller;
+                       interrupts-extended = <&cpu0_intc 9>, <&cpu1_intc 9>,
+                                             <&cpu2_intc 9>, <&cpu3_intc 9>,
+                                             <&cpu4_intc 9>, <&cpu5_intc 9>,
+                                             <&cpu6_intc 9>, <&cpu7_intc 9>;
+                       msi-controller;
+                       riscv,guest-index-bits = <6>;
+                       riscv,hart-index-bits = <4>;
+                       riscv,num-guest-ids = <511>;
+                       riscv,num-ids = <511>;
+               };
+
+               saplic: interrupt-controller@e0804000 {
+                       compatible = "spacemit,k3-aplic", "riscv,aplic";
+                       reg = <0x0 0xe0804000 0x0 0x4000>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       msi-parent = <&simsic>;
+                       riscv,num-sources = <512>;
+               };
+
+               clint: timer@e081c000 {
+                       compatible = "spacemit,k3-clint", "sifive,clint0";
+                       reg = <0x0 0xe081c000 0x0 0x4000>;
+                       interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
+                                             <&cpu1_intc 3>, <&cpu1_intc 7>,
+                                             <&cpu2_intc 3>, <&cpu2_intc 7>,
+                                             <&cpu3_intc 3>, <&cpu3_intc 7>,
+                                             <&cpu4_intc 3>, <&cpu4_intc 7>,
+                                             <&cpu5_intc 3>, <&cpu5_intc 7>,
+                                             <&cpu6_intc 3>, <&cpu6_intc 7>,
+                                             <&cpu7_intc 3>, <&cpu7_intc 7>;
+               };
+
+               mimsic: interrupt-controller@f1000000 {
+                       compatible = "spacemit,k3-imsics", "riscv,imsics";
+                       reg = <0x0 0xf1000000 0x0 0x10000>;
+                       #interrupt-cells = <0>;
+                       #msi-cells = <0>;
+                       interrupt-controller;
+                       interrupts-extended = <&cpu0_intc 11>, <&cpu1_intc 11>,
+                                             <&cpu2_intc 11>, <&cpu3_intc 11>,
+                                             <&cpu4_intc 11>, <&cpu5_intc 11>,
+                                             <&cpu6_intc 11>, <&cpu7_intc 11>;
+                       msi-controller;
+                       riscv,guest-index-bits = <6>;
+                       riscv,hart-index-bits = <4>;
+                       riscv,num-guest-ids = <511>;
+                       riscv,num-ids = <511>;
+                       status = "reserved";
+               };
+
+               maplic: interrupt-controller@f1800000 {
+                       compatible = "spacemit,k3-aplic", "riscv,aplic";
+                       reg = <0x0 0xf1800000 0x0 0x4000>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       msi-parent = <&mimsic>;
+                       riscv,children = <&saplic>;
+                       riscv,delegation = <&saplic 1 512>;
+                       riscv,num-sources = <512>;
+                       status = "reserved";
+               };
+       };
+};
index e27a662d4022200482c945b027a3c6b73e4222d2..7544efa95de493c3d53997003fbf7cb955454db4 100644 (file)
@@ -9,7 +9,7 @@
 
 / {
        model = "StarFive VisionFive 2 Lite eMMC";
-       compatible = "starfive,visionfive-2-lite-emmc", "starfive,jh7110s";
+       compatible = "starfive,visionfive-2-lite-emmc", "starfive,jh7110s", "starfive,jh7110";
 };
 
 &mmc0 {
index b96eea4fa7d518ed83da1fdd2512274fd99e195d..b9913991a1b7884dd61917a930bec48df4f08a1b 100644 (file)
@@ -9,7 +9,7 @@
 
 / {
        model = "StarFive VisionFive 2 Lite";
-       compatible = "starfive,visionfive-2-lite", "starfive,jh7110s";
+       compatible = "starfive,visionfive-2-lite", "starfive,jh7110s", "starfive,jh7110";
 };
 
 &mmc0 {